Doce stands for:
- Delicious Open Code Environments
- Deploy On Containers Easily
- Deploy Orchestrated ContainErs
- Deploy Once Crash Everywhere
- Don't Over Complicate Environments
- ...
- 🤖 Self-hosted AI website builder powered by OpenCode
- 🧰 Live project workspace: chat, preview, files, assets, and terminal logs
- 🐳 Isolated Docker previews with one-click production deployments
- 🔐 Provider auth, model selection, skills, and MCPs managed from the UI
- 🌐 Automatic private HTTPS domains via Tailscale (
https://...ts.net)
Deploy doce.dev on your own infrastructure using Docker Compose:
# docker-compose.yml
services:
doce:
image: ghcr.io/pablopunk/doce.dev:latest
container_name: doce
restart: unless-stopped
ports:
- "4321:4321"
volumes:
- ./data:/app/data # DB and project files
- ./opencode:/root/.local/share/opencode # opencode auth data
- /var/run/docker.sock:/var/run/docker.sock # Required to run projectsThat's still the whole deployment story. Internally, doce now runs:
- the Astro app
- one central
opencodeserver - the queue worker
Project previews still run in isolated Docker Compose stacks, but OpenCode itself is now global and shared.
Connect Tailscale once in settings and doce gives the app, previews, and deployments stable private https://...ts.net URLs. No DNS, reverse proxy, or TLS setup required.
- Provider auth lives in the central OpenCode runtime, not per project
- Project files live under
data/projects/<project-id>/preview - Preview containers bind-mount those project folders directly
- The UI proxies project-scoped requests to the single OpenCode server
- API-key and subscription-style auth methods are surfaced from upstream OpenCode
./datacontains the SQLite database, OpenCode state, and all project files- If you delete
./data, doce.dev starts from scratch with a clean database and no projects/providers - The bundled OpenCode runtime currently uses a permissive permission config intended for trusted self-hosted usage
Copyright (C) 2025 Pablo P Varela
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE for the full text.










