Installation
This guide walks you through installing BadgerPanel on a fresh server. The entire process is handled by a single command that takes care of everything automatically.
System Requirements
Hardware
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 4 GB | 8 GB |
| Disk | 20 GB SSD | 50 GB+ SSD |
| Network | 100 Mbps | 1 Gbps |
Software
| Requirement | Details |
|---|---|
| Operating System | Ubuntu 22.04 LTS (or any modern Linux with systemd) |
| Domain Name | A valid domain with an A record pointing to your server |
| Ports | 80 (HTTP) and 443 (HTTPS) must be open and not in use |
TIP
You do not need to install Docker yourself. The installer will detect if Docker and Docker Compose are missing and install them automatically.
Run the Installer
Run the following command, replacing YOUR_LICENSE_KEY with the license key provided to you:
curl -fsSL https://activate.badgerpanel.com/setup | bash -s -- YOUR_LICENSE_KEYThis single command handles the entire installation from start to finish. You will be prompted for a few details during the process (see below).
What the Installer Does
The installer runs through the following steps automatically:
| Step | Description |
|---|---|
| 1. Pre-flight checks | Detects your system, checks ports are available, and verifies minimum requirements |
| 2. Docker installation | Installs Docker and Docker Compose if not already present on the system |
| 3. Registry authentication | Uses your license key to authenticate and pull the BadgerPanel container images |
| 4. Deployment files | Writes the Docker Compose configuration, Nginx config, and all supporting files |
| 5. Domain & SSL | Prompts for your domain and sets up Let's Encrypt HTTPS certificates |
| 6. Credential generation | Generates secure passwords for the database, Redis, MinIO, and JWT signing |
| 7. Service startup | Pulls all images, starts the full stack, and waits for services to become healthy |
| 8. Admin account | Prompts you to create your initial administrator account |
| 9. License activation | Confirms your license activation with the BadgerPanel activation server |
Interactive Prompts
During installation you will be asked to provide:
- Domain name — the domain your panel will be accessible at (e.g.
panel.example.com) - Let's Encrypt email — for SSL certificate notifications (optional, can leave blank)
- Admin username — your initial administrator username
- Admin email — your administrator email address
- Admin password — your administrator password (entered securely, not displayed)
Credentials File
After installation, your credentials and connection details are saved to ~/badgerpanel/.credentials. This file contains:
- Admin login details
- Database connection information
- Redis and MinIO credentials
- JWT secret
- Internal service keys
WARNING
Keep this file safe. You will need it if you ever migrate the panel to a new server. Do not share it publicly.
Existing Installation Detection
If the installer detects an existing BadgerPanel installation in ~/badgerpanel, it will prompt you to choose:
- Update — pulls the latest images and restarts services while preserving your data, configuration, and credentials
- Fresh install — removes the existing installation and starts from scratch (all data will be lost)
- Cancel — exits without making any changes
If you are upgrading, choose the update option. Your servers, users, and settings will be preserved.
Services Deployed
The installer sets up the following services via Docker Compose:
| Service | Container | Purpose |
|---|---|---|
| Nginx | badger-nginx | Reverse proxy with SSL termination, WebSocket support |
| API | badger-api | Go backend API server with automatic database migrations |
| Web | badger-web | Next.js frontend application |
| MySQL | badger-mysql | Primary database (MySQL 8.0) |
| Redis | badger-redis | Session storage, caching, rate limiting |
| MinIO | badger-minio | S3-compatible object storage for backups and file uploads |
Next Steps
Once installation completes, open your panel domain in a browser and log in with the admin credentials you created. See Your First Server to set up your first game server.
