Installing YouTrack Kanban Board On Docker Swarm

Screenshot YouTrack

How To Install YouTrack As Kanban Board On Your Docker Swarm

Increase Productivity by using YouTrack from JetBrains as Kanban board deployed with Docker on Docker Swarm

Paul Knulst  in  Productivity Nov 25, 2021 2 min read

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...)

YouTrack from JetBrains is free for up to 10 people
Photo from FreeImages

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

Install YouTrack 2020 from JetBrains by clicking Set up
YouTrack installation window

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.


☕

🙌 Support this content

If you like this content, please consider supporting me. You can share it on social media, buy me a coffee, or become a paid member. Any support helps.

See the contribute page for all (free or paid) ways to say thank you!

Thanks! 🥰

By Paul Knulst

I'm a husband, dad, lifelong learner, tech lover, and Senior Engineer working as a Tech Lead. I write about projects and challenges in IT.