The server supports mods. The factorio-modupdate egg uses the factorio-mod-updater to update your mods when ReInstalling the Server.
Factorio is a game in which you build and maintain factories.
You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. Use your imagination to design your factory, combine simple elements into ingenious structures, apply management skills to keep it working, and protect it from the creatures who don't really like you.
The game is very stable and optimized for building massive factories. You can create your own maps, write mods in Lua, or play with friends via Multiplayer.
Factorio has been in development since the spring of 2012. So far over 1,400,000 people have bought the game. You can get it from Steam, GOG, or directly from their shop.
New to the game? Make sure to checkout their starter page.
Factorio requires a single port
Port | default |
---|---|
Game | 34197 |
There is a factorio egg for ARM64 machines that uses the box64 emulator. If you are on AMD64 Like most of you download the normal non ARM64 egg!
Name | Tag |
---|---|
ghcr.io/ptero-eggs/yolks:debian | ghcr.io/ptero-eggs/yolks:debian |
Name | Description | Environment Variable | Default Value | User Viewable | User Editable |
---|---|---|---|---|---|
Factorio Version | Which version of Factorio to install and use. | FACTORIO_VERSION | latest | Yes | Yes |
Maximum Slots | Total number of slots to allow on the server. | MAX_SLOTS | 20 | Yes | No |
Save Name | The save name for the server. | SAVE_NAME | gamesave | Yes | Yes |
Server Token | Your factorio.com token, it is required for your server to be visible in the public server list. | SERVER_TOKEN | undefined | Yes | Yes |
Server Name | Name of the game as it will appear in the game listing | SERVER_NAME | Factorio Server | Yes | Yes |
Server Description | Description of the game that will appear in the listing. | SERVER_DESC | Description | Yes | Yes |
Server Username | Username used for the server | SERVER_USERNAME | unnamed | Yes | Yes |
Auto Save Interval | Time between auto saves specified in minutes | SAVE_INTERVAL | 10 | Yes | Yes |
Auto Save Slots | The number of auto saves to keep. | SAVE_SLOTS | 5 | Yes | Yes |
AFK Kick | Time specified in minutes to kick AFK players. 0 is off | AFK_KICK | 0 | Yes | Yes |
#!/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 "-----------------------------------------"