75 lines
1.9 KiB
Plaintext
75 lines
1.9 KiB
Plaintext
# Rust Game Server Quadlet Container Definition
|
|
# Pfad: ~/.config/containers/systemd/rust.container (rootless)
|
|
# oder: /etc/containers/systemd/rust.container (system)
|
|
|
|
[Unit]
|
|
Description=Rust Game Server via gameadm
|
|
Documentation=https://git.pp1l.de/pp1l/gameadm
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Container]
|
|
Image=docker.io/didstopia/rust-server:latest
|
|
AutoUpdate=registry
|
|
|
|
# Umgebungsvariablen aus gameadm Konfiguration
|
|
EnvironmentFile=/etc/rust-server.conf
|
|
Environment=RUST_SERVER_STARTUP_ARGUMENTS=-batchmode -load -nographics +server.secure 1
|
|
Environment=RUST_SERVER_IDENTITY=main
|
|
Environment=RUST_SERVER_SEED=12345
|
|
Environment=RUST_SERVER_WORLDSIZE=3000
|
|
Environment=RUST_SERVER_MAXPLAYERS=4
|
|
Environment=RUST_SERVER_HOSTNAME=PP1L Rust Server - Powered by gameadm
|
|
Environment=RUST_SERVER_DESCRIPTION=Enterprise Rust Server managed by gameadm
|
|
Environment=RUST_SERVER_URL=https://git.pp1l.de/pp1l/gameadm
|
|
Environment=RUST_SERVER_BANNER_URL=
|
|
Environment=RUST_RCON_WEB=0
|
|
Environment=RUST_RCON_PORT=28016
|
|
Environment=RUST_RCON_PASSWORD_FILE=/tmp/rcon_password
|
|
|
|
# Netzwerk und Ports
|
|
PublishPort=28015:28015
|
|
PublishPort=28016:28016
|
|
|
|
# Volumes und Secrets
|
|
Volume=/srv/rust:/steamcmd/rust:Z
|
|
Secret=rust_server_password,type=mount,target=/tmp/server_password
|
|
Secret=rust_rcon_password,type=mount,target=/tmp/rcon_password
|
|
|
|
# Performance und Sicherheit
|
|
User=1000:1000
|
|
SecurityLabelType=container_runtime_t
|
|
NoNewPrivileges=true
|
|
ReadOnlyTmpfs=true
|
|
Tmpfs=/tmp
|
|
|
|
# Memory Limits
|
|
Memory=2G
|
|
MemorySwap=2G
|
|
|
|
# Health Check
|
|
HealthCmd=netstat -ln | grep :28015 || exit 1
|
|
HealthInterval=30s
|
|
HealthRetries=3
|
|
HealthStartPeriod=120s
|
|
|
|
# Restart Policy
|
|
Restart=on-failure
|
|
RestartSec=30
|
|
|
|
# Labels für Auto-Update
|
|
Label=io.containers.autoupdate=registry
|
|
Label=maintainer=gameadm
|
|
Label=service=rust
|
|
Label=environment=production
|
|
|
|
[Service]
|
|
Type=notify
|
|
NotifyAccess=all
|
|
Delegate=yes
|
|
TimeoutStartSec=600
|
|
TimeoutStopSec=120
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|