[All guides](https://yaji.k3o.dev/guides)

# How to Install Yaji on a VPS: Ubuntu and Docker Guide

Install Yaji on a VPS with Ubuntu or Docker. Connect the server to your account, set up an AI provider, and manage updates, logs and backups.

Oct 30, 2026 Norbert Bodziony

Installing Yaji on a VPS gives your agents a computer that can stay running when you close your laptop. Their files, conversations and tools live on the server, and you connect from the Yaji app or your browser.

You can install Yaji directly on Ubuntu or run the official Docker image. Both methods connect the server to your Yaji account. Choose one, then follow the same steps to open the server and set up your first agent.

## What you need

For the Ubuntu method, use a 64-bit VPS running **Ubuntu 24.04 LTS**, with **systemd** and access to **sudo**. Yaji provides builds for x86_64 and arm64. Ubuntu 24.04 is the baseline used for the full installation tests in the project's documentation.

Have your SSH login details ready, plus access to the email address you use for Yaji. You will also need access to an AI provider when you create an agent. The server installation does not include an AI subscription.

Choose enough RAM and disk space for the work your agents will do. Browser sessions, coding tools and several agents can use more memory than a single text task. Monitor the server as you add work; this guide does not set a universal minimum VPS size.

## 1. Connect to your VPS

Open a terminal on your computer and connect using the SSH details supplied by your VPS provider:

```
ssh YOUR_USER@YOUR_VPS_IP
```

Replace `YOUR_USER` and `YOUR_VPS_IP` with your actual login and server address. Run the installation commands below inside that SSH session, on the VPS.

On a fresh Ubuntu server, install the download tools first:

```
sudo apt-get update
sudo apt-get install -y curl ca-certificates
```

## 2. Choose an installation method

| Method | When to use it |
| --- | --- |
| **Ubuntu installer** | You want Yaji to run as a system service on the VPS. |
| **Docker Compose** | You already manage services with Docker, or prefer to keep Yaji in a container. |

### Option A: Install directly on Ubuntu

Run the official Yaji server installer:

```
curl -fsSL \
  https://raw.githubusercontent.com/nightly-labs/openbot/main/scripts/install-server.sh |
  sudo bash
```

The installer downloads the latest released Linux build, verifies its checksum and sets up the Yaji service. On a fresh installation, it creates a separate `openbot` service user and starts Yaji in the background.

Sign in and give the server a name you will recognize in the app:

```
sudo openbot login --name "Yaji VPS"
```

Enter the email address for your Yaji account, then the code sent to it. Use the same account when you open the app later.

Check the result:

```
sudo openbot status
```

Look for your installed version, account and server state. If the command cannot reach Yaji yet, check the service log using the troubleshooting section below.

Yaji runs as a system service, so closing the SSH session does not stop it. Continue to step 3.

### Option B: Run Yaji with Docker Compose

This option needs Docker Engine and the Docker Compose plugin on the VPS. If they are not installed, follow the [Docker installation instructions for Ubuntu](https://docs.docker.com/engine/install/ubuntu/) first.

Create a new folder for this deployment. Keep its Compose file and security profile together:

```
mkdir openbot-vps
cd openbot-vps
curl -fsSLO \
  https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/compose.yaml
curl -fsSLO \
  https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/seccomp.json
sudo docker compose up -d
```

Use another new folder name if `openbot-vps` already exists. The official Compose file uses the latest release image and a persistent data volume. It also includes the security profile and shared-memory setting required by the container.

Keep those settings in place. The Electron sandbox stays enabled; the supplied security profile lets it run in the container. Agent commands and files live inside that container, so mount only the host folders you intend agents to use.

Sign in to Yaji and check the server:

```
sudo docker compose exec openbot openbot login --name "Yaji VPS"
sudo docker compose exec openbot openbot status
```

Enter your Yaji account email and its sign-in code. Run later Compose commands from this same deployment folder.

The container uses a persistent volume for its data and restarts according to the Compose policy. Continue to step 3.

## 3. Open the server in Yaji

Open the Yaji desktop app or [Yaji in your browser](https://yaji.k3o.dev/app) and sign in to the same account. Find **Yaji VPS** in the server list and select it.

The standard setup connects through Yaji's existing account and remote-access services. You use the app to reach the VPS; the Yaji container publishes no web port of its own.

When you work on this server, your agents' workspace files and conversations are stored on the VPS. AI providers, websites and connected services can still receive the task data needed for their work.

## 4. Connect a provider and create an agent

Choose the provider you want to use on the server and follow its sign-in or API-key flow in Yaji. A provider connection on your laptop is not automatically a working connection on the VPS.

If this is a new server with no agents, Yaji offers provider setup before the first-agent form. Once connected, create an agent, give it clear instructions and start with a small task.

For example:

> Create a file called server-check.txt in your workspace. Put today's date and a short description of what you can access in it. Do not change system settings or send anything externally.

Open the file in the agent's workspace and check the result. The [first-agent guide](https://yaji.k3o.dev/guides/openbot-101) walks through the agent setup in more detail.

Your VPS can stay available around the clock while its service, network and provider access are working. Check routines and their times before leaving scheduled work running.

### Use Hermes Agent on the server

Open the server's provider settings and select Download on the Hermes row. Yaji installs Hermes Agent for its service user, then the row shows Connect.

To install Hermes from a terminal instead, install it as the service user, not as your SSH login. For the Ubuntu installer, run this on the VPS:

```
sudo -u openbot -i bash -c \
  'curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --non-interactive'
sudo openbot restart
```

For Docker, install it in the container. Hermes stays in the data volume when you replace the container:

```
sudo docker compose exec openbot bash -c \
  'curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --non-interactive'
sudo docker compose restart openbot
```

Then select Connect on the Hermes row and enter the Nous Portal code. You can also run `hermes setup` or `hermes model` as that user to choose another model provider.

## 5. Read logs and keep the server updated

For the direct Ubuntu installation, these are the main commands:

| Task | Command |
| --- | --- |
| Check the server | `sudo openbot status` |
| Follow its logs | `sudo openbot logs -f` |
| Restart Yaji | `sudo openbot restart` |
| Install the latest update | `sudo openbot update` |

An update restarts Yaji, so run it when an interruption is acceptable. Back up the server data first. The native service also checks for updates and can stage them for installation; `openbot status` shows a staged update.

For Docker Compose, use these commands from your deployment folder:

```
sudo docker compose logs --tail 100 openbot
sudo docker compose exec openbot openbot status
```

To upgrade after checking the release notes and making a backup:

```
sudo docker compose pull
sudo docker compose up -d
sudo docker compose exec openbot openbot status
```

A container upgrade replaces the image and keeps its data volume. The `latest` tag follows new releases. If you want to choose a specific release, set its version tag in `compose.yaml` before upgrading. Use the same volume and runtime settings.

Yaji can migrate its database during an upgrade. Use a compatible release with your backup when recovering; switching an upgraded live volume to an older image is not a safe rollback.

## Keep a backup of the complete setup

For the native installation with the default service user, keep the service user's home at `/var/lib/openbot` and the keyring data at `/srv/openbot-hosted` together. If you selected another service user, back up that user's actual home instead.

Stop Yaji before making a consistent copy, then start it again when the copy is complete:

```
sudo openbot stop
```

Back up both locations using your normal backup process, then run:

```
sudo openbot start
```

For Docker, stop the service and back up the complete persistent data volume, then start it again. The volume includes provider sign-ins, the database and its encryption keyring. A copy of the workspace files alone is not a complete backup.

Protect backups like account credentials and keep a copy outside the VPS. A persistent disk or Docker volume can survive a restart, but it is still part of the server you manage.

## If the server does not appear

Check that you completed `openbot login` on the VPS and that the app uses the same email account. A successful installation alone does not sign the server in.

For the native install, read `sudo openbot status` and `sudo openbot logs -f`. For Docker, check `sudo docker compose ps` and the container logs. Follow any reported errors before trying to reinstall.

If the container reports a user-namespace or sandbox problem, check that it uses the official security profile. Some VPS hosts restrict user namespaces or apply extra AppArmor rules. Keep the sandbox enabled and follow the [container documentation](https://github.com/Frexxty/yaji/blob/main/docs/docker.md) for those host limits.

If work starts waiting when memory is low, inspect the memory information in `openbot status`. Reduce concurrent work or give the VPS more memory for the tasks you want to run.

## Frequently asked questions

**Will agents keep working when I close my laptop?** Yes, while Yaji is running on the VPS and the required services remain available. Your laptop is the client; the VPS runs the agents.

**Do I need a domain for this setup?** The standard setup uses Yaji's existing account services and app. A custom domain is not required for this installation.

**Does the VPS include model access?** You connect a provider in Yaji. VPS costs and provider access are separate.

**Can I move my existing agents to the VPS?** Yes. Choose the VPS as the destination when using an appropriate import or transfer flow. Reading local Hermes folders belongs to the local desktop flow; a joined VPS uses a ZIP import.
