From a612b97ffabcca7df90ee688aa9797bec3c7d4b9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 24 Jun 2025 19:41:56 -0400 Subject: [PATCH 1/3] Adding Penpot. --- docker-compose.yml | 116 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 110 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a56296a1..c043e464 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,13 +44,7 @@ x-maxun: &maxun-env #DEBUG: pw:api #PWDEBUG: 1 x-signoz-common: &signoz-common - # networks: - # - signoz-net restart: unless-stopped - # logging: - # options: - # max-size: 50m - # max-file: "3" x-signoz-clickhouse-defaults: &signoz-clickhouse-defaults <<: *signoz-common # addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab @@ -102,6 +96,16 @@ x-signoz-db-depend: &signoz-db-depend condition: service_healthy signoz-schema-migrator-sync: condition: service_completed_successfully +x-flags: &penpot-flags + PENPOT_FLAGS: enable-smtp enable-prepl-server login-with-password webhooks +x-uri: &penpot-public-uri + PENPOT_PUBLIC_URI: https://penpot.${MY_TLD} +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: actual_server: container_name: actualbudget @@ -3826,6 +3830,102 @@ services: type: bind bind: create_host_path: true + penpot-frontend: + container_name: penpot-frontend + depends_on: + - penpot-backend + - penpot-exporter + image: penpotapp/frontend:latest + environment: + << : [*penpot-flags, *penpot-http-body-size] + labels: + homepage.group: Professional Services + homepage.name: Penpot + homepage.href: https://penpot.${MY_TLD} + homepage.icon: penpot.svg + homepage.description: Open-source design and prototyping platform + swag: enable + swag_port: 8080 + swag_proto: http + swag_url: penpot.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://archive.${MY_TLD} + swag.uptime-kuma.monitor.interval: 300 + ports: + - 17503:8080 + restart: always + volumes: + - penpot-assets:/opt/data/assets + penpot-backend: + container_name: penpot-backend + depends_on: + penpot-postgres: + condition: service_healthy + penpot-redis: + condition: service_healthy + environment: + << : [*penpot-flags, *penpot-public-uri, *penpot-http-body-size] + PENPOT_SECRET_KEY: ${PENPOT_SECRET_KEY} + PENPOT_PREPL_HOST: 0.0.0.0 + PENPOT_DATABASE_URI: postgresql://penpot-pg-db/penpot + PENPOT_DATABASE_USERNAME: penpot + PENPOT_DATABASE_PASSWORD: ${PENPOT_PG_DB_PASSWORD} + PENPOT_REDIS_URI: redis://penpot-redis/0 + PENPOT_ASSETS_STORAGE_BACKEND: assets-fs + PENPOT_STORAGE_ASSETS_FS_DIRECTORY: /opt/data/assets + PENPOT_TELEMETRY_ENABLED: true + PENPOT_TELEMETRY_REFERER: compose + PENPOT_SMTP_DEFAULT_FROM: noreply@${MY_TLD} + PENPOT_SMTP_DEFAULT_REPLY_TO: noreply@${MY_TLD} + PENPOT_SMTP_HOST: postal-smtp + PENPOT_SMTP_PORT: 25 + PENPOT_SMTP_USERNAME: ${POSTAL_SMTP_AUTH_USER} + PENPOT_SMTP_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD} + PENPOT_SMTP_TLS: false + PENPOT_SMTP_SSL: false + image: penpotapp/backend:latest + restart: always + volumes: + - penpot-assets:/opt/data/assets + penpot-exporter: + image: penpotapp/exporter:latest + restart: always + depends_on: + penpot-redis: + condition: service_healthy + environment: + PENPOT_PUBLIC_URI: http://penpot-frontend:8080 + PENPOT_REDIS_URI: redis://penpot-redis/0 + penpot-pg-db: + container_name: penpot-pg-db + environment: + POSTGRES_INITDB_ARGS: --data-checksums + POSTGRES_DB: penpot + POSTGRES_USER: penpot + POSTGRES_PASSWORD: ${PENPOT_PG_DB_PASSWORD} + expose: + - 5432 + healthcheck: + test: ["CMD-SHELL", "pg_isready -U penpot"] + interval: 2s + timeout: 10s + retries: 5 + start_period: 2s + image: postgres:15-alpine + restart: always + stop_signal: SIGINT + volumes: + - penpot-pg-data:/var/lib/postgresql/data + penpot-redis: + container_name: penpot-redis + image: redis:7.2 + healthcheck: + test: ["CMD-SHELL", "redis-cli ping | grep PONG"] + interval: 1s + timeout: 3s + retries: 5 + start_period: 3s + restart: always pgbackweb: container_name: pgbackweb depends_on: @@ -5830,6 +5930,10 @@ volumes: name: paperless-ngx-media paperless-ngx-pg: name: paperless-ngx-pg + penpot-assets: + name: penpot-assets + penpot-pg-data: + name: penpot-pg-data pgbackweb-data: name: pgbackweb-data planka-favicons: -- 2.52.0 From 37472aa1c4126d2873bbebcdb7c37959e0c861e7 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 25 Jun 2025 06:10:44 -0400 Subject: [PATCH 2/3] Penpot and Plant-It fixes. --- docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c043e464..fe04b04f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3859,7 +3859,7 @@ services: penpot-backend: container_name: penpot-backend depends_on: - penpot-postgres: + penpot-pg-db: condition: service_healthy penpot-redis: condition: service_healthy @@ -4050,16 +4050,16 @@ services: MYSQL_HOST: mariadb MYSQL_PORT: 3306 MYSQL_USERNAME: plantit - MYSQL_PSW: ${PLANT-IT_DB_PASSWORD} + MYSQL_PSW: ${PLANTIT_DB_PASSWORD} MYSQL_DATABASE: plantit MYSQL_ROOT_PASSWORD: ${MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD} - JWT_SECRET: ${PLANT-IT_JWT_SECRET} + JWT_SECRET: ${PLANTIT_JWT_SECRET} JWT_EXP: 1 USERS_LIMIT: -1 # less then 0 means no limit UPLOAD_DIR: /upload-dir # path to the directory used to store uploaded images, if on docker deployment leave as it is and change the volume binding in the docker-compose file if needed API_PORT: 8080 FLORACODEX_URL: https://api.floracodex.com - FLORACODEX_KEY: ${PLANT-IT_FLORACODEX_APP_KEY} + FLORACODEX_KEY: ${PLANTIT_FLORACODEX_APP_KEY} ALLOWED_ORIGINS: '*' # CORS allowed origins (comma separated list) LOG_LEVEL: DEBUG # could be: DEBUG, INFO, WARN, ERROR CONTACT_MAIL: noreply@${MY_TLD} # address used as "contact" for template email -- 2.52.0 From c7453fb22281f7bc586aae00f843ef514157060c Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 25 Jun 2025 10:15:35 +0000 Subject: [PATCH 3/3] chore: Update README --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index fe96c944..dadfa5c2 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,11 @@ | omni-tools | iib0011/omni-tools:latest | | omnipoly | kweg/omnipoly:latest | | paperless-ngx | ghcr.io/paperless-ngx/paperless-ngx:latest | +| penpot-frontend | penpotapp/frontend:latest | +| penpot-backend | penpotapp/backend:latest | +| penpot-exporter | penpotapp/exporter:latest | +| penpot-pg-db | postgres:15-alpine | +| penpot-redis | redis:7.2 | | pgbackweb | eduardolat/pgbackweb:latest | | pgbackweb-db | postgres:16-alpine | | planka | ghcr.io/plankanban/planka:2.0.0-rc.3 | -- 2.52.0