Skip to main content

Prerequisites

Before you dive into the installation of TriviaFlow, let's make sure you have everything ready. This system is built to be a robust, production-ready platform that handles real-time connections smoothly.

🖥️ Server Requirements (VPS)

You will need a Virtual Private Server (VPS) running a Linux operating system. Since TriviaFlow is fully containerized with Docker, it is relatively agnostic to the underlying OS, but we have specific recommendations for stability.

Compatible Operating Systems

The project relies on Docker Engine. Below is a list of distributions we recommend.

DistributionVersionsStatusNotes
Debian13 (Trixie)Dev / TestedReference System. The project was developed and extensively tested on this version.
Debian11 (Bullseye) / 12 (Bookworm)✅ StableFully supported and recommended for production.
Ubuntu20.04 LTS / 22.04 LTS✅ StableExcellent choice for beginners and professionals alike.
Fedora / CentOSLatest / Stream⚠️ CompatibleWorks, but ensures docker-ce is installed correctly.
Arch LinuxRolling⚠️ CompatibleFor advanced users.
Development Environment

TriviaFlow was primarily developed and tested on Debian 13. If you want the most predictable experience that matches the developer's environment exactly, choosing a modern Debian version is your best bet.

Hardware Specifications

TriviaFlow is efficient, but real-time WebSockets and database operations do require some resources.

ComponentMinimumRecommended
CPU1 vCore2 vCores
RAM1 GB2 GB (or more)
Storage10 GB SSD20 GB NVMe SSD
NetworkPublic IPv4Public IPv4 + IPv6

🌐 Domain & DNS Configuration

To provide a secure and professional experience (no browser warnings), you need a proper domain. Our integrated web server (Caddy) will automatically issue and renew valid HTTPS certificates for you.

You need to configure A-Records (IPv4) in your domain provider's dashboard pointing to your server's IP address.

Required Records

  • Game URL (The Main Event)

    • Type: A
    • Host: quiz (e.g., resulting in quiz.your-domain.com)
    • Value: <YOUR-SERVER-IP>
  • Database Admin (Optional)

    • Type: A
    • Host: db (e.g., resulting in db.your-domain.com)
    • Value: <YOUR-SERVER-IP>
    • Note: Only set this if you plan to use phpMyAdmin.
Firewall Settings

Don't get locked out! Make sure your cloud provider's firewall (AWS Security Groups, Hetzner Firewall, etc.) allows traffic on these ports:

  • Port 80 (HTTP): Required for Let's Encrypt certificate validation.
  • Port 443 (HTTPS): Required for the game and secure connections.
  • Port 22 (SSH): Required for you to access the server.

🛠️ Software Installation

The beauty of Docker is that you don't need to install Python, Redis, or MariaDB manually on your host system. However, you do need the tools to fetch and run the code.

1. Install Git

You need git to clone the repository. Choose the command for your distribution:

sudo apt update
sudo apt install git -y

2. Check Docker Availability

You will need Docker and Docker Compose plugin. We will cover the installation of Docker in detail in the next chapter.