# 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). This is the ws0 baseline; for ws1+ manage.sh injects the # per-instance values as environment variables (see instance-env-overrides), # which override these via Compose's shell-over-env-file precedence. Variables # not overridden fall back to the values here. # # Backend runtime defaults that compose does not care about live in # backend/scripts/_env. # 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 PENPOT_MCP_SERVER_PORT=4401 PENPOT_MCP_REPL_PORT=4403 SHADOW_SERVER_URL=wss://localhost:3449 # Serena (agentic devenv). These are the published host ports for ws0; ws1+ # offset them by 10000*N. The container-internal ports (Serena MCP 14281, # dashboard 24282) are fixed by Serena and mapped to these in compose. SERENA_EXTERNAL_PORT=14181 SERENA_DASHBOARD_EXTERNAL_PORT=14182 # 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_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.