Server Prerequisites
Before setting up a PlayRen game server, make sure your machine meets the following requirements.
Operating System
- Ubuntu 22.04 LTS or newer (recommended)
- Other Debian-based distributions may work but are not officially tested.
- The setup script assumes
aptas the package manager.
Hardware Requirements
Minimum Specifications
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8+ cores |
| RAM | 16 GB | 32+ GB |
| Storage | 100 GB SSD | 250+ GB NVMe SSD |
| Network | 100 Mbps | 1 Gbps |
Sizing Guidance
Each game container typically uses:
- CPU: 0.5-2 cores depending on the game (Ren'Py games are relatively lightweight).
- Memory: 512 MB - 2 GB per container.
- Disk: 500 MB - 5 GB per cached game, plus container overhead.
A server with 8 cores and 32 GB RAM can comfortably run 8-15 concurrent game sessions, depending on the specific games.
Storage Considerations
- SSD is required. Game archives are extracted on launch and random I/O performance matters. Spinning disks will cause unacceptable launch delays.
- NVMe is recommended for servers handling many concurrent sessions.
- Plan for at least 50 GB of game cache storage, plus 20 GB for the OS and Docker images.
- Save files are stored on the platform server, not on game servers, so save storage is not a concern here.
Software Requirements
The setup script installs most dependencies automatically, but the following should be available or installable:
Docker
Docker Engine is required for running game containers. The setup script installs Docker if not already present. Minimum version: Docker 24.0+.
Python 3.10+
The pool agent is a Python FastAPI application. Python 3.10 or newer is required. The setup script sets up a virtual environment with all dependencies.
Nginx
Used as a reverse proxy for the pool agent API and for WebRTC signaling. The setup script installs and configures Nginx.
Certbot
For SSL certificate provisioning via Let's Encrypt. Required for secure communication between the platform and the game server.
Network Requirements
Ports
The following ports must be accessible:
| Port | Protocol | Purpose |
|---|---|---|
| 22 | TCP | SSH (administration) |
| 80 | TCP | HTTP (Let's Encrypt challenge) |
| 443 | TCP | HTTPS (pool agent API) |
| 9100 | TCP | Pool agent (internal, behind Nginx) |
| 52000-52100 | UDP | WebRTC media streams |
Firewall
The setup script configures ufw firewall rules. If you use a cloud provider's firewall (AWS Security Groups, GCP Firewall Rules, etc.), ensure the ports above are allowed.
DNS
You need a DNS record pointing a hostname to your server's IP address. This hostname is used for:
- SSL certificate provisioning.
- Platform-to-agent communication.
- WebRTC signaling.
Example: gs01.play.ren.bd pointing to your server's public IP.
Docker Image
The PlayRen game container image (xgame9-cloud:latest) must be available on the server. The setup script pulls or builds this image. The image includes:
- Xorg with software rendering (Mesa llvmpipe)
- Neko server for WebRTC streaming
- x264 software encoding for video
- Ren'Py runtime dependencies
Next Steps
- Installation — Run the setup script and register your server.
- Configuration — Fine-tune agent settings and firewall rules.