MUD Hosting checklist for MUDs
This checklist outlines the technical requirements and operational procedures necessary to move a MUD from a local development environment to a production Linux VPS. Following these steps ensures high uptime, data integrity for player characters, and protection against common server vulnerabilities.

Environment & Dependencies
0/5Legacy Library Compatibility
criticalVerify that 32-bit compatibility libraries (libc6-i386) are installed if running older ROM, Circle, or Merc codebases on a 64-bit OS.
Build Toolchain Validation
criticalConfirm GCC, Make, and essential headers are present; attempt a clean 'make' of the source code to ensure no missing dependencies exist in the production environment.
Timezone Synchronization
recommendedConfigure the system clock to UTC and enable NTP synchronization to ensure game logs and player file timestamps are consistent.
Swap Space Allocation
recommendedAllocate at least 1GB of swap space on the VPS to prevent the OOM (Out of Memory) killer from terminating the MUD process during peak player counts or memory leaks.
Environment Variable Configuration
optionalSet specific environment variables (e.g., MUD_HOME, PATH) in the service user's .bashrc or systemd unit file for consistent execution paths.
Security & Access Control
0/5Unprivileged Service User
criticalCreate a dedicated system user (e.g., 'mudrun') with no sudo privileges to execute the binary and own the game files.
SSH Hardening
criticalDisable root login and password authentication in /etc/ssh/sshd_config, requiring SSH keys for admin access.
Firewall Configuration
criticalConfigure UFW or iptables to drop all traffic except for the SSH port and the specific game port (e.g., 4000 or 23).
Directory Permissions
criticalSet permissions on the player data directory (chmod 700) to ensure only the service user can read or modify sensitive player files.
Fail2Ban Implementation
recommendedInstall and configure Fail2Ban to monitor the game port and SSH port for brute-force connection attempts.
Automation & Persistence
0/5Systemd Service Unit
criticalCreate a .service file in /etc/systemd/system/ to manage the MUD process, enabling 'systemctl start' and 'systemctl stop' functionality.
Auto-Restart Logic
criticalConfigure the systemd 'Restart=always' and 'RestartSec=5' directives to ensure the game automatically restarts following a crash.
Local Backup Cron
criticalSchedule a daily cron job to create a compressed tarball of the player, area, and lib directories.
Offsite Backup Transfer
criticalConfigure rsync or an S3-compatible tool to move local backups to a geographically separate storage location every 24 hours.
Log Rotation
recommendedSet up logrotate for the MUD's output logs to prevent disk space exhaustion from multi-gigabyte log files.
Network & Connectivity
0/5DNS A-Record Mapping
recommendedMap a domain or subdomain to the VPS IP address and verify propagation via dig or nslookup.
IPv6 Connectivity Check
optionalTest if the MUD binary binds to the IPv6 interface and ensure the firewall allows traffic on the game port for IPv6 addresses.
Connection Throttling
recommendedImplement a connection limit at the OS level (using iptables connlimit) to prevent simple socket-exhaustion DoS attacks.
Port Redirection
optionalIf using a privileged port like 23, use iptables PREROUTING rules to redirect traffic to the high-numbered port used by the unprivileged service user.
Latency Testing
optionalRun mtr or ping tests from multiple geographic regions to identify potential routing issues between the VPS provider and the player base.
Monitoring & Health Checks
0/5Uptime Monitoring
criticalSet up an external monitoring service (e.g., UptimeRobot) to ping the TCP game port every 5 minutes and alert admins on failure.
Disk Space Alerts
criticalConfigure a shell script or monitoring agent to send an alert when disk usage exceeds 80%, preventing database/pfile corruption.
Memory Leak Tracking
recommendedEstablish a baseline for memory usage and schedule a weekly check of the RSS (Resident Set Size) of the MUD process.
Player File Integrity Audit
criticalRun a script to verify that player files are not zero-byte and can be parsed by the current binary version before finalizing a migration.
Crash Dump Configuration
recommendedEnable core dumps (ulimit -c unlimited) and specify a directory for them to facilitate debugging after a segmentation fault.