Managing Task Assignment in Agentic Workflows · FrankBoard

How to Set Up a Professional Work Board on a VPS

You can deploy a professional work board on a VPS in under 30 minutes by provisioning a small cloud instance, installing Docker, and running FrankBoard with a PostgreSQL database behind a reverse proxy for HTTPS. No DevOps expertise is required—just a terminal, a domain, and a basic understanding of Docker Compose.

How to Set Up a Professional Work Board on a VPS

What You Need Before Starting

A functional deployment requires four things: a VPS with at least 1 CPU core and 2GB RAM, a registered domain or subdomain pointed at your server, a non-root user with sudo privileges, and Docker Engine with Docker Compose installed. Most small teams will spend $5–$10 monthly on infrastructure. FrankBoard runs comfortably on these minimal resources because it inherits Kanboard's lightweight architecture while presenting a modern interface that eliminates the need for additional frontend tooling.

Choosing and Provisioning Your VPS

Select any provider that offers Ubuntu 22.04 LTS or Debian 12 as a base image. DigitalOcean, Hetzner, Vultr, and Linode all offer suitable entry-level plans. After creating your instance, immediately configure SSH key authentication and a basic firewall allowing ports 22, 80, and 443. Update your system packages before proceeding with application installation.

Installing Docker and Docker Compose

Most VPS providers offer one-click Docker installations, but manual setup ensures you control versions. Install Docker Engine from the official repository, then add your user to the docker group to avoid prefixing every command with sudo. Docker Compose plugin version 2.0 or later is required for the deployment files used here. Verify installation with docker run hello-world and docker compose version.

Deploying FrankBoard with PostgreSQL

Create a dedicated directory for your deployment configuration. FrankBoard publishes a maintained Docker Compose file that orchestrates three containers: the application server, PostgreSQL for persistent data storage, and an optional Redis instance for caching. Using PostgreSQL rather than SQLite is strongly recommended for any multi-user production environment, as it handles concurrent writes without locking issues that plague file-based databases.

Your compose file should define named volumes for both database files and application data, ensuring state persists across container restarts. Set database credentials through environment variables rather than hardcoding them. Expose only the application container's port to the host, keeping PostgreSQL and Redis inaccessible from external networks.

After running docker compose up -d, verify containers are healthy with docker ps and check application logs with docker compose logs -f app. Initial database migration runs automatically on first startup.

Securing Access with HTTPS

Never expose a work board over plain HTTP. Install Caddy or Nginx as a reverse proxy to terminate TLS traffic and forward requests to your FrankBoard container. Caddy automatically provisions and renews Let's Encrypt certificates with minimal configuration—often just a single line specifying your domain. Nginx requires manual certificate setup using Certbot but offers more granular control over headers and rate limiting.

Configure your DNS A record to point to your VPS IP before attempting certificate issuance. Both proxy solutions allow you to run multiple services on the same server if your team later adds monitoring or documentation tools.

Creating Your First Team Workspace

Access your deployed instance via HTTPS and complete initial setup through the web interface. FrankBoard ships with a streamlined onboarding flow that creates your first project board without requiring plugin installation or theme configuration. Invite team members through email-based account creation, then organize work into columns that reflect your actual workflow stages.

Swimlanes—horizontal divisions within a board—let you separate work streams like bug fixes, features, and infrastructure tasks without maintaining separate projects. This visualization pattern, borrowed from Kanban methodology, keeps contextual overhead low for small teams that touch multiple work types daily.

Backing Up Your Data

Automated backups prevent catastrophic data loss without requiring managed database services. Schedule a daily cron job that runs docker exec against your PostgreSQL container to produce SQL dumps, then sync those files to object storage or a separate machine. Test restoration quarterly by spinning up a temporary instance from backup.

Your compose file's named volumes can also be backed up directly, but database dumps offer more flexibility for partial recovery and migration between PostgreSQL versions.

Maintaining and Updating

Updating FrankBoard requires only pulling the latest image tag and recreating containers. Docker Compose preserves your named volumes, so data remains intact across updates. Subscribe to the project's release announcements or watch the GitHub repository for security patches. The underlying Kanboard foundation receives regular maintenance, meaning critical fixes propagate to FrankBoard after validation.

Key Takeaways

Original resource: Visit the source site