a00bd620a1
Self-hostable game-server control panel: controller + agent + 26 game modules. One-line install (prebuilt release, no Go required): curl -fsSL https://git.pdxtechs.com/dbledeez/panel/raw/branch/main/install.sh | sudo bash Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
44 lines
1.6 KiB
Bash
44 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# panel-native Satisfactory entrypoint.
|
|
set -euo pipefail
|
|
log() { printf '[panel-satisfactory] %s\n' "$*"; }
|
|
|
|
if [[ "$(id -u)" = "0" ]]; then
|
|
chown -R panel:panel /game /game-saves /home/panel 2>/dev/null || true
|
|
exec setpriv --reuid=panel --regid=panel --clear-groups \
|
|
--inh-caps=-all --bounding-set=-all \
|
|
env HOME=/game-saves PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
|
|
GAME_PORT="${GAME_PORT:-7777}" RELIABLE_PORT="${RELIABLE_PORT:-8888}" \
|
|
/entrypoint.sh "$@"
|
|
fi
|
|
|
|
GAME_DIR=/game
|
|
SAVE_DIR=/game-saves
|
|
START_SH="${GAME_DIR}/FactoryServer.sh"
|
|
|
|
if [[ ! -x "${START_SH}" ]]; then
|
|
log "ERROR: ${START_SH} not found. Run 'Update' in the panel to install Satisfactory via SteamCMD."
|
|
exit 78
|
|
fi
|
|
|
|
# Satisfactory writes SaveGames / Engine configs to
|
|
# $HOME/.config/Epic/FactoryGame. HOME is /game-saves → saves land in the
|
|
# save volume without further fiddling.
|
|
mkdir -p "${SAVE_DIR}/.config/Epic/FactoryGame/Saved/SaveGames"
|
|
|
|
GAME_PORT="${GAME_PORT:-7777}"
|
|
RELIABLE_PORT="${RELIABLE_PORT:-8888}"
|
|
|
|
cd "${GAME_DIR}"
|
|
log "starting Satisfactory dedicated server (game=${GAME_PORT}/udp+tcp reliable=${RELIABLE_PORT}/tcp)"
|
|
|
|
# -Port drives both the UDP game socket and the HTTPS API listener (they
|
|
# share the number). -ReliablePort is the TCP reliability channel (1.0+).
|
|
# -stdout -FullStdOutLogOutput route UE logs to stdout for `docker logs`.
|
|
exec stdbuf -oL -eL "${START_SH}" \
|
|
-Port="${GAME_PORT}" \
|
|
-ReliablePort="${RELIABLE_PORT}" \
|
|
-multihome=0.0.0.0 \
|
|
-stdout -FullStdOutLogOutput \
|
|
-unattended
|