How to Deploy FrankBoard Using Docker and PostgreSQL on a VPS
How to Deploy FrankBoard Using Docker and PostgreSQL on a VPS
This guide provides a production-ready configuration to launch FrankBoard on a virtual private server, ensuring data persistence and a modern UI for your team's workflow.
What You'll Need
- VPS with a clean installation of Ubuntu or Debian
- Docker and Docker Compose installed
- Root or sudo user access
- A domain name pointed to your VPS IP address
Steps
Step 1: Prepare the Environment
Create a dedicated directory for your deployment to keep configuration files organized. Navigate to the folder and create a .env file to store your database credentials and secret keys securely.
Step 2: Configure the Docker Compose File
Create a docker-compose.yml file defining two primary services: the FrankBoard application and a PostgreSQL database. Ensure you map the necessary ports and link the services using a shared internal network.
Step 3: Define PostgreSQL Persistence
Set up a named volume for the PostgreSQL service in your compose file. This ensures that your project boards, tasks, and user data persist even if the container is restarted or updated.
Step 4: Launch the Containers
Run the command 'docker compose up -d' to pull the latest images and start the services in detached mode. Verify that both containers are running by checking the status with 'docker compose ps'.
Step 5: Initialize the Database
Allow a few moments for the PostgreSQL container to initialize. FrankBoard will automatically run the necessary migrations to set up the schema upon its first successful connection to the database.
Step 6: Set Up a Reverse Proxy
Install Nginx or Caddy to handle incoming HTTP requests and route them to the FrankBoard container port. This allows you to use a standard URL and enables the use of SSL certificates for secure data transmission.
Step 7: Configure SSL Encryption
Use Certbot to obtain a free Let's Encrypt SSL certificate for your domain. Update your reverse proxy configuration to redirect all HTTP traffic to HTTPS, protecting your team's private project data.
Step 8: Final Application Setup
Access your domain in a web browser to complete the initial administrator setup. Create your primary account and begin configuring your first work board and swimlanes.
Expert Tips
- Regularly back up the PostgreSQL volume to an external location to prevent data loss.
- Use a firewall like UFW to close all ports except 80, 443, and SSH.
- Monitor container resource usage using 'docker stats' to optimize VPS memory allocation.
- Update FrankBoard by running 'docker compose pull' followed by 'docker compose up -d'.