How to Install Planka with Docker on AlmaLinux 9

Planka is a self-hosted Trello-like kanban board built with React and Redux.

In this article, we are going to learn how to install Planka on AlmaLinux 9. So, let’s get started.

Checkout the Plaka Project Here.

Pre-requisites

  • A system with AlmaLinux 9 installed and running.
  • root access to the system.
  • Docker installed and running, for this, you can refer to one of our guides on installing Docker on AlmaLinux 9.
  • Docker-Compose installed and running, for this, you can refer to one of our guides on installing Docker-Compose on AlmaLinux 9.

Once you’re all set, we’ll proceed with Planka installation and configuration.

Install Planka with Docker

The following instructions use Docker-Compose and Docker service to install Planka using the Planka Docker Image. First, download the docker-compose configuration,

curl -L https://raw.githubusercontent.com/plankanban/planka/master/docker-compose.yml -o docker-compose.yml

Next, edit the docker-compose.yml file, and change the following variables

  • BASE_URL — Change localhost in the BASE_URL variable to the actual IP address of your server
  • SECRET_KEY — Change this to a random string/password other than notsecretkey
  • user-avatars — Set this to a path within your server, where the user-avatars would be stored
  • project-background-images — Set this to a path within your server, where the project-background-images would be stored
  • attachments — Set this to a path within your server, where the attachments would be stored
  • db-data — Set this to a path within your server, where the db-data would be stored

For example,

version: '3'

services:
  planka:
    image: ghcr.io/plankanban/planka:latest
    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:
      - user-avatars:/app/public/user-avatars
      - project-background-images:/app/public/project-background-images
      - attachments:/app/private/attachments
    ports:
      - 3000:1337
    environment:
      - BASE_URL=http://localhost:3000 <<< CHANGE THIS
      - TRUST_PROXY=0
      - DATABASE_URL=postgresql://postgres@postgres/planka
      - SECRET_KEY=notsecretkey <<< CHANGE THIS
    depends_on:
      - postgres

  postgres:
    image: postgres:14-alpine
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=planka
      - POSTGRES_HOST_AUTH_METHOD=trust

volumes:
  user-avatars:  <<< CHANGE THIS
  project-background-images:  <<< CHANGE THIS
  attachments:  <<< CHANGE THIS
  db-data:  <<< CHANGE THIS

Next, run the docker-compose command to start the container,

docker-compose up -d

Wherein you’ll see the following output,

[+] Running 23/23d                                                        32.6s
 ⠿ postgres Pulled                                                        32.6s
   ⠿ ca7dd9ec2225 Pull complete                                           10.2s
   ⠿ 126ca7716c09 Pull complete                                           11.8s
   ⠿ 72a45366ffb3 Pull complete                                           13.0s
   ⠿ a83abc0b204f Pull complete                                           25.1s
   ⠿ 75b7878d77a7 Pull complete                                           25.8s
   ⠿ 885367a2605d Pull complete                                           26.5s
   ⠿ e21e95eec5ea Pull complete                                           27.1s
   ⠿ 8314321a0c7c Pull complete                                           27.8s
 ⠿ planka Pulled                                                          48.6s
   ⠿ df9b9388f04a Pull complete                                            5.2s
   ⠿ 70c90f7de7cb Pull complete                                           19.8s
   ⠿ f83937c3ce37 Pull complete                                           21.1s
   ⠿ 98b78bba1d70 Pull complete                                           21.7s
   ⠿ f691180aac9c Pull complete                                           36.9s
   ⠿ 22ea37fc2716 Pull complete                                           37.1s
   ⠿ d6a11a777488 Pull complete                                           37.3s
   ⠿ 9805222c040e Pull complete                                           45.9s
   ⠿ 96e449f43226 Pull complete                                           46.1s
   ⠿ 2b61d5091b2c Pull complete                                           46.4s
   ⠿ 459ac8f0ea37 Pull complete                                           46.6s
   ⠿ f74ffe3c6698 Pull complete                                           47.3s
   ⠿ 6e09b209a763 Pull complete                                           47.4s
[+] Running 7/7
 ⠿ Network root_default                     Crea...                        0.6s
 ⠿ Volume "root_user-avatars"               Created                        0.0s
 ⠿ Volume "root_project-background-images"  Created                        0.0s
 ⠿ Volume "root_attachments"                Created                        0.0s
 ⠿ Volume "root_db-data"                    Cre...                         0.0s
 ⠿ Container root-postgres-1                Started                        1.5s
 ⠿ Container root-planka-1                  S...                           3.0s

The installation process will start now. It may take 5-10 mins to complete.

To verify if the Planka container is running, you can check the output of docker ps,

[root@vps ~]# docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS          PORTS                                       NAMES
e22e9f27a1e4   ghcr.io/plankanban/planka:latest   "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   0.0.0.0:3000->1337/tcp, :::3000->1337/tcp   root-planka-1
7b15642535d3   postgres:14-alpine                 "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   5432/tcp                                    root-postgres-1
[root@vps ~]#

Accessing Planka

Now open the IP address or Domain name from your browser, this will redirect you to the Appwrite.

http://server.ip.address:3000/login

Replace the server.ip.address with the actual IP or domain configured on the server.

The default logins are defined as,

Username: demo@demo.demo Password: demo

Follow the below steps:

Once logged in, you can change the username, password, email ID and other information of the user from under the Settings menu,

Next,

Now you have successfully installed Planka with Docker on AlmaLinux 9.

Related posts

How to Create Remote Desktop Gateway via Apache Guacamole on AlmaLinux 9

How to Secure Nginx with Let’s Encrypt on AlmaLinux 9

How to Install Glances on AlmaLinux 8