docker run -p 3000:3000 cargofy/atlas
Open http://localhost:3000 — the Setup Wizard will guide you through configuration.
Health check: http://localhost:3000/api/health
Create a docker-compose.yml:
services:
atlas:
image: cargofy/atlas:latest
container_name: atlas
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./config.yml:/app/config.yml:ro
- atlas_data:/data/atlas
- ./knowledge:/app/knowledge
- ./inbox:/app/inbox
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://localhost:3000/api/health').then(r=>{if(!r.ok)throw r;process.exit(0)}).catch(()=>process.exit(1))"]
interval: 30s
timeout: 10s
retries: 3
volumes:
atlas_data:
# Create .env with your API keys
echo "ANTHROPIC_API_KEY=sk-ant-..." > .env
# Start
docker compose up -d
# View logs
docker compose logs -f atlas
docker run -d \
--name atlas \
--restart unless-stopped \
-p 3000:3000 \
-v atlas_data:/data/atlas \
-v ./knowledge:/app/knowledge \
-v ./inbox:/app/inbox \
-v ./config.yml:/app/config.yml:ro \
-e ANTHROPIC_API_KEY=sk-ant-... \
cargofy/atlas:latest
| Mount Point | Purpose |
|---|---|
/data/atlas | SQLite database (persistent). Use a named volume to survive container restarts |
/app/knowledge | Knowledge base markdown files. Bind-mount to access/edit from host |
/app/inbox | Inbox folder for file-watch module. Drop files here for auto-processing |
/app/config.yml | Configuration file (mount read-only) |
| Variable | Description | Default |
|---|---|---|
ANTHROPIC_API_KEY | Anthropic API key for Claude models | — |
OPENAI_API_KEY | OpenAI API key (optional) | — |
ATLAS_DB_PATH | SQLite database file path | /data/atlas/atlas.db |
ATLAS_PORT | HTTP server port | 3000 |
EMAIL_PASSWORD | Email connector password (if using IMAP) | — |
TMS_API_KEY | TMS API connector key | — |
Copy the example config and customize:
# Get config template from the image
docker run --rm cargofy/atlas cat config.example.yml > config.yml
Edit config.yml to configure AI providers, connectors, modules, auth tokens, and data models. Then mount it into the container.
Configuration can also be edited live via the Settings page in the Web UI.
For Claude Desktop integration, run ATLAS in stdio mode:
{
"mcpServers": {
"atlas": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "atlas_data:/data/atlas",
"cargofy/atlas",
"node", "src/index.js"
]
}
}
}
node:20-alpinepython3, make, g++) are not included in the final imageatlas usernode -e fetch(...) (no curl dependency)| Tag | Description |
|---|---|
latest | Latest stable release |
0.1 | First versioned release |
Container starts but Web UI shows nothing
Check logs: docker logs atlas. Verify port mapping with docker ps.
Database errors on restart
Ensure /data/atlas is mounted as a persistent volume. Without it, SQLite data is lost when the container stops.
AI features not working
Set ANTHROPIC_API_KEY or OPENAI_API_KEY via environment variables, or configure models in config.yml / Settings UI.
File-watch module not picking up files
Mount your inbox directory to /app/inbox and ensure the file-watch module is enabled in config or the Modules page.
Content type
Image
Digest
sha256:79b51c22a…
Size
71.7 MB
Last updated
7 months ago
docker pull cargofy/atlas