Planka behind Traefik with docker-compose

What is Planka?

Planka is an elegant open-source project tracking tool. It offers a range of features including the ability to create projects, boards, lists, cards, labels, and tasks. 

Additionally, users can add card members, track time, set a due date, add attachments, write comments, and utilize markdown support in card descriptions and comments. 

The platform also allows for filtering by members and labels, customization of project backgrounds, real-time updates, user notifications, and internationalization.

Getting Started

Requirements

To start with Gotify behined the Traefik you need to follow the instructions from the traefik with docker-compose post.

Optional you can keep this service up to date with the instructions from the watchtower with docker-compose post.

Create your docker-compose.yml

## docker-compose.yml
version: '3.8'
# network is optional just needed with gotify
networks:
  default:
   name: "demo_planka_db_net"
   external: false
 traefik:
   name: "traefik_net"
   external: true

services:
  planka:
   container_name: "demo_planka"
   image: "ghcr.io/plankanban/planka:latest"
   user: "1000"
   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:
     - "./data/planka/user-avatars:/app/public/user-avatars"
     - "./data/planka/project-background-images:/app/public/project-background-images"
     - "./data/planka/attachments:/app/private/attachments"
   networks:
     - "traefik"
   environment:
     - "BASE_URL=https://planka.localhost"
     - "TRUST_PROXY=0"
     - "DATABASE_URL=postgresql://postgres@db/planka"
     - "SECRET_KEY=${SECRET_KEY}"
     # DEFAULT_ variables can be removed after installation
     - "[email protected]" # Do not remove to prevent this user from being edited/deleted
     - "DEFAULT_ADMIN_PASSWORD=Password.1"
     - "DEFAULT_ADMIN_NAME=planka admin"
     - "DEFAULT_ADMIN_USERNAME=admin"
   depends_on:
     - "db"
   labels:
     # Watchtower add to auto update ( optional )
     - "com.centurylinklabs.watchtower.enable=true"
     # traefik
     - "traefik.enable=true"
     - "traefik.docker.network=traefik_net"
     - "traefik.http.routers.demo_planka.rule=Host(`planka.localhost`)"
     - "traefik.http.services.demo_planka.loadbalancer.server.port=1337"
     - "traefik.http.routers.demo_planka.entrypoints=websecure"
     - "traefik.http.routers.demo_planka.tls=true"
 db:
   container_name: "demo_planka_db"
   image: "postgres:alpine"
   restart: "unless-stopped"
   labels:
     # Watchtower add to auto update ( oprional )
     - "com.centurylinklabs.watchtower.enable=true"
     # traefik
     - "traefik.enable=false"
   volumes:
     - "./data/db:/var/lib/postgresql/data"
   environment:
     - "POSTGRES_DB=planka"
     - "POSTGRES_HOST_AUTH_METHOD=trust"

Start your docker-compse.yml

Now you can start your service with:

docker compose up -d

Access planka

Now you can access planka at https://planka.localhost.
If you used the sample from above, you can login with:

User: admin
Password: Password.1

you can find the example on my git server.