mirror of
https://github.com/penpot/penpot.git
synced 2026-10-30 14:30:37 +00:00
The worker reaches the backend through `internal-uri`, which fell back to the host-side public URI (unreachable from inside the container), so every poller turn died on `fetch failed`. The devenv now defines `PENPOT_INTERNAL_URI=http://localhost:4449`: nginx is the outermost platform layer (Caddy only emulates the external HTTPS), and no service goes outside to come back in. The stale `/api/export` location, which pointed at the deleted exporter HTTP port, goes away with it. AI-assisted-by: glm-5.3-flash
78 lines
3.5 KiB
Bash
78 lines
3.5 KiB
Bash
# 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. Replacement services use new volume names
|
|
# so data from the previous service remains available for rollback.
|
|
PENPOT_MAIN_CONTAINER_NAME=penpot-devenv-ws0-main
|
|
PENPOT_POSTGRES_DATA_VOLUME=penpotdev_postgres_data_pg18
|
|
PENPOT_RUSTFS_DATA_VOLUME=penpotdev_rustfs_data
|
|
PENPOT_MAILPIT_DATA_VOLUME=penpotdev_mailpit_data
|
|
PENPOT_USER_DATA_VOLUME=penpotdev_user_data
|
|
|
|
# Backend runtime config (passed to the container env block). Valkey is a
|
|
# shared infra service at hostname 'valkey'; each workspace uses a different
|
|
# database number (0 for ws0, 1 for ws1, ...) set by instance-env-overrides.
|
|
PENPOT_HOST=devenv
|
|
PENPOT_PUBLIC_URI=https://localhost:3449
|
|
# In-container address of the platform edge (nginx), used to reach the
|
|
# backend without leaving through the public URI (which is host-side and
|
|
# unreachable from inside the container). Caddy only emulates the external
|
|
# HTTPS layer; no service goes outside to come back in. The exporter worker
|
|
# uses it for the management API; per-container loopback, so ws1+ overrides
|
|
# never touch it.
|
|
PENPOT_INTERNAL_URI=http://localhost:4449
|
|
PENPOT_DATABASE_URI=postgresql://postgres/penpot
|
|
PENPOT_DATABASE_USERNAME=penpot
|
|
PENPOT_DATABASE_PASSWORD=penpot
|
|
PENPOT_DATABASE_MAX_POOL_SIZE=20
|
|
PENPOT_REDIS_URI=redis://valkey/0
|
|
|
|
# Object storage (RustFS uses these credentials for its root S3 user).
|
|
PENPOT_OBJECTS_STORAGE_BACKEND=s3
|
|
PENPOT_OBJECTS_STORAGE_S3_ENDPOINT=http://rustfs:9000
|
|
PENPOT_OBJECTS_STORAGE_S3_BUCKET=penpot
|
|
PENPOT_OBJECTS_STORAGE_S3_REGION=us-east-1
|
|
AWS_ACCESS_KEY_ID=penpot-devenv
|
|
AWS_SECRET_ACCESS_KEY=penpot-devenv
|
|
AWS_DEFAULT_REGION=us-east-1
|
|
|
|
# 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_HTTPS_PORT=3449
|
|
PENPOT_PUBLIC_HTTP_PORT=3450
|
|
PENPOT_MCP_SERVER_PORT=4401
|
|
PENPOT_MCP_REPL_PORT=4403
|
|
PENPOT_STORYBOOK_PORT=3451
|
|
|
|
MDTS_EXTERNAL_PORT=14179
|
|
OPENCODE_EXTERNAL_PORT=14180
|
|
|
|
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
|
|
|
|
# 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.
|