# Single source of truth for instance-specific devenv configuration. # Loaded by docker compose via --env-file and also sourced by manage.sh # (see manage.sh). Per-instance overlay files (e.g. instances/ws1.env) are # layered on top; variables not overridden fall back to the values here. # # Backend runtime defaults that compose does not care about live in # backend/scripts/_env. # Compose project name (replaces the -p flag). Set per instance; ws0 default # here. Infra is launched under penpotdev-infra by manage.sh's infra-compose # helper; ws1+ overlays override this to penpotdev-wsN. COMPOSE_PROJECT_NAME=penpotdev-ws0 # Container names and volume names. Volumes are pinned by explicit name # (rather than relying on COMPOSE_PROJECT_NAME prefixing) so the physical # volumes survive project renames without a data migration. ws0 reuses the # pre-Stage-2 physical volume names (penpotdev_*). PENPOT_MAIN_CONTAINER_NAME=penpot-devenv-ws0-main PENPOT_VALKEY_CONTAINER_NAME=penpot-devenv-ws0-valkey PENPOT_VALKEY_HOSTNAME=penpot-devenv-ws0-valkey PENPOT_POSTGRES_DATA_VOLUME=penpotdev_postgres_data_pg16 PENPOT_MINIO_DATA_VOLUME=penpotdev_minio_data PENPOT_USER_DATA_VOLUME=penpotdev_user_data PENPOT_VALKEY_DATA_VOLUME=penpotdev_valkey_data # Backend runtime config (passed to the container env block). PENPOT_REDIS_URI # is set explicitly per instance to match the per-instance Valkey container # name; ws1+ overlays override this. PENPOT_HOST=devenv PENPOT_PUBLIC_URI=https://localhost:3449 PENPOT_DATABASE_URI=postgresql://postgres/penpot PENPOT_DATABASE_USERNAME=penpot PENPOT_DATABASE_PASSWORD=penpot PENPOT_DATABASE_MAX_POOL_SIZE=20 PENPOT_REDIS_URI=redis://penpot-devenv-ws0-valkey/0 # Object storage (MinIO user/policy are provisioned by the infra compose file). PENPOT_OBJECTS_STORAGE_BACKEND=s3 PENPOT_OBJECTS_STORAGE_S3_ENDPOINT=http://minio:9000 PENPOT_OBJECTS_STORAGE_S3_BUCKET=penpot AWS_ACCESS_KEY_ID=penpot-devenv AWS_SECRET_ACCESS_KEY=penpot-devenv # Published host ports. Only ports that need to be reachable from outside the # container are exposed; everything else (frontend dev server, backend API, # storybook, exporter, REPLs, plugins, MCP inspector/websocket, aux) is # accessed in-process or through the same-origin Caddy/nginx proxy at # PENPOT_PUBLIC_HTTP_PORT. Container-internal ports remain fixed; per-instance # overlays may offset these host-side values. PENPOT_PUBLIC_HTTP_PORT=3449 SHADOW_SERVER_URL=wss://localhost:3449 PENPOT_MCP_SERVER_PORT=4401 PENPOT_MCP_REPL_PORT=4403 # Serena (agentic devenv). Internal ports are fixed by Serena itself. SERENA_EXTERNAL_PORT=14281 SERENA_DASHBOARD_EXTERNAL_PORT=14282 # Backend worker (scheduled + async tasks). ws0 only; per-instance overlays # for ws1+ override this to false. See mem:devenv/core. PENPOT_BACKEND_WORKER=true # Tmux session inside the main container. PENPOT_TMUX_SESSION=penpot PENPOT_TMUX_ATTACH=true # Base directory holding non-main workspace clones (one subdir per wsN, N>=1). # Consumed by manage.sh only. Default lives in manage.sh ($HOME expansion is # not applied to values in this file). Export PENPOT_WORKSPACES_DIR to # override.