ABCDEFGHIJKLMNOPQRSTUVWXYZAAAB
1
2
Setup a QSSM Linux Dedicated Server (exabytes.com in Denver, CO)
3
4
instruction
https://www.exabytes.com/hosting/vps-hosting
5
instruction
Pay: Linux SSD VPS 1 (Ubuntu 16.04)
6
instruction
Email from exabytes: "Linux SSD VPS Starter Account Details", Find SSH IP and SSH Port
7
instruction
SSH login via putty
8
9
commandapt update
10
commandapt upgrade
11
command
sudo dpkg --configure -a
12
commandsudo reboot
13
command
sudo do-release-upgrade
three upgrades to 18.04, then 20.04, then 22.04 -- end at Ubuntu 22.04.1 LTS
14
commandlsb_release -a
check ubuntu version
15
command
sudo apt install vsftpd
install FTP to upload files
16
command
sudo timedatectl set-timezone America/Los_Angeles
set local time to a location to yours or servers
17
commanddatecheck date / time
18
command
sudo systemctl start vsftpd
19
command
sudo systemctl enable vsftpd
20
command
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
back up the original config
21
command
sudo nano /etc/vsftpd.conf
enable write access write_enable=YES
22
command
sudo systemctl restart vsftpd
23
command
adduser woods
set a password:
24
command
usermod -aG sudo woods
add woods to admin group
25
command
sudo apt-get install build-essential
26
command
sudo apt install git -y
install git
27
sudo apt install curl
28
command
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
install homebrew
29
command
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
add Homebrew to your PATH
30
commandbrew doctor
check Brew is working fine
31
command
sudo apt-get install libsdl2-2.0
32
command
sudo apt install screen
33
command
brew install sdl2
latest sdl2 2.26.x, apt doesn't have latest. sdl2 required to run qss) -- this takes ~20 min
34
command
sudo apt-get install -y libgl1-mesa-glx
35
command
sudo apt-get install libopusfile0
36
command
sudo apt-get install libvorbisfile3
37
command
sudo apt-get install libmad0
38
instruction
upload QSS-M files via FTP to /home/woods/qssm
39
command
sudo chmod 755 QSS-M-l64
set permissions for binary
40
41
Running CRx Mod In QSS-M
42
43
instructiondownload CRx
https://github.com/quakeone/CRx
44
instruction
edit server.cfg, configs, motd.qc then compile progs.dat using fteqcc
customize to your liking
45
instruction
upload CRx files via FTP to /home/woods/qssm/id1
progs.dat, server.cfg, configs folder, maps
46
command
screen -S qssm26001
create a screen named "qssm26001" to keep server running in background
47
command
./QSS-M-l64 -dedicated -port 26001 -protocol 666 -condebug
other option for more info: +developer 1
48
commandctrl+a ctrl+ddetatch the screen
49
command
screen -r qssm26001
resume the screen
50
instruction
optional: contact to add to https://servers.quakeone.com/about
51
instruction
download ctf maps
https://www.quaddicted.com/files/mirrors/ftp.planetquake.com/threewave/ctf/client/
52
instruction
download more ctf maps
https://www.quaddicted.com/files/mirrors/ftp.planetquake.com/captured/loc/
53
instruction
download rocket arena maps
https://www.quaddicted.com/files/idgames2/planetquake/servers/arena/farena12.zip
54
55
Other Useful Commands
56
57
killall screen
58
59
60
61
✅ QSS-M (QuakeSpasm Spiked Mod) Server
62
Single socket model: Uses one single UDP socket, typically on port 26000 or whatever you specify.
63
64
Simplified port forwarding: You only need to forward one UDP port from your router (e.g. 26000) directly to the same port on your server.
65
66
Client compatibility: Compatible with normal Quake clients (e.g., ProQuake, Mark V, FTE, DarkPlaces, etc.), no special client required.
67
68
Better NAT handling: QSS-M handles client NAT traversal better, as it doesn’t rely on ephemeral ports. This means even players behind routers or firewalls should connect just fine.
69
70
Identity-mapped NAT is ideal, but generally not an issue with typical home setups.
71
72
✅ Recommended for modern hosting, especially when dealing with port restrictions or NAT environments.
73
74
⚠️ ProQuake Server
75
Ephemeral ports required: In addition to the main port (e.g., 26000), ProQuake servers also use extra random UDP ports for communication. These must also be open for it to work fully, especially across NATs.
76
77
Complicated port forwarding: Requires more than one port to be open on the server and forwarded correctly. This can cause issues when:
78
79
Hosting from behind a NAT (typical home routers),
80
81
Hosting on networks where only limited ports can be forwarded.
82
83
Local connections may still work, but remote clients might fail unless all necessary ports are open and mapped.
84
85
Workarounds: You’d need to either forward a range of UDP ports (which is messy) or use a server without NAT in front of it.
86
87
❌ Not ideal for NAT or restrictive network setups.
88
89
90
91
92
93
94
95
96
97
98
99
100