Docker is the recommended way to run Odysseus for most users. A singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/pewdiepie-archdaemon/odysseus/llms.txt
Use this file to discover all available pages before exploring further.
docker compose up -d --build command brings up the full stack: the Odysseus web UI, ChromaDB for vector memory, SearXNG for private web search, and ntfy for push notifications — all bound to 127.0.0.1 by default so nothing is exposed to your LAN until you explicitly opt in.
Prerequisites
- Docker with the Compose plugin (bundled with Docker Desktop; on Linux install
docker-compose-plugin) - Git
Quickstart
Copy the example environment file (recommended)
.env.example work out of the box. Copying it gives you a single place to override ports, bind addresses, and other deployment-level settings without editing the example in place.Build and start the stack
Open the web UI
Once the containers are healthy, open:If port
7000 is already taken on your machine, set APP_PORT=7001 (or any free port) in .env and re-run docker compose up -d.Exposed Ports
All services bind to127.0.0.1 (loopback) by default, so they are reachable from the host machine but not visible on your LAN or the public internet.
| Port | Service | Notes |
|---|---|---|
7000 | Odysseus web UI | Controlled by APP_BIND and APP_PORT in .env |
8080 | SearXNG | Private web search; bound to 127.0.0.1 |
8091 | ntfy | Push-notification broker; bind controlled by NTFY_BIND |
8100 | ChromaDB (host port) | Maps to internal port 8000; bind controlled by CHROMADB_BIND |
APP_BIND=0.0.0.0 in .env — do this only when you intentionally want LAN or reverse-proxy access. See HTTPS & Network for security guidance before doing so.
Optional Extras
The default image includes only the MIT-licensed core. To build with optional extras — a PDF side-viewer panel and Office/EPUB document extraction — passINSTALL_OPTIONAL=true as a build argument:
Maintenance Commands
Data Persistence
All user data — the SQLite database, uploads, memory, model cache, installed serve engines, and SSH keys — is stored in the./data/ directory on your host, mounted into the container as a bind volume. The ./logs/ directory is also persisted. Container recreation, image rebuilds, and docker compose down do not delete this data.
./data/ and ./logs/ are Git-ignored by default. Keep them out of any forks or public repositories.Updating
./data/ directory is untouched.
Next Steps
- Connect a local GPU for model serving — see GPU Setup
- Expose Odysseus over HTTPS — see HTTPS & Network
- Add models and providers — open Settings or Cookbook inside the app