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
portsetting inconfig.jsonmay be ignored. You’ll need to override it via--portin 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.
| Term | Scope | User Focus | Features |
|---|---|---|---|
| Personal Server | Single-user or small team | Individuals | Basic multi-user login, shared workspace only |
| Self-hosted | Any (Personal or Team) | Custom environments | Depends on edition & setup |
Final Notes
Focalboard is now accessible at http://localhost:8003.
Happy planning!