88 lines
3.1 KiB
YAML
88 lines
3.1 KiB
YAML
# documentation: https://help.penpot.app/technical-guide/getting-started/#install-with-docker
|
|
# slogan: Penpot is the first Open Source design and prototyping platform for product teams.
|
|
# tags: penpot,design,prototyping,figma,open,source
|
|
|
|
services:
|
|
frontend:
|
|
image: "penpotapp/frontend:latest"
|
|
volumes:
|
|
- penpot-assets:/opt/data/assets
|
|
depends_on:
|
|
- penpot-backend
|
|
- penpot-exporter
|
|
environment:
|
|
- SERVICE_FQDN_FRONTEND
|
|
- PENPOT_FLAGS=${PENPOT_FRONTEND_FLAGS:-enable-login-with-password}
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:80"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
penpot-backend:
|
|
image: penpotapp/backend:latest
|
|
volumes:
|
|
- penpot-assets:/opt/data/assets
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
environment:
|
|
- PENPOT_FLAGS=${PENPOT_BACKEND_FLAGS:-enable-login-with-password enable-smtp enable-prepl-server}
|
|
- PENPOT_HTTP_SERVER_PORT=6060
|
|
- PENPOT_SECRET_KEY=$SERVICE_REALBASE64_64_PENPOT
|
|
- PENPOT_PUBLIC_URI=$SERVICE_FQDN_FRONTEND
|
|
- PENPOT_BACKEND_URI=http://penpot-backend
|
|
- PENPOT_EXPORTER_URI=http://penpot-exporter
|
|
- PENPOT_DATABASE_URI=postgresql://postgres/${POSTGRES_DB:-penpot}
|
|
- PENPOT_DATABASE_USERNAME=${SERVICE_USER_POSTGRES}
|
|
- PENPOT_DATABASE_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- PENPOT_REDIS_URI=redis://redis/0
|
|
- PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
|
|
- PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
|
|
- PENPOT_TELEMETRY_ENABLED=${PENPOT_TELEMETRY_ENABLED:-false}
|
|
- PENPOT_SMTP_DEFAULT_FROM=${PENPOT_SMTP_DEFAULT_FROM:-no-reply@example.com}
|
|
- PENPOT_SMTP_DEFAULT_REPLY_TO=${PENPOT_SMTP_DEFAULT_REPLY_TO:-no-reply@example.com}
|
|
- PENPOT_SMTP_HOST=${PENPOT_SMTP_HOST:-mailpit}
|
|
- PENPOT_SMTP_PORT=${PENPOT_SMTP_PORT:-1025}
|
|
- PENPOT_SMTP_USERNAME=${PENPOT_SMTP_USERNAME:-penpot}
|
|
- PENPOT_SMTP_PASSWORD=${PENPOT_SMTP_PASSWORD:-penpot}
|
|
- PENPOT_SMTP_TLS=${PENPOT_SMTP_TLS:-false}
|
|
- PENPOT_SMTP_SSL=${PENPOT_SMTP_SSL:-false}
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:6060"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
penpot-exporter:
|
|
image: penpotapp/exporter:latest
|
|
environment:
|
|
- PENPOT_PUBLIC_URI=$SERVICE_FQDN_FRONTEND
|
|
- PENPOT_REDIS_URI=redis://redis/0
|
|
mailpit:
|
|
image: "axllent/mailpit:latest"
|
|
environment:
|
|
- SERVICE_FQDN_MAILPIT_8025
|
|
postgres:
|
|
image: postgres:15
|
|
volumes:
|
|
- penpot-postgresql-data:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_INITDB_ARGS=--data-checksums
|
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
|
- POSTGRES_DB=${POSTGRES_DB:-penpot}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
redis:
|
|
image: redis:7-alpine
|
|
command: redis-server --appendonly yes
|
|
volumes:
|
|
- penpot-redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|