update penpot

This commit is contained in:
Dziad Borowy 2025-05-16 21:46:05 +01:00
parent 0f04279afa
commit b98b9e2903

View File

@ -10,55 +10,110 @@ Open Source design and prototyping platform for cross-domain teams
- [Docs](https://help.penpot.app/technical-guide/getting-started/#install-with-docker) - [Docs](https://help.penpot.app/technical-guide/getting-started/#install-with-docker)
## You can get the 2 required files directly from github: ## You can get the required file directly from github:
```sh ```sh
wget https://raw.githubusercontent.com/penpot/penpot/main/docker/images/docker-compose.yaml wget https://raw.githubusercontent.com/penpot/penpot/main/docker/images/docker-compose.yaml
wget https://raw.githubusercontent.com/penpot/penpot/main/docker/images/config.env
``` ```
Or copy & paste from here: Or copy & paste from here:
## docker-compose.yml ## docker-compose.yml
```yml ```yml
--- ## You can read more about all available flags and other
## environment variables here:
## https://help.penpot.app/technical-guide/configuration/#advanced-configuration
#
# WARNING: if you're exposing Penpot to the internet, you should remove the flags
# 'disable-secure-session-cookies' and 'disable-email-verification'
x-flags: &penpot-flags
PENPOT_FLAGS: disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies
x-uri: &penpot-public-uri
PENPOT_PUBLIC_URI: http://192.168.1.10:9001
x-body-size: &penpot-http-body-size
# Max body size (30MiB); Used for plain requests, should never be
# greater than multi-part size
PENPOT_HTTP_SERVER_MAX_BODY_SIZE: 31457280
# Max multipart body size (350MiB)
PENPOT_HTTP_SERVER_MAX_MULTIPART_BODY_SIZE: 367001600
services: services:
penpot-frontend: penpot-frontend:
image: penpotapp/frontend:latest image: "penpotapp/frontend:latest"
container_name: penpot-frontend restart: unless-stopped
ports:
- 9001:80
volumes:
- ./data:/opt/data
env_file:
- config.env
depends_on: depends_on:
- penpot-backend - penpot-backend
- penpot-exporter - penpot-exporter
environment:
<< : [*penpot-flags, *penpot-http-body-size]
ports:
- 9001:8080
volumes:
- ./assets:/opt/data/assets
penpot-backend: penpot-backend:
image: penpotapp/backend:latest image: "penpotapp/backend:latest"
volumes: restart: unless-stopped
- ./data:/opt/data
depends_on: depends_on:
- penpot-postgres penpot-postgres:
- penpot-redis condition: service_healthy
env_file: penpot-redis:
- config.env condition: service_healthy
environment:
<< : [*penpot-flags, *penpot-public-uri, *penpot-http-body-size]
PENPOT_SECRET_KEY: 93ac8dc5eb2bb583bd8f827bd31be520dd32ead00657237d66662013770ee45c
PENPOT_DATABASE_URI: postgresql://penpot-postgres/penpot
PENPOT_DATABASE_USERNAME: penpot
PENPOT_DATABASE_PASSWORD: penpot
PENPOT_REDIS_URI: redis://penpot-redis/0
PENPOT_ASSETS_STORAGE_BACKEND: assets-fs
PENPOT_STORAGE_ASSETS_FS_DIRECTORY: /opt/data/assets
PENPOT_TELEMETRY_ENABLED: false
PENPOT_TELEMETRY_REFERER: compose
## Example SMTP/Email configuration. By default, emails are sent to the mailcatch
## service, but for production usage it is recommended to setup a real SMTP
## provider. Emails are used to confirm user registrations & invitations. Look below
## how the mailcatch service is configured.
PENPOT_SMTP_DEFAULT_FROM: no-reply@example.com
PENPOT_SMTP_DEFAULT_REPLY_TO: no-reply@example.com
PENPOT_SMTP_HOST: penpot-mailcatch
PENPOT_SMTP_PORT: 1025
PENPOT_SMTP_USERNAME:
PENPOT_SMTP_PASSWORD:
PENPOT_SMTP_TLS: false
PENPOT_SMTP_SSL: false
volumes:
- ./assets:/opt/data/assets
penpot-exporter: penpot-exporter:
image: penpotapp/exporter:latest image: "penpotapp/exporter:latest"
container_name: penpot-exporter restart: unless-stopped
env_file: depends_on:
- config.env penpot-redis:
condition: service_healthy
environment: environment:
# Don't touch it; this uses internal docker network to communicate with the frontend. PENPOT_PUBLIC_URI: http://penpot-frontend:8080
- PENPOT_PUBLIC_URI=http://penpot-frontend PENPOT_REDIS_URI: redis://penpot-redis/0
penpot-postgres: penpot-postgres:
image: "postgres:14" image: "postgres:15"
container_name: penpot-db
restart: unless-stopped restart: unless-stopped
stop_signal: SIGINT stop_signal: SIGINT
healthcheck:
test: ["CMD-SHELL", "pg_isready -U penpot"]
interval: 2s
timeout: 10s
retries: 5
start_period: 2s
environment: environment:
- POSTGRES_INITDB_ARGS=--data-checksums - POSTGRES_INITDB_ARGS=--data-checksums
- POSTGRES_DB=penpot - POSTGRES_DB=penpot
@ -67,32 +122,28 @@ services:
volumes: volumes:
- ./db:/var/lib/postgresql/data - ./db:/var/lib/postgresql/data
penpot-redis: penpot-redis:
image: redis:7 image: redis:7.2
container_name: penpot-redis
restart: unless-stopped restart: unless-stopped
```
healthcheck:
## config.env test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
Shortened version, just the minimum to test things out, with telemetry disabled. interval: 1s
timeout: 3s
```ini retries: 5
## Should be set to the public domain where penpot is going to be served. start_period: 3s
##
## NOTE: If you are going to serve it under different domain than
## 'localhost' without HTTPS, consider setting the ## A mailcatch service, used as temporal SMTP server. You can access via HTTP to the
## `disable-secure-session-cookies' flag on the 'PENPOT_FLAGS' setting. ## port 1080 for read all emails the penpot platform has sent. Should be only used as a
## temporal solution while no real SMTP provider is configured.
PENPOT_PUBLIC_URI=http://localhost:9001 penpot-mailcatch:
image: sj26/mailcatcher:latest
PENPOT_FLAGS=enable-registration enable-login disable-email-verification restart: unless-stopped
PENPOT_HTTP_SERVER_HOST=0.0.0.0 expose:
PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot - '1025'
PENPOT_DATABASE_USERNAME=penpot ports:
PENPOT_DATABASE_PASSWORD=penpot - "1080:1080"
PENPOT_REDIS_URI=redis://penpot-redis/0
PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
PENPOT_TELEMETRY_ENABLED=false
# PENPOT_REGISTRATION_DOMAIN_WHITELIST=""
``` ```