Installation¶
Requirements¶
- Docker and Docker Compose
- An API key from Anthropic, OpenRouter, or OpenAI
Install¶
1. Get the files¶
Download or copy these files into a directory on your server:
docker-compose.example.yml— rename todocker-compose.yml.env.example— rename to.envSOUL.md.example— rename toSOUL.mdUSER.md.example— rename toUSER.md
cp docker-compose.example.yml docker-compose.yml
cp .env.example .env
cp SOUL.md.example SOUL.md
cp USER.md.example USER.md
All files are available in the public repository.
2. Create the data directory¶
3. Configure the environment¶
Edit .env — see Environment Variables in the First Run guide.
4. Pull and start¶
Open http://<your-server-ip>:8080 in your browser. See the First Run guide for what to do next.
Updating¶
Database migrations run automatically on startup — no manual steps needed.
Reverse proxy¶
oAI-Web runs on HTTP internally. Terminate TLS at your reverse proxy (nginx, Caddy, Zoraxy, etc.).
In Settings → Security, add your proxy's IP to system:trusted_proxy_ips so oAI-Web knows the real client IP.
nginx example (WebSocket support required):
server {
listen 443 ssl;
server_name jarvis.yourdomain.local;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_read_timeout 300s; # long enough for slow agent runs
}
}
WebSocket timeout: Agent runs can take minutes. Set proxy_read_timeout to at least 300 seconds.
Database backups¶
PostgreSQL data lives in ./data/postgres. Back it up with:
Or use your preferred PostgreSQL backup tool (pgBackRest, Barman, etc.).
Source code¶
The public repository is at gitlab.pm/rune/oai-web.