From 76862f6596e19d79cfbbbbdeffbca537d21ec005 Mon Sep 17 00:00:00 2001 From: Marijn Doeve Date: Sun, 13 Jul 2025 21:59:11 +0200 Subject: [PATCH] Add planka --- planka/compose.yaml | 89 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 planka/compose.yaml diff --git a/planka/compose.yaml b/planka/compose.yaml new file mode 100644 index 0000000..49c6621 --- /dev/null +++ b/planka/compose.yaml @@ -0,0 +1,89 @@ +services: + planka: + image: ghcr.io/plankanban/planka:2.0.0-rc.3 + restart: on-failure + volumes: + - favicons:/app/public/favicons + - user-avatars:/app/public/user-avatars + - background-images:/app/public/background-images + - attachments:/app/private/attachments + + environment: + BASE_URL: http://localhost:3000 + DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@postgres/planka + + SECRET_KEY: ${SECRET_KEY} + # Optionally store in secrets - then SECRET_KEY should not be set + # - SECRET_KEY__FILE=/run/secrets/secret_key + + # - LOG_LEVEL=warn + + # - TRUST_PROXY=true + # - TOKEN_EXPIRES_IN=365 # In days + + # related: https://github.com/knex/knex/issues/2354 + # As knex does not pass query parameters from the connection string, + # we have to use environment variables in order to pass the desired values, e.g. + # - PGSSLMODE= + + # Configure knex to accept SSL certificates + # - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false + + # Used for per-board notifications + # - DEFAULT_LANGUAGE=en-US + + # Do not comment out DEFAULT_ADMIN_EMAIL if you want to prevent this user from being edited/deleted + # - DEFAULT_ADMIN_EMAIL=demo@demo.demo + # - DEFAULT_ADMIN_PASSWORD=demo + # Optionally store in secrets - then DEFAULT_ADMIN_PASSWORD should not be set + # - DEFAULT_ADMIN_PASSWORD__FILE=/run/secrets/default_admin_password + # - DEFAULT_ADMIN_NAME=Demo Demo + # - DEFAULT_ADMIN_USERNAME=demo + + # - INTERNAL_ACCESS_TOKEN= + # - ACTIVE_USERS_LIMIT= + + # Set to true to show more detailed authentication error messages. + # It should not be enabled without a rate limiter for security reasons. + # - SHOW_DETAILED_AUTH_ERRORS=false + + # Email Notifications (https://nodemailer.com/smtp/) + # - SMTP_HOST= + # - SMTP_PORT=587 + # - SMTP_NAME= + # - SMTP_SECURE=true + # - SMTP_USER= + # - SMTP_PASSWORD= + # Optionally store in secrets - then SMTP_PASSWORD should not be set + # - SMTP_PASSWORD__FILE=/run/secrets/smtp_password + # - SMTP_FROM="Demo Demo" + # - SMTP_TLS_REJECT_UNAUTHORIZED=false + depends_on: + postgres: + condition: service_healthy + labels: + - traefik.enable=true + - traefik.http.routers.planka.rule=Host(`planka.marijndoeve.nl`) + - traefik.http.routers.planka.entrypoints=websecure + - traefik.http.routers.planka.tls.certresolver=marijndoeve + postgres: + image: postgres:16-alpine + restart: on-failure + volumes: + - db-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: planka + POSTGRES_HOST_AUTH_METHOD: trust + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d planka"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + favicons: + user-avatars: + background-images: + attachments: + db-data: \ No newline at end of file