Troubleshooting
This page covers common issues encountered when operating BadgerPanel and their solutions. Always start by checking the relevant logs.
Viewing Panel Logs
cd ~/badgerpanel
# View logs for all services
docker compose logs --tail 100
# View logs for a specific service
docker compose logs api --tail 100
docker compose logs web --tail 100
docker compose logs nginx --tail 100
docker compose logs mysql --tail 100
docker compose logs redis --tail 100
# Follow logs in real-time
docker compose logs -f apiInstallation Issues
Installer Fails with Docker Error
Symptom: The installer exits with "Docker is not installed."
Solution: Install Docker before running the installer:
curl -fsSL https://get.docker.com | bashVerify the installation:
docker --version
docker compose versionServices Fail to Start
Symptom: docker compose ps shows services as exited or restarting.
# Check which services are failing
docker compose ps
# View the failing service's logs
docker compose logs api
docker compose logs mysqlCommon causes:
- Port 80 or 443 already in use by another web server (Apache, nginx, etc.)
- Insufficient disk space for Docker images
- Docker daemon not running:
systemctl start docker
Port Conflicts
Symptom: Nginx fails to start with "bind: address already in use."
# Find what's using port 80 or 443
ss -tlnp | grep -E ':80|:443'Stop the conflicting service (e.g., systemctl stop apache2) or reconfigure the panel to use different ports.
Connection Issues
Cannot Access the Panel in Browser
Checklist:
- Verify services are running:
docker compose ps - Check nginx logs:
docker compose logs nginx - Verify your domain's DNS A record points to the panel server's IP:
dig panel.example.com - Ensure ports 80 and 443 are open:
sudo ufw statusor check your cloud provider's security group - Test local connectivity:
curl -v https://localhostfrom the panel server
Node Shows as Offline
Checklist:
- Check the daemon is running on the node:
systemctl status badger-daemon - Verify
panel.urlin the daemon config is correct and reachable from the node:curl -I https://panel.example.com - Check daemon logs:
journalctl -u badger-daemon --tail 50 - Ensure the node's API key hasn't been regenerated in the panel
- Check firewall rules between the node and the panel (the daemon connects outbound on port 443)
WebSocket Connection Drops
Symptom: Console output stops updating or the node disconnects frequently.
Causes:
- A reverse proxy or load balancer is not configured for WebSocket upgrades
- Network timeout settings are too aggressive
- The daemon's heartbeat is not reaching the panel within the timeout window
Check that your nginx configuration includes WebSocket upgrade headers for the API paths.
Server Issues
Server Won't Start
- Check the server's console log in the panel for error messages
- Verify the node has enough available resources (memory and disk)
- Check daemon logs for container errors:
journalctl -u badger-daemon --tail 50 - Ensure the Docker image specified in the egg can be pulled on the node:
docker pull <image>
Server Stuck in "Installing"
Symptom: A server remains in installing status indefinitely.
- Check the install output in the server's console tab
- Check daemon logs for errors during the install script execution
- If the install script hangs, kill the server from the admin panel and try reinstalling
Server Crashes Repeatedly
If a server crashes more than 3 times within 10 minutes (default crash detection window), the daemon stops restarting it and marks it as crashed. Check the console output for the error causing the crash. Common causes include:
- Insufficient memory allocation
- Corrupted game files (try reinstalling)
- Port already in use by another process
Database Issues
Game Server Database Connection Errors
- Verify the database host is accessible from the node's IP address
- Check credentials in the database host configuration under Admin > Database Hosts
- Ensure the database host's firewall allows connections from game server nodes on port 3306
Panel Database Errors
Check the API logs for database-related errors:
docker compose logs api | grep -i "database\|mysql\|sql"Common causes:
- MySQL service crashed:
docker compose restart mysql - Connection pool exhausted under heavy load
SSL Certificate Issues
- Verify your domain's DNS A record is pointing to the correct server IP
- Check nginx logs:
docker compose logs nginx - Ensure ports 80 and 443 are not blocked (Let's Encrypt requires port 80 for HTTP challenges)
- Manually renew:
sudo certbot renew - Check certificate expiry:
sudo certbot certificates
Getting Help
If you cannot resolve an issue using this guide:
- Check the daemon and API logs for specific error messages
- Join the BadgerPanel Discord for community support
- Open a support ticket through the BadgerPanel website
