Files
openwork/.devcontainer/docker-compose.yml
T

77 lines
2.2 KiB
YAML

# Full-stack dev environment for Daytona / Codespaces / devcontainers.
#
# Runs the real Electron app with a virtual display accessible via noVNC.
#
# Services:
# - MySQL 8.4 for the Den database
# - Workspace container with Node 20, Electron deps, Xvfb, noVNC
#
# Ports:
# - 5173 App Vite dev server (HMR)
# - 3005 Den Web dashboard
# - 6080 noVNC — see the Electron app in your browser
# - 8788 Den API
# - 9825 CDP remote debugging (for Chrome MCP / automation)
services:
mysql:
image: mysql:8.4
command:
- --performance_schema=OFF
- --innodb-buffer-pool-size=64M
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: openwork_den
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -ppassword --silent"]
interval: 5s
timeout: 5s
retries: 30
start_period: 10s
volumes:
- mysql-data:/var/lib/mysql
workspace:
build:
context: .
dockerfile: Dockerfile
depends_on:
mysql:
condition: service_healthy
volumes:
- ..:/workspace:cached
ports:
- "5173:5173"
- "3005:3005"
- "6080:6080"
- "8788:8788"
- "9825:9825"
environment:
# Display
DISPLAY: ":99"
ELECTRON_DISABLE_SANDBOX: "1"
# Electron CDP debugging
OPENWORK_ELECTRON_REMOTE_DEBUG_PORT: "9825"
# Den API config
DATABASE_URL: mysql://root:password@mysql:3306/openwork_den
DEN_DB_ENCRYPTION_KEY: local-dev-db-encryption-key-please-change-1234567890
BETTER_AUTH_SECRET: local-dev-secret-not-for-production-use!!
BETTER_AUTH_URL: http://localhost:3005
OPENWORK_DEV_MODE: "1"
DEN_PASSWORD_BREACH_SCREENING_ENABLED: "false"
PORT: "8788"
PROVISIONER_MODE: stub
# Den Web config
DEN_API_BASE: http://localhost:8788
DEN_AUTH_ORIGIN: http://localhost:3005
DEN_AUTH_FALLBACK_BASE: http://localhost:8788
DEN_WEB_PORT: "3005"
DEN_API_PORT: "8788"
# CORS
CORS_ORIGINS: http://localhost:3005,http://localhost:5173,http://localhost:8788
DEN_BETTER_AUTH_TRUSTED_ORIGINS: http://localhost:3005,http://localhost:5173,http://localhost:8788
command: sleep infinity
volumes:
mysql-data: