Self-hosting software has evolved from a niche hobby into a standard practice for organizations and individuals prioritizing data sovereignty, deep customization, and cost efficiency. By deploying Open Assistant on your own infrastructure, you gain complete control over your data flow, agent behaviors, and integration endpoints.

This guide walks you through the entire installation process, from provisioning your server to testing your first prompt. A step-by-step video demonstration is available below.


What You Need

Before starting the installation, ensure you have the following ready.

1. Server Infrastructure

You need a virtual machine or a physical server. Open Assistant runs on a variety of environments:

  • Cloud providers: VPS instances from Hetzner, AWS, Azure, Google Cloud Platform, or DigitalOcean.
  • On-premises hardware: A local server, an Intel NUC, a home lab machine, or any spare box running a compatible Linux distribution (Ubuntu 22.04 LTS or newer recommended).
  • System requirements: Open Assistant offloads LLM processing to external APIs, so the host system needs modest resources — at least 2 vCPUs, 4 GB of RAM, and 20 GB of available SSD storage for the orchestration layer, database, and web UI.

2. Containerization Environment

The installation relies on Docker to manage dependencies and isolate the application:

  • Docker (version 20.10 or newer) must be installed and running.
  • Docker Compose (V2) is used to orchestrate the multi-container setup.
  • Your user account should have privileges to run Docker commands (e.g., membership in the docker group) or full sudo access.

3. LLM Provider API Key

Open Assistant connects to large language models for processing. You need:

  • An active API key from a supported provider. Open Router is recommended for its broad model access and competitive pricing, though direct provider keys (OpenAI, Anthropic, etc.) are also supported.
  • For this walkthrough, we use the ZAI GLM5 Turbo model via Open Router to validate the system end-to-end.

4. Optional Messaging Account

If you plan to use the WhatsApp integration, have an active WhatsApp account ready on a mobile device. It can be linked during the startup sequence.


A Word on Security

When deploying self-hosted software, security must be the primary consideration. Unlike managed SaaS platforms, self-hosted applications place the responsibility of network security entirely on the administrator.

The Default Security Posture

Out of the box, the Open Assistant installer prioritizes ease of use and rapid deployment. It does not ship with restrictive default firewalls or complex authentication configurations. If your server has a public IP address, the deployment may be accessible to anyone on the internet immediately after installation.

Network Isolation and Firewalls

Because Open Assistant is designed to connect to your databases, local APIs, and internal tools, an unsecured instance poses a significant risk. If a malicious actor gains access to the assistant, they could trigger actions across your connected systems.

To mitigate this risk:

  • Configure firewalls. Use ufw on Linux, or security groups within AWS/Hetzner, to restrict traffic. Block all incoming traffic to the Open Assistant port from the public internet by default.
  • Use a VPN or overlay network. Allow access only from trusted IP addresses or through a secure VPN such as WireGuard, Tailscale, or Netbird. This ensures that only authenticated devices on your private network can reach the Chat UI.
  • Implement a reverse proxy. If public access is required, route traffic through a secure reverse proxy (Nginx, Caddy, or Traefik) configured with SSL/TLS encryption via Let's Encrypt and basic authentication or OAuth.

The Managed Alternative

If you do not have experience managing server security — or simply prefer to avoid the operational overhead — the managed platform provides the same powerful features of Open Assistant within a pre-secured, fully maintained cloud environment.


Step-by-Step Installation

With your server provisioned and secured, the installation itself is straightforward. The Open Assistant team has streamlined the process into a single-command installer that handles dependency checks, environment configuration, and container orchestration.

Step 1: Copy the Installer Command

Navigate to the Open Assistant homepage and locate the installation command — the "one-liner." Copy it to your clipboard.

Step 2: Connect to Your Server

Open your terminal and establish an SSH connection to your target server:

ssh user@your-server-ip

Step 3: Execute the Installer

Paste the copied one-liner into your server's terminal and press Enter.

The script begins executing immediately and performs several automated checks:

  1. Docker verification. It confirms that Docker is installed and running. If Docker is missing, the script will prompt you to install it.
  2. IP detection. It automatically detects the primary IP address of your server to configure internal routing.

Step 4: Select Your LLM Provider

Once the initial checks complete, the installer presents an interactive prompt. Select your preferred LLM provider. For this walkthrough, choose Open Router to leverage its flexible model routing capabilities.

Step 5: Choose a Model

Select the specific model for your assistant's default reasoning tasks. In this guide, we select ZAI's GLM5 Turbo — but any model available through your Open Router account works.

Step 6: Enter Your API Key

The installer prompts for your API key. Paste your Open Router key into the terminal and press Enter.

Note: For security, the characters of your API key will not appear on screen as you paste them.

Step 7: Server Initialization

After receiving your API key, the script automatically configures the application environment, pulls the necessary Docker container images, and starts the services. Within a few moments, the initialization completes and the services run in the background.

Note: To pull images from the Github Container Registry, you need to be logged in with your github account. You can do this using docker login ghcr.io with your username and PAT token.


Connecting WhatsApp

One of the standout features of Open Assistant is its native ability to communicate through messaging platforms. During the startup sequence, the application generates a unique QR code in the terminal. This QR code bridges your server to WhatsApp using the platform's multi-device protocol.

To link your account:

  1. Open WhatsApp on your mobile device.
  2. Navigate to Settings → Linked Devices.
  3. Tap Link a Device.
  4. Point your phone's camera at the QR code displayed in your terminal.

Once the scan succeeds, the terminal confirms the connection. Open Assistant is now authorized to receive and send messages through your WhatsApp number — effectively turning it into an AI-powered agent.

Note: Connecting WhatsApp is entirely optional. If you prefer to use only the web interface, you can safely skip this step.


Accessing the Chat UI

Once the terminal indicates that the startup process is complete, you can access the graphical interface from your web browser.

Finding the URL

The installer outputs a direct web address at the end of the setup process — typically your server's IP address followed by the allocated port:

Open Assistant Chat UI is running at: http://<your-server-ip>:<port>

Hold Ctrl (or Cmd on macOS) and click the link in your terminal, or copy the address into your browser.

Understanding the Security Status

When you first load the page, your browser may display a warning indicating that the connection is not secure (HTTP instead of HTTPS). This happens because the default installer runs over standard HTTP without an SSL certificate.

This is acceptable for a brief initial test on a local network or a firewalled development server. Do not use an unsecured HTTP connection over the public internet for production environments. Configure a reverse proxy with an SSL certificate from Let's Encrypt to secure all browser-to-server communications.


Testing the Connection

With the Chat UI open, it is time to verify that Open Assistant is communicating correctly with your LLM provider.

Step 1: Submit a Test Prompt

In the chat input field, type a simple query. For example:

Hello! Can you confirm you are connected and tell me what model you are running on?

Press Enter or click the send icon.

Step 2: Observe the Processing State

You should see a visual indicator showing that Open Assistant is "thinking." This confirms that the local server has received your input, packaged it into an API request, and sent it to your LLM provider.

Step 3: Verify the Response

Within a few seconds, the assistant should respond with a clear, coherent answer. Receiving this response confirms that your server, Docker environment, API keys, and routing configurations are all functioning correctly.


What's Next?

Now that the core installation is complete, you have a fully operational AI assistant running on your private infrastructure. The true power of Open Assistant lies in its extensibility. Here is how to begin customizing your deployment:

  • Configure custom agents. Define specific roles, system instructions, and behavioral boundaries. Create specialized agents for customer support, data analysis, or automated scheduling.
  • Enable tool configurations. Allow the assistant to perform live web searches, execute calculations, and read and write to local directory structures.
  • Connect integrations. Navigate to the settings panel in the Chat UI to input API keys and connection strings for external platforms — databases, CRM software, project management tools. This allows your assistant to read and write data across your entire software stack.

Get Started Today

Whether you choose to host Open Assistant on your own hardware or leverage the optimized cloud infrastructure, you are taking a major step toward a more private, customizable, and capable AI ecosystem.