This tutorial provides a step-by-step process for deploying the GenAI Launchpad on a production-ready Linux server.Documentation Index
Fetch the complete documentation index at: https://launchpad.datalumina.com/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before proceeding, ensure you have the following:- A remote server running a Linux distribution (Ubuntu recommended)
- SSH access to the server
- (Optional) A custom domain with access to DNS settings
Deployment
Install Docker
Docker is required to run the Launchpad. Follow the official installation instructions for your Linux distribution.For Ubuntu, execute the following commands:
Set up Docker’s APT repository
Install Docker
Verify installation
Ensure Docker is installed correctly by running:Clone the repository
To deploy the Launchpad, clone the repository onto your server. First, add an SSH key to your GitHub repository.Follow the prompts. If you do not wish to set a passphrase, press Copy the output, as it will be needed in the next step.
Replace the repository URL below with your own private GenAI Launchpad repository.
Generate an SSH key
Generate a new SSH key pair:Enter to skip.Print the public key:Add the SSH key to GitHub
- Navigate to your GitHub repository.
- Open Settings.
- In the left menu, go to Security > Deploy keys.
- Click Add deploy key and provide:
- Title:
genai-launchpad-prod - Key: Paste the copied public key.
- Title:
- Click Add key.
Clone the repository
Run the following command to clone the repository to the server:Configure environment variables
Configure the environment file for the runtime you are deploying.
.envat the repo root is for local Python development: playground scripts, unit tests, notebooks, and other commands run with your localuv/Python environment.docker/.envis for Docker Compose, the containerized Launchpad stack, the database, and optional Supabase services. This is the important file for a VPS deployment.
docker/.env is much larger mostly because self-hosted Supabase needs many variables for Auth, Realtime, Storage, Studio, Kong, and related services, even though Supabase is excluded by default.Enable HTTPS (optional)
This step is optional. Skip if you don’t need HTTPS or don’t have a custom domain.
Configure domain
- Create an A record in your domain’s DNS settings, pointing to your server’s IP address.
- Modify the
.envfile in thedocker/directory to include:
Open required ports
Ensure ports 80 and 443 are open on your server’s firewall:- Port 80: Required for Let’s Encrypt certificate validation (ACME challenge)
- Port 443: Required for HTTPS traffic
ufw: