Deploying from GitHub Repository
Deploy directly from a GitHub repository branch to XO Launchpad.
This guide walks you through creating a deployment in XO Launchpad using a GitHub repository.
Prerequisites
Environment Variables — Set up required ENV_VARS as GitHub repository secrets before deploying.
Go to your repository on GitHub: Settings → Secrets and variables → Actions → New repository secret
Add each environment variable (e.g. DATABASE_URL, API_KEY, JWT_SECRET) inside the ENV_VARS secret.
Dockerfile — Your repository must include a valid Dockerfile at the project root. Without it, your build will fail.
Open Deployment Setup
From the sidebar, go to Create from blank.
Choose Deployment Type
Under Create New Deployment, select GitHub Repository.
Configure GitHub Repository
Fill out the form:
- Repository URL — Format:
https://github.com/username/repo-name - Branch Name — The branch to deploy. Default:
main - GitHub Access Token — Generate a Personal Access Token (PAT) with
repoandworkflowscopes.
To generate a PAT: GitHub Developer Settings → Tokens → New token. Select repo and workflow scopes.
Without the correct PAT scopes, deployments will fail.
Define Project Details
- Project Name — Unique name (lowercase letters, numbers, hyphens only). Example:
project-07 - Instance Size — Choose based on resource needs.
Configure Ports
- Application Port — The port your app listens on (e.g.
3000,8080) - Leave DO NOT Expose any External Ports unchecked to get a public URL
Create Deployment
Review your settings and click Create Deployment. XO will pull the repository, build, and deploy your app.
Troubleshooting: 502 Gateway Error
| Cause | Fix |
|---|---|
| Missing Dockerfile | Add a valid Dockerfile at the repository root |
| Clicked too soon (build in progress) | Wait until logs show "container running" before visiting the URL |
| Wrong port configured | Open Actions → Update Port and enter the correct port |
| App crash on startup | Check deployment logs, fix errors, redeploy |
| Missing environment variables | Verify all required vars are added as repository secrets |
| Browser cache | Hard reload with Ctrl + Shift + R or open in incognito |
Quick Debugging Checklist
- Confirm Dockerfile exists and is valid
- Check logs for build or runtime errors
- Verify app listens on the configured port
- Ensure all required environment variables are set
- Wait for deployment to finish before accessing the app
- Clear cache if error persists