Skip to main content
Octop ships a pre-built Docker image that wraps the full platform — web UI, CLI, IM channels, and the agent runtime — in a single container. Docker Compose is the recommended approach for production and multi-user deployments because it handles volume mounts and environment configuration out of the box. All your data persists in a named volume (or a host bind mount), so upgrades never touch your conversations, agents, or credentials.
1

Pull and start with Docker Compose

From the root of the cloned repository, start Octop with a single command:
Docker Compose builds the image from source, mounts your host ~/.octop directory into the container at /data/.octop, and starts the server in detached mode.To pass custom environment variables (API keys, port overrides, etc.), create a docker/.env file before running the command:
Set OCTOP_DATA in docker/.env to choose a custom host directory for all persistent data. This makes it easy to back up or migrate your entire Octop instance by copying a single directory.
2

Or start with a standalone docker run

If you prefer not to use Compose, build the image manually and run the container directly:
The named volume octop-data persists your database, secrets, and agent workspaces across container restarts and upgrades. The image does not include Playwright Chromium. Re-run the installer with --extras browser on the host, or add the browser extra in your image, if you need workbench browser automation.
The HOME=/data environment variable is required so that ~/.octop resolves to /data/.octop inside the container, where the named volume is mounted.
3

Open the web UI and complete first-run setup

Once the container starts, open your browser and navigate to:
First boot creates a fixed admin account: username admin, password Octop123. Octop writes those credentials to /data/.octop/credential.txt inside the container. This is not a random password and is not ~/octop-login.txt (that file is for a bare-metal octop init / setup wizard). Change the password immediately after you sign in.
Override the defaults with OCTOP_ADMIN_USERNAME and OCTOP_DEFAULT_PASSWORD. Bare-metal first-run steps are in Quickstart.
To verify the container is healthy before opening the wizard, run:
4

Configure a model provider

Octop ships built-in presets for Tencent Cloud, OpenAI, Anthropic, DeepSeek, Ollama, and many more. Add your first provider directly from the web UI:
Pick a built-in preset, enter your API key, and enable it. You can also pass common API keys as environment variables so they are available to the agent runtime immediately on first boot:
Once the provider is configured, open the Chat section in the web UI and start your first conversation.

Environment variables

Use these variables to configure Octop’s Docker deployment. For Docker Compose, add them to docker/.env. For docker run, pass them with -e KEY=value.
After the first boot, change the password under Management → Users. Do not leave Octop123 on a host that is reachable from the network.

Useful operations

Bare-metal Quickstart

Install Octop directly on macOS, Linux, or Windows without Docker using the one-line installer.

Configuration Reference

Explore all config.json keys and environment variable overrides for fine-grained control.

FnOS NAS

Install Docker or native .fpk packages on Feiniu NAS.