penpot/docker/devenv/defaults.env
Andrey Antukh e4bf63cf89 🔧 Point the devenv exporter at nginx and drop the old route
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
2026-10-07 13:28:34 +00:00

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.