Note
Airlink 2.0.0-rc1 is a release candidate. Core features are stable. Production use is at your own risk until the final release.
Open-source game server management — v2.0.0-rc1
Airlink Panel is an open-source platform for deploying, monitoring, and managing game servers. It provides a full-featured web UI for both admins and users, a daemon-based node system for running containers, and an addon API for extending functionality without modifying core code.
For full documentation, visit airlinklabs.github.io/home/docs/quickstart.
| Handle | Role |
|---|---|
| thavanish | Current maintainer |
| privt00 | Project lead |
| achul123 | Core developer |
- Node.js v18 or later
- pnpm v8 or later (
npm install -g pnpm) - Git
sudo su
bash <(curl -s https://raw.githubusercontent.com/airlinklabs/panel/refs/heads/main/installer.sh)Manage with systemd:
systemctl start airlink-panel
systemctl stop airlink-panel
systemctl restart airlink-panel
journalctl -u airlink-panel -fcd /var/www/
git clone https://github.com/AirlinkLabs/panel.git
cd panel
chown -R www-data:www-data /var/www/panel
chmod -R 755 /var/www/panel
# Install dependencies (pnpm auto-approves Prisma build scripts via package.json)
pnpm install
# Set up environment
cp example.env .env
# Edit .env — set PORT, URL, SESSION_SECRET, and DATABASE_URL at minimum
# Run database migrations and generate Prisma client
pnpm run migrate:deploy
# Compile TypeScript and build CSS
pnpm run build
# Start the panel
pnpm run startpnpm run start applies any pending database schema changes automatically before launch.
npm install -g pm2
pm2 start "pnpm run start" --name airlink-panel
pm2 save
pm2 startupCopy example.env to .env and fill in the required values:
| Variable | Required | Description |
|---|---|---|
NAME |
No | Panel display name (default: Airlink) |
NODE_ENV |
Yes | Set to production for live deployments |
URL |
Yes | Full URL the panel is served from, e.g. http://192.168.1.10:3000 |
PORT |
Yes | Port to listen on |
DATABASE_URL |
Yes | SQLite path, e.g. file:/var/www/panel/dev.db |
SESSION_SECRET |
Yes | Random secret for session signing — use openssl rand -hex 32 |
Important
DATABASE_URL must be an absolute path (e.g. file:/var/www/panel/dev.db), not a relative one like file:./dev.db. Relative paths break when the process is started from a different working directory (e.g. via systemd).
Important
URL should be set to the actual IP or hostname the panel is served from. Setting it to http://localhost will prevent the panel from being reachable over the network and causes CSP issues in the browser.
Addons extend the panel without modifying core files. They live under storage/addons/ and are managed from /admin/addons.
See storage/addons/README.md for structure and API reference.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit:
git commit -m 'feat: describe your change' - Push and open a pull request against
main
Run pnpm run lint before submitting. Follow TypeScript best practices and update documentation alongside code changes.
- Website: airlinklabs.github.io/home
- Docs: airlinklabs.github.io/home/docs/quickstart
- Discord: discord.gg/ujXyxwwMHc
- GitHub: github.com/airlinklabs/panel
MIT — see LICENSE for details.