Doce stands for:
- Delicious Open Code Environments
- Deploy On Containers Easily
- Deploy Orchestrated Containers
- Deploy Once Crash Everywhere
- Don't Over Complicate Environments
- ...
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
- /var/run/docker.sock:/var/run/docker.sock # Required since we use containers to run project previewsThat'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.
- 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.



