How to Deploy Kanboard on a VPS: Step-by-Step Guide
Managing tasks through third-party services works well enough — until the team starts worrying about data privacy, subscription costs, or depending on someone else’s infrastructure. At some point a reasonable question comes up: what if we hosted our own tool? Kanboard is one of those applications where the question actually makes sense.
It’s a lightweight, PHP-based task manager built around the Kanban methodology. It has no heavy dependencies, no complex infrastructure requirements, and covers most of what a small team needs for project planning. Deploying Kanboard on a VPS takes about thirty minutes — even without deep sysadmin experience. This guide walks through the entire process, from the first SSH connection to a fully working task board.
What Is Kanboard and Why Deploy It on a VPS
Kanboard is a free, open-source project management tool built around the Kanban methodology. The application is written in PHP, stores data in SQLite by default (or PostgreSQL and MySQL if preferred), and requires no Node.js, Docker, or dedicated application server. The entire application lives in a single directory, which makes it unusually straightforward for a PHP project.
Kanban as a methodology originated at Toyota in the 1950s — initially for managing manufacturing workflows. The idea is simple: tasks are represented as cards moving through columns. For example, “To Do” → “In Progress” → “Done.” The team sees the full picture at a glance, spots bottlenecks early, and works with a clear sense of priority. Kanboard brings that logic to a minimalist web interface.
A VPS (Virtual Private Server) is a virtualized dedicated server that behaves like a standalone machine: you get root access, fixed resources, and full control over the environment. That’s exactly what matters when deploying Kanboard on a VPS — the application runs on your own infrastructure, which means the data stays where you put it. In short, the Kanboard + VPS combination solves three things at once: data privacy, no subscription fees, and independence from external platforms.
What You’ll Need
Before starting, it’s worth making sure everything is in place. To deploy Kanboard on a VPS you’ll need:
- A VPS running Ubuntu 22.04 LTS — at minimum 1 vCPU, 1 GB RAM, 10 GB disk space.
- Root access via SSH, or a user with sudo privileges.
- A domain name — optional, but recommended if you plan to enable HTTPS.
- Basic familiarity with the command line.
Kanboard supports PHP 7.4 and above, though PHP 8.1 or 8.2 is recommended — both receive active security patches and perform noticeably faster. Either Nginx or Apache will work as a web server; this guide uses Nginx throughout.
In practice, a 1 GB RAM server handles Kanboard comfortably even with a few dozen concurrent users — the application is remarkably efficient with system resources.
Step-by-Step Kanboard Installation on a VPS
Step 1. Connect to the Server and Update the System
Connect to your VPS over SSH. The first thing to do is refresh the package list and bring all existing packages up to date:
sudo apt update && sudo apt upgrade -y
The update will take a few minutes. Once it completes, the system is ready for the installation.
Step 2. Install Nginx
Nginx will handle incoming HTTP requests and pass them to the PHP processor:
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Check that the server started successfully:
sudo systemctl status nginx
The output should include active (running). Opening the server’s IP address in a browser should show the Nginx welcome page — a clear sign the web server is working.
Step 3. Install PHP and Required Extensions
Kanboard needs PHP along with several extensions. Install PHP 8.2 and everything the application depends on:
sudo apt install php8.2-fpm php8.2-cli php8.2-gd php8.2-mbstring php8.2-xml php8.2-sqlite3 php8.2-curl php8.2-zip php8.2-pdo -y
Once installed, start PHP-FPM:
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
It’s important to confirm PHP-FPM is running before configuring Nginx — otherwise the web server won’t be able to process PHP requests:
sudo systemctl status php8.2-fpm
Step 4. Download and Extract Kanboard
Switch to the web applications directory and download the latest release archive from GitHub. You can always check the current version tag on the repository’s releases page — the v1.2.x tag changes with each update:
cd /var/www/
sudo wget
sudo tar -xzf v1.2.39.tar.gz
sudo mv kanboard-1.2.39 kanboard
sudo rm v1.2.39.tar.gz
After extraction, the application will be located at /var/www/kanboard.
Step 5. Set File Permissions
The web server runs as the www-data user. That user needs ownership of the Kanboard directory:
sudo chown -R www-data:www-data /var/www/kanboard
sudo chmod -R 755 /var/www/kanboard
sudo chmod -R 777 /var/www/kanboard/data
The data directory requires write access — this is where Kanboard stores the SQLite database, user-uploaded files, and internal cache. Without correct permissions the application won’t start.
Step 6. Configure the Nginx Virtual Host
Create a configuration file for the site:
sudo nano /etc/nginx/sites-available/kanboard
Paste the configuration below, replacing your-domain.com with your domain name or server IP address:
server {
listen 80;
server_name your-domain.com;
root /var/www/kanboard;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}
Enable the configuration and reload Nginx:
sudo ln -s /etc/nginx/sites-available/kanboard /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
The nginx -t command validates the configuration syntax. If the output includes syntax is ok, everything is correct and the server can be reloaded safely.
Step 7. Enable HTTPS with Let’s Encrypt
Running Kanboard without HTTPS is not recommended — especially when the server is accessible from the public internet. Let’s Encrypt provides free certificates with automatic renewal. Install Certbot and let it configure everything:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
Certbot will update the Nginx configuration automatically, add an HTTP-to-HTTPS redirect, and set up certificate auto-renewal. All connections to Kanboard will be encrypted from this point on.
Step 8. First Login
Open a browser and navigate to your domain or the server’s IP address. Kanboard will show the login page. The default credentials are username admin and password admin.
Change the password immediately after the first login. Default credentials are widely known and represent a direct security risk — automated bots scan open ports and try common credential pairs within minutes of a server going public.
That covers the base deployment. Kanboard on VPS is ready to use.
Kanboard Pros and Cons
To make the assessment concrete, the key characteristics are laid out below. This should help clarify which scenarios Kanboard fits well and where its capabilities fall short.
| Aspect | Advantages | Limitations |
|---|---|---|
| Cost | Completely free — you only pay for the VPS | Requires time for initial setup and ongoing maintenance |
| Privacy | Data stays exclusively on your own server | Backups are your responsibility |
| Performance | Very lightweight: 10–30 MB RAM under normal load | SQLite is not designed for hundreds of concurrent users |
| Interface | Clean, minimalist, fast | No native mobile app; responsive design is basic |
| Features | Tasks, subtasks, labels, due dates, webhooks, REST API | No Gantt chart, no built-in time tracker |
| Integrations | Slack, GitHub, GitLab, email, REST API | Plugin ecosystem is much smaller than Jira or Linear |
| Updates | Open source with regular GitHub releases | Upgrades are manual — there’s no built-in auto-update |
Limitations and Risks of Running Kanboard on a VPS
Worth noting: most of Kanboard’s limitations come from the choice of storage engine rather than the application itself. SQLite works well for small teams — up to 20–30 users under moderate load. As the number of participants grows or concurrent access becomes more intense, SQLite starts showing strain: table locks, slower responses, and the potential for corrupted writes. Switching to PostgreSQL is the right move at that point — Kanboard supports it out of the box.
From a security standpoint, self-hosting means self-responsibility. Outdated PHP extensions, unpatched system packages, and weak passwords are all realistic attack vectors. Applying security updates regularly and keeping Kanboard itself current are not optional steps — they should be part of a routine maintenance schedule. In practice this takes little time, but it needs to be planned for.
Another gap worth knowing about is the absence of built-in backup tooling. Kanboard doesn’t create backups on its own. The database file at /var/www/kanboard/data/db.sqlite needs to be copied manually or via an automated cron job to an external location or object storage.
At first glance, deploying Kanboard on a VPS looks more involved than signing up for a hosted service. That’s true. But the difference in effort amounts to a few hours upfront and a few minutes of maintenance per month — in exchange for full ownership of the data and infrastructure.
Practical Use Cases for Kanboard
A Development Team With No Tooling Budget
A four-person startup doesn’t want to pay for Jira or Notion. Kanboard on a VPS covers the essentials: project boards, tasks with assignees, priority labels, and GitHub integration via webhooks. The team sees who’s working on what without burying each other in chat messages. The monthly cost is the price of a minimal VPS — which matters a lot when budgets are tight.
A Freelance Agency Managing Multiple Clients
Kanboard supports multiple projects with separate participant lists. Each client gets their own project, and access is scoped to it alone. Tasks belonging to one client remain invisible to another. This is particularly relevant when tasks involve commercially sensitive information — launch plans, financial figures, draft contracts. On a self-hosted instance, none of that data touches external servers.
An IT Department Running an Internal Request Queue
A sysadmin tracks a backlog of internal requests: hardware replacements, account provisioning, infrastructure incidents. Kanboard accepts tasks manually or via email — incoming messages can automatically become cards on the board. Notably, the entire history of requests and related communications stays within the company’s own infrastructure rather than on a third-party platform.
A Personal Productivity System
A developer or content manager uses Kanboard as a personal tracker — books to read, project tasks, article deadlines. Self-hosting means no third party has access to personal plans or notes. There’s also no risk of the service shutting down or changing its terms, which is a real consideration with many free-tier tools.
Learning and Side Projects
Kanboard makes a solid training ground for DevOps fundamentals. Deploying a PHP application, configuring Nginx, managing SSL certificates, automating backups with cron — one project covers the full server maintenance cycle without putting any production system at risk. It’s worth noting that Kanboard has a clear advantage over Docker-heavy alternatives for this purpose: the environment is straightforward, transparent, and easy to replicate.
Common Mistakes When Deploying Kanboard
Wrong Permissions on the Data Directory
This is the most frequent reason Kanboard fails to start. If the data directory isn’t writable by www-data, the application returns a blank page or a database error. Check the permissions with:
ls -la /var/www/kanboard/data/
The owner should be www-data and permissions should be 777, or 775 if the group is configured correctly.
Running Without HTTPS
HTTP transmits passwords and task contents in plain text. Let’s Encrypt offers free certificates with automatic renewal, so skipping HTTPS is hard to justify even for internal-only deployments. If Kanboard is reachable from the internet without encryption, credentials are at direct risk of interception.
Leaving the Default Password in Place
Servers with default credentials get scanned and compromised within minutes — this isn’t an exaggeration, it’s a documented pattern of automated dictionary attacks. Changing the admin password right after first login is the highest-priority step after installation.
No Backup Strategy
The SQLite database is a single file. Filesystem corruption, an accidental rm, or a disk failure will wipe all tasks and history permanently. The simplest solution is a daily cron job that copies the data directory to external storage or an object store.
PHP-FPM Version Mismatch in the Nginx Config
If another PHP version is already installed on the server — say, 7.4 — Nginx may be passing requests to the wrong FPM socket. Check which socket is listed in the fastcgi_pass directive, then verify it matches the active PHP version:
ls /var/run/php/
The output will show available sockets with their version numbers — whichever matches your installed PHP is the one to reference in the Nginx configuration.
Choosing the Right Server for Kanboard
Kanboard is light on resources, which is one of its strengths. For personal use or a team of up to ten people, a VPS with 1 GB RAM and 10 GB SSD is sufficient. Switching to PostgreSQL and growing the user base warrants bumping RAM to 2 GB. Disk usage depends heavily on attachments — if users regularly upload files to tasks, 10 GB fills up faster than expected.
Choosing a provider with SSD or NVMe storage matters for SQLite performance. On spinning disks, the database slows down noticeably under parallel reads. Serverspace VPS instances run on NVMe, which covers Kanboard’s needs with room to spare at any reasonable load level. Even the entry-level configuration delivers a responsive interface and fast page rendering.
If Kanboard is intended as a primary team tracker rather than a personal tool, it’s worth starting with a 2–4 GB RAM instance and choosing a plan that allows easy vertical scaling as the team grows. The flexibility to upgrade resources without migrating the server is particularly convenient when the workload is hard to predict upfront.
Conclusion
Kanboard is a capable task management tool that deploys on a VPS without complex dependencies. PHP, Nginx, SQLite — that’s all it takes to get a fully functional task manager under your own control. Deploying Kanboard on a VPS fits within an hour, even without prior sysadmin experience — the step-by-step commands in this guide cover the entire process from a fresh server to a working HTTPS-enabled instance.
Once set up, the team gets a private task board with no limits on projects or participants, no monthly payments to a third-party service, and no dependency on external platforms. For small teams, freelancers, and anyone who takes data privacy seriously, running Kanboard on a VPS is a practical and cost-effective choice.
Can Kanboard be installed without a domain name?
Yes. In the Nginx configuration, set the server’s IP address as the value for server_name instead of a domain. The only limitation is that Let’s Encrypt requires a domain to issue a certificate, so HTTPS would need to be configured with a self-signed certificate — or skipped entirely, which isn’t recommended for publicly accessible instances.
How do I upgrade Kanboard to a new version?
The process is manual. Start by backing up the data directory and config.php file. Then download the new archive from GitHub, extract it alongside the old installation, copy the data directory and config.php into the new folder, and replace the active directory. Kanboard automatically runs any pending database migrations on the next startup.
Does Kanboard support PostgreSQL?
Yes. To switch from SQLite to PostgreSQL, create a database and user in PostgreSQL, install the php8.2-pgsql extension, then edit config.php in the Kanboard directory to set the database driver, host, database name, username, and password. On the next startup, Kanboard creates all required tables automatically.
How many users can Kanboard handle on a minimal VPS?
On a 1 GB RAM VPS with SQLite, Kanboard runs comfortably for teams of 15–20 people under typical usage. For heavier parallel loads — dozens of simultaneous requests — switching to PostgreSQL and increasing RAM to 2 GB is the right approach.
How do I set up automatic notifications in Kanboard?
Kanboard sends notifications via email and webhooks. For email, configure the SMTP settings in config.php: server host, port, username, and password. Webhooks allow Kanboard to integrate with Slack, Telegram bots, or any service that accepts HTTP POST requests — opening up a wide range of workflow automation options without additional plugins.
News
Berita Teknologi
Berita Olahraga
Sports news
sports
Motivation
football prediction
technology
Berita Technologi
Berita Terkini
Tempat Wisata
News Flash
Football
Gaming
Game News
Gamers
Jasa Artikel
Jasa Backlink
Agen234
Agen234
Agen234
Resep
Cek Ongkir Cargo
Download Film