If you’re looking to run Focalboard on a Linux server without Docker, this guide is for you. We’ll install Focalboard on Debian 12, run it as a service using systemd, and place it in a custom directory: /var/app/service/focalboard-server.

All steps use the Linux user: userexample:userexample

1. Install Dependencies

sudo apt update
sudo apt install -y wget unzip sqlite3

2. Create the Installation Directory

sudo mkdir -p /var/app/service/focalboard-server
sudo chown -R userexample:userexample /var/app/service/focalboard-server
cd /var/app/service/focalboard-server

3. Download and Extract Focalboard

wget https://github.com/mattermost/focalboard/releases/download/v7.10.2/focalboard-server-linux-amd64.tar.gz

tar -xvzf focalboard-server-linux-amd64.tar.gz
rm focalboard-server-linux-amd64.tar.gz

This will extract the binary to bin/focalboard-server

4. Create config.json

nano config.json

Paste the following content:

{
    "serverRoot": "http://localhost:8003",
    "port": 8003,
    "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"
}

Note: In practice, the port setting in config.json may be ignored. You’ll need to override it via --port in the systemd service.

5. Create a systemd Service

sudo nano /etc/systemd/system/focalboard.service

Paste this:

[Unit]
Description=Focalboard Personal Server
After=network.target

[Service]
Type=simple
User=userexample
Group=userexample
WorkingDirectory=/var/app/service/focalboard-server
ExecStart=/var/app/service/focalboard-server/bin/focalboard-server --config config.json --port 8003
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

This ensures the port is correctly set even if the config file is ignored.

6. Start the Service

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

Verify it’s running:

systemctl status focalboard

Check if it’s listening on port 8003:

ss -tuln | grep 8003

Personal Server vs Self-hosted

Focalboard Personal Server is a lightweight edition designed for individuals or small teams. It supports multiple user accounts but does not include:

  • Team-based access controls
  • Private boards per user
  • Advanced role-based permissions

All users share the same workspace and can see/edit all boards.

Self-hosted simply means the software is running on your own infrastructure — cloud VM, physical server, or local device.

TermScopeUser FocusFeatures
Personal ServerSingle-user or small teamIndividualsBasic multi-user login, shared workspace only
Self-hostedAny (Personal or Team)Custom environmentsDepends on edition & setup

Final Notes

Focalboard is now accessible at http://localhost:8003.

Happy planning!

Leave A Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.