app-store/apps/planka/docker-compose.yml

68 lines
2.5 KiB
YAML

version: '3'
services:
planka:
image: ghcr.io/plankanban/planka:1.19.1
container_name: planka
command: >
bash -c
"for i in `seq 1 30`; do
./start.sh &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 seconds...\";
sleep 5;
done; (exit $$s)"
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/user-avatars:/app/public/user-avatars
- ${APP_DATA_DIR}/data/project-background-images:/app/public/project-background-images
- ${APP_DATA_DIR}/data/attachments:/app/private/attachments
ports:
- ${APP_PORT}:1337
environment:
- BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
- TRUST_PROXY=1
- DATABASE_URL="postgresql://postgres@postgres/planka"
- SECRET_KEY="${PLANKA_SECRET_KEY}"
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.planka-web-redirect.redirectscheme.scheme: https
traefik.http.services.planka.loadbalancer.server.port: 1337
# Web
traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planka-insecure.entrypoints: web
traefik.http.routers.planka-insecure.service: planka
traefik.http.routers.planka-insecure.middlewares: planka-web-redirect
# Websecure
traefik.http.routers.planka.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planka.entrypoints: websecure
traefik.http.routers.planka.service: planka
traefik.http.routers.planka.tls.certresolver: myresolver
# Local domain
traefik.http.routers.planka-local-insecure.rule: Host(`planka.${LOCAL_DOMAIN}`)
traefik.http.routers.planka-local-insecure.entrypoints: web
traefik.http.routers.planka-local-insecure.service: planka
traefik.http.routers.planka-local-insecure.middlewares: planka-web-redirect
# Local domain secure
traefik.http.routers.planka-local.rule: Host(`planka.${LOCAL_DOMAIN}`)
traefik.http.routers.planka-local.entrypoints: websecure
traefik.http.routers.planka-local.service: planka
traefik.http.routers.planka-local.tls: true
depends_on:
- postgres
postgres:
image: postgres:14-alpine
container_name: planka-db
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
environment:
POSTGRES_DB: "planka"
POSTGRES_HOST_AUTH_METHOD: "trust"
networks:
- tipi_main_network