From dd82a86e3a56f31e2775b60f5edcaa2f9b2622e2 Mon Sep 17 00:00:00 2001 From: whitney Date: Wed, 24 Dec 2025 15:43:14 -0800 Subject: [PATCH] Add Penpot --- productivity/penpot/.env.example | 26 +++++++++++++ productivity/penpot/.gitignore | 1 + productivity/penpot/README.md | 18 +++++++++ productivity/penpot/docker-compose.yml | 54 ++++++++++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 productivity/penpot/.env.example create mode 100644 productivity/penpot/.gitignore create mode 100644 productivity/penpot/README.md create mode 100644 productivity/penpot/docker-compose.yml diff --git a/productivity/penpot/.env.example b/productivity/penpot/.env.example new file mode 100644 index 0000000..2b19bd7 --- /dev/null +++ b/productivity/penpot/.env.example @@ -0,0 +1,26 @@ +PENPOT_PUBLIC_URI=https://penpot.example.com + +POSTGRES_DB=penpot +POSTGRES_USER=penpot +POSTGRES_PASSWORD=secure-password + +PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot +PENPOT_DATABASE_USERNAME=penpot +# Must match POSTGRES_PASSWORD +PENPOT_DATABASE_PASSWORD=secure-password + +PENPOT_REDIS_URI=redis://penpot-redis:6379 + +PENPOT_SECRET_KEY=secret-key + +PENPOT_ASSETS_STORAGE_BACKEND=assets +PENPOT_STORAGE_ASSETS_DIRECTORY=/opt/data/assets + +PENPOT_REGISTRATION_ENABLED=true + +# Either +PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-prepl-server + +# Or +PENPOT_FLAGS=enable-login-with-password +PENPOT_REGISTRATION_ENABLED=false diff --git a/productivity/penpot/.gitignore b/productivity/penpot/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/productivity/penpot/.gitignore @@ -0,0 +1 @@ +.env diff --git a/productivity/penpot/README.md b/productivity/penpot/README.md new file mode 100644 index 0000000..e92115b --- /dev/null +++ b/productivity/penpot/README.md @@ -0,0 +1,18 @@ +# Penpot +Open source Figma. + +## First Time User Creation +Temporarily enable registration via manual methods: +```env +PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-prepl-server +``` +and comment out `PENPOT_REGISTRATION_ENABLED=false` +Create new user either through UI or through command line: +```bash +docker exec -it penpot-penpot-backend-1 python3 manage.py create-profile +``` +Reinstate old flags: +```env +PENPOT_FLAGS=enable-login-with-password +``` +and reinstate `PENPOT_REGISTRATION_ENABLED`. diff --git a/productivity/penpot/docker-compose.yml b/productivity/penpot/docker-compose.yml new file mode 100644 index 0000000..438a6e9 --- /dev/null +++ b/productivity/penpot/docker-compose.yml @@ -0,0 +1,54 @@ +networks: + traefik: + external: true + penpot: + driver: bridge + +services: + penpot-frontend: + image: penpotapp/frontend:latest + networks: + - traefik + - penpot + env_file: .env + labels: + - "traefik.enable=true" + - "traefik.http.routers.penpot.rule=Host(`blueprint.whitney.rip`)" + - "traefik.http.routers.penpot.entrypoints=websecure" + - "traefik.http.routers.penpot.tls=true" + - "traefik.http.routers.penpot.tls.certresolver=letsencrypt" + - "traefik.http.services.penpot.loadbalancer.server.port=8080" + depends_on: + - penpot-backend + + penpot-backend: + image: penpotapp/backend:latest + networks: + - penpot + env_file: .env + depends_on: + - penpot-postgres + - penpot-redis + + penpot-exporter: + image: penpotapp/exporter:latest + networks: + - penpot + env_file: .env + depends_on: + - penpot-postgres + - penpot-redis + + penpot-postgres: + image: postgres:15 + networks: + - penpot + volumes: + - /pwspool/software/penpot/data:/var/lib/postgresql/data + env_file: .env + + penpot-redis: + image: redis:7 + networks: + - penpot +