Installation
Requirements
| Requirement | Recommended minimum |
|---|---|
| OS | Linux (Ubuntu 20.04+ / Debian 11+) |
| RAM | 2 GB |
| CPU | 2 vCPU |
| Docker | 24.0+ |
| Docker Compose | 2.20+ |
Required firewall ports
Open these ports in your VPS firewall before connecting the client:
| Port | Protocol | Service |
|---|---|---|
44405 | TCP | ConnectServer |
55601 | UDP | ConnectServer |
55901 | TCP | GameServer |
8085 | TCP | Web panel (optional, admin only) |
With UFW:
ufw allow 44405/tcp
ufw allow 55601/udp
ufw allow 55901/tcp
Installation steps
1. Clone the repository
git clone https://github.com/EmanuelCatania/Mu-Linux-0.97k.git
cd Mu-Linux-0.97k
2. Configure environment variables
cp .env.example .env
nano .env
Required values to change before starting:
# Your VPS public IP (the client connects to this)
PUBLIC_IP=123.456.789.0
# MySQL passwords (change to strong values)
MYSQL_ROOT_PASSWORD=strong_root_password
MYSQL_PASSWORD=strong_user_password
# Session secret (any long random string)
SESSION_SECRET=change-this-to-a-long-random-string
# Admin panel credentials
ADMIN_USER=admin
ADMIN_PASS=change_this_password
3. Start the stack
docker compose up -d
This downloads the Docker Hub images (first time only) and starts all services: MySQL, ConnectServer, GameServer, JoinServer, DataServer and the web panel.
To watch logs in real time:
docker compose logs -f
To verify all containers are running:
docker compose ps
4. Access the web panel
Once all containers are healthy, the web panel is available through the domain configured in your reverse proxy:
https://your-domain.com/
Or directly by IP if you have no reverse proxy:
http://YOUR_IP:8085
Use the credentials you set in .env (ADMIN_USER / ADMIN_PASS).
The admin panel is at /admin/.
With the server editor (optional)
The editor API adds per-file backups and full snapshots of the MuServer/Data directory.
# Enable in .env
EDITOR_ENABLED=1
EDITOR_API_URL=http://mu-editor:8090
# Start with the extended compose file
docker compose -f docker-compose.yml -f docker-compose.editor.yml up -d
Updating images
docker compose pull
docker compose up -d
Recreating the database
If you change MySQL credentials after the first start, you need to recreate the volume:
docker compose down -v
docker compose up -d
⚠️ This deletes all server data. Make a backup first if you have important data.
Troubleshooting
Server doesn’t appear in client: check that PUBLIC_IP in .env is the correct public IP and that the firewall ports are open.
Web panel doesn’t load: wait a few seconds for MySQL to pass its health check. Check docker compose ps for the status of each service.
GameServer error logs: run docker compose logs mu-server to see specific errors.