Factorio-ModUpdate
gamesThe vanilla Factorio server. With automatic Mod Updates after ReInstall. https://www.factorio.com/
Docker Images (1)
| Name | Image |
|---|---|
ghcr.io/ptero-eggs/yolks:debian | ghcr.io/ptero-eggs/yolks:debian |
Startup Command
./bin/x64/factorio --port {{SERVER_PORT}} --server-settings data/server-settings.json --start-server {{SAVE_NAME}}.zip Variables (10)
Factorio Version
Which version of Factorio to install and use.
- Environment:
FACTORIO_VERSION- Default:
latest- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|between:3,12
Maximum Slots
Total number of slots to allow on the server.
- Environment:
MAX_SLOTS- Default:
20- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric|digits_between:1,3
Save Name
The save name for the server.
- Environment:
SAVE_NAME- Default:
gamesave- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
alpha_dash|between:1,100
Server Token
Your factorio.com token, it is required for your server to be visible in the public server list.
- Environment:
SERVER_TOKEN- Default:
undefined- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
alpha_num|max:100
Server Name
Name of the game as it will appear in the game listing
- Environment:
SERVER_NAME- Default:
Factorio Server- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:100
Server Description
Description of the game that will appear in the listing.
- Environment:
SERVER_DESC- Default:
Description- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:200
Server Username
Username used for the server
- Environment:
SERVER_USERNAME- Default:
unnamed- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:40
Auto Save Interval
Time between auto saves specified in minutes
- Environment:
SAVE_INTERVAL- Default:
10- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric|digits_between:1,3
Auto Save Slots
The number of auto saves to keep.
- Environment:
SAVE_SLOTS- Default:
5- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric|digits_between:1,3
AFK Kick
Time specified in minutes to kick AFK players. 0 is off
- Environment:
AFK_KICK- Default:
0- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric|digits_between:1,3
Installation Script
Container:
ghcr.io/ptero-eggs/installers:debianEntrypoint:
bash#!/bin/bash
# Factorio Installation Script
#
# Server Files: /mnt/server
apt update
apt install -y curl tar xz-utils python3 python3-requests jq
latest_ModUpdate=$(curl --silent "https://api.github.com/repos/pdemonaco/factorio-mod-updater/tags" | jq -r '.[0].name')
VERSION_JSON=$(curl -sSL https://factorio.com/api/latest-releases)
latest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')
latest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')
if [ -z "${FACTORIO_VERSION}" ] || [ "${FACTORIO_VERSION}" == "latest" ]; then
DL_VERSION=$latest_stable
elif [ "${FACTORIO_VERSION}" == "experimental" ]; then
DL_VERSION=$latest_experimental
else
DL_VERSION=${FACTORIO_VERSION}
fi
mkdir -p /mnt/server
cd /mnt/server
echo -e "\n running 'curl -sL https://www.factorio.com/get-download/${DL_VERSION}/headless/linux64 -o factorio-${DL_VERSION}' \n"
curl -sL https://www.factorio.com/get-download/${DL_VERSION}/headless/linux64 -o factorio-${DL_VERSION}
tar -xf factorio-${DL_VERSION} --strip-components=1 -C /mnt/server
rm factorio-${DL_VERSION}
if [ -e data/map-gen-settings.json ]; then
echo "map-gen exists"
else
echo "copying map-gen default settings"
mv data/map-gen-settings.example.json data/map-gen-settings.json
fi
if [ -e data/server-settings.json ]; then
echo "server settings exists"
else
echo "copying server default settings"
mv data/server-settings.example.json data/server-settings.json
fi
if [ -e map-settings.json ]; then
echo "map settings exists"
else
echo "copying map default settings"
mv data/map-settings.example.json data/map-settings.json
fi
if [ -e ${SAVE_NAME}.zip ]; then
echo "save file exists"
else
./bin/x64/factorio --create ${SAVE_NAME}
chmod o+w ${SAVE_NAME}.zip
fi
# Download Mod Updater
echo -e "\n running 'curl -sL https://github.com/pdemonaco/factorio-mod-updater/archive/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}' \n"
curl -sL https://github.com/pdemonaco/factorio-mod-updater/archive/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}
tar -xf factorio-MU-${latest_ModUpdate} -C /mnt/server
rm factorio-MU-${latest_ModUpdate}
# Run Mod Updater
./factorio-mod-updater-${latest_ModUpdate}/mod_updater.py -s /mnt/server/data/server-settings.json -m /mnt/server/mods --fact-path /mnt/server/bin/x64/factorio --update
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"