How To Install YouTrack As Kanban Board On Your Docker Swarm
I was searching for an easy-to-use Kanban board for multiple weeks. I tested several instances found on an awesome list: kanboard, nullboard, vikunja, wekan, or taskboard.
Beyond that, they are all good no one really fitted me. But then yesterday I found that my favorite IDE developer has its own issue board. AND it is free to use!!! (for up to 10 people...)
This tutorial will show how you can install YouTrack on your Docker Swarm and use it in production.
Set up Docker Compose file
To install YouTrack on your Docker Swarm you could use this Compose file. Keep in mind that this Compose file only works if you have installed a Traefik load balancer.
version: '3.5'
services:
board:
image: jetbrains/youtrack:2020.2.7479
container_name: "youtrack-board"
hostname: "youtrack.board"
volumes:
- data:/opt/youtrack/data
- conf:/opt/youtrack/conf
- logs:/opt/youtrack/logs
- backups:/opt/youtrack/backups
networks:
- traefik-public
deploy:
placement:
constraints:
- node.labels.youtrack.data == true
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.youtrack-http.rule=Host(`board.${PRIMARY_DOMAIN}`)
- traefik.http.routers.youtrack-http.entrypoints=http
- traefik.http.routers.youtrack-http.middlewares=https-redirect
- traefik.http.routers.youtrack-https.rule=Host(`board.${PRIMARY_DOMAIN}`)
- traefik.http.routers.youtrack-https.entrypoints=https
- traefik.http.routers.youtrack-https.tls=true
- traefik.http.routers.youtrack-https.tls.certresolver=le
- traefik.http.services.youtrack.loadbalancer.server.port=8080
volumes:
data:
conf:
logs:
backups:
networks:
traefik-public:
external: true
This file is created from a simple template but is extended with a constraint for a Docker Swarm node where the persisted volumes/data should be stored.
To successfully install this Compose file on any Swarm the label has to be set on any of your Docker Swarm nodes:
docker node update --label-add youtrack.data=true ID_OF_NODE_TO_USE
Additionally, each file has its deploy labels set to automatically receive an SSL cert after deploying. Read more about Traefik here.
Afterward, you can deploy it to your cluster as the service YouTrack with:
docker stack deploy -c docker-compose.youtrack.yml youtrack
Install YouTrack
Now the Docker service should be deployed and you can hit your domain and follow the installation process:
Step 1: A token that could be found within the mounted devices (/conf/) has to be provided in the first step. Normally, if the default file path for docker volumes is used the token can be retrieved by executing:
cat /var/lib/docker/volumes/youtrack_conf/_data/internal/services/configurationWizard/wizard_token.txt
Step 2: Just press Set up
Step 3: Although I normally use HTTPS within the next step, I chose HTTP and set the base URL to https://board... This is done because Traefik does SSL certificate handling and not YouTrack on its own.
Step 4: Set up the admin login
Step 5: Activate the license (Use the free license or buy one from JetBrains)
Some minutes later your personal instance of YouTrack is installed and you can start to create some Todos on your Kanban board.
Feel free to connect with me on Medium, LinkedIn, and Twitter.