Run AuraGo as a Docker container with a single command. No Go, Python, or ffmpeg installation required on the host.
- Docker Engine 20.10+ (or Docker Desktop)
- Docker Compose v2+ (
docker compose— usually included with Docker Desktop)
# 1. Clone the repository
git clone https://github.com/antibyte/AuraGo.git
cd AuraGo
# 2. Configure your API keys
# Edit config.yaml and fill in at least llm.api_key
nano config.yaml
# 3. Build and start
docker compose up -d
# 4. View logs
docker compose logs -fAuraGo is now running at http://localhost:8088.
git clone https://github.com/antibyte/AuraGo.git
cd AuraGoEdit config.yaml in the project root. At minimum you need:
server:
host: "0.0.0.0" # Important: bind to 0.0.0.0 inside the container
port: 8088
llm:
api_key: "sk-your-api-key-here"Tip: For Docker, set
host: "0.0.0.0"instead of the default127.0.0.1, otherwise the Web UI won't be reachable from outside the container.
Optional integrations — enable as needed:
telegram:
bot_token: "123456:ABC..."
telegram_user_id: 123456789
discord:
enabled: true
bot_token: "..."
home_assistant:
enabled: true
url: "http://host.docker.internal:8123" # ← Access host services from inside Docker
access_token: "..."
docker:
enabled: true
host: "unix:///var/run/docker.sock" # ← Manage Docker from inside the containerdocker compose up -dThis will:
- Build the Go binary in a multi-stage build (no Go needed on host)
- Create a slim Python 3.12 + ffmpeg runtime image
- Start the container with automatic restart
# Check status
docker compose ps
# View live logs
docker compose logs -f
# Open Web UI
# http://localhost:8088The docker-compose.yml defines two named volumes that survive container restarts and rebuilds:
| Volume | Container Path | Purpose |
|---|---|---|
aurago_data |
/app/data |
Memory, chat history, state, vector DB, SQLite databases |
aurago_workdir |
/app/agent_workspace/workdir |
Python venv, generated tools, scratch files |
Your config.yaml is bind-mounted as read-only.
# Backup data volume
docker run --rm -v aurago_data:/data -v $(pwd):/backup alpine tar czf /backup/aurago_data_backup.tar.gz -C /data .
# Restore data volume
docker run --rm -v aurago_data:/data -v $(pwd):/backup alpine tar xzf /backup/aurago_data_backup.tar.gz -C /dataIf you want the AuraGo agent to manage Docker containers on the host, mount the Docker socket:
Add this to docker-compose.yml under volumes::
volumes:
- ./config.yaml:/app/config.yaml:ro
- aurago_data:/app/data
- aurago_workdir:/app/agent_workspace/workdir
- /var/run/docker.sock:/var/run/docker.sock # ← Add this lineAnd enable it in config.yaml:
docker:
enabled: true
host: "unix:///var/run/docker.sock"Security Note: Mounting the Docker socket gives the container full control over the Docker daemon. Only do this in trusted environments.
| Variable | Description |
|---|---|
AURAGO_MASTER_KEY |
Encryption key for the secrets vault. Set a stable value (openssl rand -hex 32) so secrets persist across rebuilds. |
Set it in a .env file next to docker-compose.yml:
echo "AURAGO_MASTER_KEY=$(openssl rand -hex 32)" > .envOr export it directly:
export AURAGO_MASTER_KEY="your-64-char-hex-key"
docker compose up -ddocker compose up -d --builddocker compose downdocker compose down -vdocker stats auragodocker compose exec aurago /bin/bashThe default port is 8088. To change it, edit both files:
docker-compose.yml:
ports:
- "3000:8088" # Host port 3000 → Container port 8088Or match both sides if you also change config.yaml:
config.yaml:
server:
port: 3000docker-compose.yml:
ports:
- "3000:3000"To reach services running on the Docker host (e.g. Home Assistant, Ollama, local databases):
| Platform | Host Address |
|---|---|
| Docker Desktop (Mac/Windows) | host.docker.internal |
| Linux (Docker 20.10+) | Add extra_hosts: ["host.docker.internal:host-gateway"] to compose |
Example for Linux — add to docker-compose.yml:
services:
aurago:
extra_hosts:
- "host.docker.internal:host-gateway"Then use http://host.docker.internal:8123 for Home Assistant, http://host.docker.internal:11434 for Ollama, etc.
Make sure config.yaml has host: "0.0.0.0":
server:
host: "0.0.0.0"127.0.0.1 only listens inside the container.
# Add your user to the docker group
sudo usermod -aG docker $USER
# Then log out and back in
# Or temporarily fix permissions
sudo chmod 666 /var/run/docker.sockThe Python venv is stored in the aurago_workdir volume. If corrupted:
# Delete the workdir volume and restart (venv will be recreated)
docker compose down
docker volume rm aurago_aurago_workdir
docker compose up -d# Clean unused Docker resources
docker system prune -a --volumesdocker compose logs --no-log-prefix aurago 2>&1 | head -100