How to Install Focalboard on AlmaLinux 9

Estimated reading: 3 minutes 1152 views

Introduction

*”Focalboard is an open-source, self-hosted project management tool, similar to Trello or Asana. It allows teams and individuals to organize tasks, projects, and workflows on their own server.

Key features: boards, lists, and cards, customizable workflows, team collaboration, self-hosted and secure, and support for SQLite or PostgreSQL.

In this tutorial, we will install Focalboard on AlmaLinux 9 with systemd and Nginx reverse proxy.”

Step 1: Update the System

sudo dnf update
sudo dnf install epel-release 
sudo dnf install wget curl unzip nginx certbot python3-certbot-nginx firewalld

Explanation:

  • Updates all system packages.

  • Installs EPEL repository for extra packages.

  • Installs essential tools (wget, curl, unzip), Nginx web server, and firewalld.


Step 2: Enable Nginx

sudo systemctl enable --now nginx

Explanation:

  • Starts Nginx immediately.

  • Enables Nginx to run at boot.

  • Check status to confirm Nginx is running.


Step 3: Install PostgreSQL (Optional)

sudo dnf install postgresql-server postgresql-contrib -y 
sudo postgresql-setup --initdb 
sudo systemctl enable --now postgresql

Explanation:

  • Installs PostgreSQL server and utilities.

  • Initializes the database.

  • Enables PostgreSQL to start at boot.

Note: You can skip this step if you want to use SQLite.


Step 4: Download and Extract Focalboard

mkdir -p /opt/focalboard cd /opt/focalboard wget https://sourceforge.net/projects/focalboard.mirror/files/v7.10.6/focalboard-server-linux-amd64.tar.gz/download -O focalboard.tar.gz 
tar -xzf focalboard.tar.gz

Explanation:

  • Creates installation directory.

  • Downloads Focalboard server package.

  • Extracts the package.


Step 5: Configure Focalboard

vi /opt/focalboard/focalboard/config.json

Example configuration:

{
"serverRoot": "http://localhost:8000",
"port": 8000,
"dbtype": "sqlite3",
"dbconfig": "./focalboard.db",
"postgres_dbconfig": "dbname=focalboard sslmode=disable",
"useSSL": false,
"webpath": "./pack",
"filespath": "./files",
"telemetry": true,
"prometheusaddress": ":9092",
"session_expire_time": 2592000,
"session_refresh_time": 18000,
"localOnly": false,
"enableLocalMode": true,
"localModeSocketLocation": "/var/tmp/focalboard_local.socket"
}
Explanation:
  • Set database type (sqlite3 or postgres).

  • Adjust paths for files and web assets.

  • SSL is disabled in this setup (useSSL: false).


Step 6: Create a systemd Service

vi /etc/systemd/system/focalboard.service

Paste this:

[Unit]
Description=Focalboard Server
After=network.target[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/opt/focalboard/focalboard/bin/focalboard-server
WorkingDirectory=/opt/focalboard/focalboard

[Install]
WantedBy=multi-user.target

Enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable --now focalboard
sudo systemctl status focalboard

Explanation:

  • Creates a systemd service.

  • Ensures Focalboard starts automatically at boot.

  • Restart=always keeps it running if it crashes.


Step 7: Configure Nginx Reverse Proxy

vi /etc/nginx/conf.d/focalboard.conf

Example configuration:

upstream focalboard {
server 127.0.0.1:8000;
keepalive 32;
}server {
listen 80;
server_name yourdomain.com;

location / {
proxy_pass http://focalboard;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location ~ /ws/* {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://focalboard;
}
}

Test and reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

Explanation:

  • Sets up reverse proxy to forward traffic to Focalboard.

  • Handles WebSocket connections under /ws/.

  • Replace yourdomain.com with your domain or server IP.


Step 8: Access Focalboard

Open your browser:

http://your_ipaddress

Explanation:

  • Focalboard web interface should appear.

  • Setup is complete, ready for use.


Conclusion

“Focalboard is now successfully installed on AlmaLinux 9 with systemd and Nginx reverse proxy.
You can start managing your tasks and projects in a secure, self-hosted environment.
Thank you for following this tutorial.”

Share this Doc

How to Install Focalboard on AlmaLinux 9

Or copy link

CONTENTS