How to Deploy FrankBoard Using Docker and PostgreSQL
How to Deploy FrankBoard Using Docker and PostgreSQL
This guide provides a streamlined path to launching a production-ready FrankBoard instance on a VPS, ensuring your team has a private, high-performance work board in minutes.
What You'll Need
- VPS with a Linux distribution (Ubuntu recommended)
- Docker and Docker Compose installed
- A domain name pointing to your server IP
- Root or sudo access
Steps
Step 1: Prepare the Environment
Create a dedicated directory for your deployment to keep configuration files organized. Navigate into this folder and create a docker-compose.yml file using your preferred text editor.
Step 2: Configure Docker Compose
Define two primary services in your YAML file: the FrankBoard application image and a PostgreSQL database. Ensure you specify the necessary environment variables for database credentials and application secrets.
Step 3: Set Up Persistent Volumes
Map Docker volumes to your host machine for both the PostgreSQL data directory and the FrankBoard uploads folder. This prevents data loss during container updates or restarts.
Step 4: Network Configuration
Assign a dedicated internal Docker network to allow the application and database to communicate securely. Expose only the necessary application port (typically 80 or 443) to the public internet.
Step 5: Launch the Containers
Execute 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 ps'.
Step 6: Implement a Reverse Proxy
Deploy Nginx or Traefik to handle incoming HTTP requests and route them to the FrankBoard container. This step is essential for managing SSL certificates and ensuring secure HTTPS connections.
Step 7: Final Application Setup
Access your domain in a web browser to complete the initial setup wizard. Create your administrative account and configure your first project board to begin inviting team members.
Expert Tips
- Use a strong, unique string for your APP_KEY to secure session data.
- Regularly back up the PostgreSQL volume to an external location to prevent data loss.
- Implement a firewall (like UFW) to block all ports except 80, 443, and SSH.
- Use Docker Compose profiles to manage different configurations for staging and production.