37 lines
1.4 KiB
Desktop File
37 lines
1.4 KiB
Desktop File
# Cinderwild dedicated server as a systemd service (Linux).
|
|
#
|
|
# 1. Put the game where it'll live, e.g. /opt/cinderwild (a git clone), and
|
|
# install Godot 4.7+ as /usr/local/bin/godot.
|
|
# 2. Make a user for it: sudo useradd -r -m -d /var/lib/cinderwild cinderwild
|
|
# 3. Copy this file: sudo cp server/cinderwild-server.service /etc/systemd/system/
|
|
# and edit User, WorkingDirectory and GODOT below if yours differ.
|
|
# 4. Start it, and on boot: sudo systemctl enable --now cinderwild-server
|
|
# Logs: journalctl -u cinderwild-server -f
|
|
# Stop / restart: sudo systemctl stop|restart cinderwild-server
|
|
#
|
|
# server.json and the world live in the user's Godot data folder:
|
|
# /var/lib/cinderwild/.local/share/godot/app_userdata/Cinderwild/server/
|
|
# Admin commands: join the game and use chat (/help), or edit server.json and
|
|
# restart. (The console needs a terminal, so it isn't used here.)
|
|
|
|
[Unit]
|
|
Description=Cinderwild dedicated server
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=cinderwild
|
|
WorkingDirectory=/opt/cinderwild
|
|
Environment=GODOT=/usr/local/bin/godot
|
|
# run_server.sh checks the Godot version and imports a fresh copy first.
|
|
ExecStart=/opt/cinderwild/server/run_server.sh
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
# The world saves within 10 s of any change, so a stop loses at most that.
|
|
KillSignal=SIGINT
|
|
TimeoutStopSec=20
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|