Docs Running a server
Linux and containers
Running the server on Linux as a systemd service or in a container, on x86-64 or ARM64.
The Linux server is one program with no installer: legacysf-server for x86-64, and the same in arm64/ for ARM64. It needs glibc 2.28 or later (Debian 10, Ubuntu 18.10, RHEL 8 and newer) and reaches Team Vanilla through the system's own libcurl and certificates, which nearly every installation already has:
| System | Packages |
|---|---|
| Debian, Ubuntu | libcurl4, ca-certificates |
| RHEL, Fedora, AlmaLinux, Rocky | libcurl, ca-certificates |
A data folder copied from Windows may have its folders in another case (Area for area): the server finds them either way.
By hand
cd legacysf-server
./legacysf-server # the first run makes server.key and stops
./legacysf-server --register CODE
./legacysf-server
Ctrl+C or SIGTERM saves and stops it.
On ARM64, put the ARM64 programs in place of the x86-64 ones before anything else, so the service and the container file work unchanged:
cp arm64/legacysf-server legacysf-server
cp arm64/tools/lsfpack tools/lsfpack
As a service
The download carries a systemd unit, legacysf-server.service, that runs the server as its own user from /opt/legacysf-server:
sudo useradd --system --home /opt/legacysf-server --shell /usr/sbin/nologin legacysf
sudo cp -r . /opt/legacysf-server && sudo chown -R legacysf: /opt/legacysf-server
cd /opt/legacysf-server
sudo -u legacysf ./legacysf-server # makes server.key
sudo -u legacysf ./legacysf-server --register CODE
sudo cp legacysf-server.service /etc/systemd/system/
sudo systemctl daemon-reload && sudo systemctl enable --now legacysf-server
journalctl -u legacysf-server -f
It starts again by itself after a reboot. systemctl stop legacysf-server saves and stops it.
In a container
Containerfile builds an image of the folder (podman or docker):
podman build -t legacysf-server -f Containerfile .
podman run --rm -v sf-state:/srv/state legacysf-server --register CODE
podman run -d --name sf -p 27240:27240/udp -v sf-state:/srv/state legacysf-server
Everything the server writes (server.cfg, server.key, accounts/, packs, recordings, logs) is in the volume. Keep the volume: server.key in it is the server's identity.
The firewall
Allow UDP on the server's port in the system's firewall, and in the provider's if it has one. Ports and firewalls has the commands.