- Saved searches
- Use saved searches to filter your results more quickly
- License
- zopanix/docker_factorio_server
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Saved searches
- Use saved searches to filter your results more quickly
- sover02/docker-factorio
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Factorio Server in Docker
License
zopanix/docker_factorio_server
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Factorio Server in docker
Please checkout the different tags
This runs factorio with default settings, and your save will be kept :
docker run -d \ -v [PATH]:/opt/factorio/saves \ -p [PORT]:34197/udp \ zopanix/factorio
- Where [PATH] is a folder where you’ll put your saves, if there already is a save in it with the string «save», that one will be taken by default, otherwize, a new one will be made.
- Where [PORT] is the port number you choose, if you’re going to launch it on your local machine, don’t use the port 34197, take another one at random.
docker run -d \ -p [PORT]:34197/udp \ zopanix/factorio
This will generate a new random map with default settings.
docker run -d \ -v [PATH]:/opt/factorio/saves \ -p [PORT]:34197/udp \ zopanix/factorio
This will generate a new random map with default settings and save it onto the volume. Replace [PATH] with a path to a folder on the host where the map will be saved. If existing saves exist it will take the latest one.
You can set the autosave interval. By default it is set at 2 minutes bud you can change it by launching the container with the «FACTORIO_AUTOSAVE_INTERVAL» variable to whatever suits you best.
docker run -d \ --env FACTORIO_AUTOSAVE_INTERVAL=[NUMBER] \ -p [PORT]:34197/udp \ zopanix/factorio
Where [NUMBER] is the number of minutes between autosaves.
You can set the number of autosave slots. By default it is set at 3 slots bud you can change it by launching the container with the «FACTORIO_AUTOSAVE_SLOTS» variable to whatever suits you best.
docker run -d \ --env FACTORIO_AUTOSAVE_SLOTS=[NUMBER] \ -p [PORT]:34197/udp \ zopanix/factorio
Where [NUMBER] is the number of autosave slots.
As everybody knows about factorio is you can add mods to it. Now you can also do it in this docker image by mounting a volume.
docker run -d \ -v [PATH]:/opt/factorio/mods \ -p [PORT]:34197/udp \ zopanix/factorio
Where [PATH] is the path to the folder with your mods.
I’ve always disabled in-game commands because I think it is like cheating, however, you can enable them by setting the the «FACTORIO_ALLOW_COMMANDS» variable to «true».
docker run -d \ --env FACTORIO_ALLOW_COMMANDS=true \ -p [PORT]:34197/udp \ zopanix/factorio
Activating no-auto-pause in the game when no one is on the server
I do not recommend this feature, bud it can make the game more difficult if you’re up for a challenge :-). Just set the «FACTORIO_NO_AUTO_PAUSE» variable to «true».
docker run -d \ --env FACTORIO_NO_AUTO_PAUSE=true \ -p [PORT]:34197/udp \ zopanix/factorio
I do not know what the real impact is, ut has always worked very well on default, but you can change the latency option in ms.
docker run -d \ --env FACTORIO_LATENCY_MS=[number] \ -p [PORT]:34197/udp \ zopanix/factorio
I don’t know what it is, possibilities are : heavy, complete or none (don’t do anything. )
docker run -d \ --env FACTORIO_MODE=[MODE] \ -p [PORT]:34197/udp \ zopanix/factorio
Set Factorio Server Name (defaults to «Factorio Server»)
docker run -d \ --env FACTORIO_SERVER_NAME=[NAME] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server Description
Set Factorio Server Description (if not specified, no description will be set)
docker run -d \ --env FACTORIO_SERVER_DESCRIPTION=[DESCRIPTION] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server Max Players
Set Factorio Server Max Players count (if not specified, maximum players is set to 255)
docker run -d \ --env FACTORIO_SERVER_MAX_PLAYERS=[NUMBER] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server Visibility
//: # (Set Factorio Server Visibility (if set to public, factorio.com User Login and Password or Token are required)) Set Factorio Server Visibility (if set to public, factorio.com User Login and Password are required)
docker run -d \ --env FACTORIO_SERVER_VISIBILITY=[hidden,lan,public] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server factorio.com Login
Set factorio.com User Login and Password required for public server visibility
docker run -d \ --env FACTORIO_USER_USERNAME=[USERNAME] --env FACTORIO_USER_PASSWORD=[PASSWORD] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server Game Password
Set Factorio Server Game Password (if not specified, no password will be set)
docker run -d \ --env FACTORIO_SERVER_GAME_PASSWORD=[GAME-PASSWORD] -p [PORT]:34197/udp \ zopanix/factorio
Factorio Server Verify User Identity
Set Verify User Identity to true to require factorio.com account for user to login (defaults to false)
docker run -d \ --env FACTORIO_SERVER_VERIFY_IDENTITY=[false,true] -p [PORT]:34197/udp \ zopanix/factorio
Factorio RCON Console Port
This allows you to expose a RCON Console
docker run -d \ -p [PORT]:34197/udp \ -p [PORT_RCON]:27015/tcp \ zopanix/factorio
Where PORT_RCON is the port you want to use. By default a random password is set bud . see below
Factorio RCON Console Password
This allows you to set a password for RCON (if not specified, it will be random)
docker run -d \ --env FACTORIO_RCON_PASSWORD=[PASSWORD] \ -p [PORT]:34197/udp \ zopanix/factorio
If your container exits with the following error:
Info HttpSharedState.cpp:83: Status code: 401 Info AuthServerConnector.cpp:40: Error in communication with auth server: code(401) message(< "message": "Username and password don't match", "status": 401 >) Info AuthServerConnector.cpp:68: Auth server authorization error (Username and password don't match) Error Util.cpp:57: Unknown error
Check supplied Username and Password for mistakes.
This is a beta feature which has nothing to do with factorio. leave it as it is for the moment. I’m working with some collegues on something new which should work very well and please a lot of people.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Lightweight, low-config containerized Factorio server with support for interactive and non-interactive commands
sover02/docker-factorio
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A small, simple containerized Factorio server that supports interactive and non-interactive server commands. Suitable for local and hosted servers. Simple, low-configuration and highly customizable.
docker build -t docker-factorio .
docker run --name docker-factorio -itp 34197:34197/udp 6davids/docker-factorio docker run --name docker-factorio -itdp 34197:34197/udp 6davids/docker-factorio # runs detached
docker run --name docker-factorio -itp 34197:34197/udp --platform linux/amd64 6davids/docker-factorio # ctrl-c kills server docker run --name docker-factorio -itdp 34197:34197/udp --platform linux/amd64 6davids/docker-factorio # runs detached
david@focus docker-factorio % # Hop into the container david@focus docker-factorio % docker exec -it docker-factorio bash root@docker-factorio:/app root@docker-factorio:/app # Start Interactive Script root@docker-factorio:/app ./interact.sh 250.157 Info ServerMultiplayerManager.cpp:943: updateTick(15117) received stateChanged peerID(1) oldState(ConnectedDownloadingMap) newState(ConnectedLoadingMap) 250.341 Info ServerMultiplayerManager.cpp:943: updateTick(15127) received stateChanged peerID(1) oldState(ConnectedLoadingMap) newState(TryingToCatchUp) 250.342 Info ServerMultiplayerManager.cpp:943: updateTick(15127) received stateChanged peerID(1) oldState(TryingToCatchUp) newState(WaitingForCommandToStartSendingTickClosures) 250.355 Info GameActionHandler.cpp:4996: UpdateTick (15127) processed PlayerJoinGame peerID(1) playerIndex(0) mode(connect) 250.407 Info ServerMultiplayerManager.cpp:943: updateTick(15131) received stateChanged peerID(1) oldState(WaitingForCommandToStartSendingTickClosures) newState(InGame) 2022-04-09 06:08:43 [JOIN] david joined the game sup 2022-04-09 06:08:51 [CHAT] server>: sup 2022-04-09 06:09:46 [CHAT] david: lol /kick david lol
Non-Interactive (for scripts or one-offs):
david@focus docker-factorio % # Hop into the container david@focus docker-factorio % docker exec -it docker-factorio bash root@docker-factorio:/app # Send commands to the server root@docker-factorio:/app ./run-command.sh "sup" 2022-04-09 17:03:11 [CHAT] server>: sup root@docker-factorio:/app ./run-command.sh "/kick david lol" 2022-04-09 17:03:24 [KICK] david was kicked by server>. Reason: lol. 1352.490 Info ServerMultiplayerManager.cpp:1061: Disconnect notification for peer (1)
Or, if you don’t need to see the command output:
david@focus docker-factorio % # Hop into the container david@focus docker-factorio % docker exec -it docker-factorio bash root@docker-factorio:/app # Send commands to the server root@docker-factorio:/app echo "sup" > ./factorio-server-fifo root@docker-factorio:/app echo "/kick david lol" > ./factorio-server-fifo
Starting, Stopping, Restarting the Server
The image comes with a few scripts to help managing server execution.
root@docker-factorio:/app # Hop into the container david@focus docker-factorio % docker exec -it docker-factorio bash root@docker-factorio:/app # Stop the factorio server root@docker-factorio:/app ./stop-server.sh Stopping Factorio Server. Done! root@docker-factorio:/app # The server starts on it's own, but you can start it again after stopping it. root@docker-factorio:/app ./start-server.sh Starting Factorio Server. Done! root@docker-factorio:/app # Cycle the server. Useful after config changes. root@docker-factorio:/app ./restart-server.sh Stopping Factorio Server. Done! Starting Factorio Server. Done!
By default the container creates a new game and then uses it from then on. If you’d like to use your own games, create two mounts when running the container:
Drop your save files in the saves/ directory, and then enter the name of the save file you’d to use into last-game.txt
david@focus docker-factorio % cp my-cool-saved-game.zip ~/factorio-stuffs/saved-games/ david@focus docker-factorio % echo "my-cool-saved-game.zip" > ~/factorio-stuffs/last-game.txt david@focus docker-factorio % # Start the container detached, with ports mounted, and the two binds mentioned above david@focus docker-factorio % docker run --name docker-factorio -it \ > -d > -p 34197:34197/udp \ > --mount type=bind,source=~/factorio-stuffs/saved-games,target=/app/factorio/saves \ > --mount type=bind,source=~/factorio-stuffs/last-game.txt,target=/app/factorio/last-game.txt \ > 6davids/docker-factorio abdac7023091 david@focus docker-factorio % # We're ready to go
Settings can be managed the same way that saved games are. Mount files in the default locations to populate the server configs.
- Commands to start, stop, and restart the server
- Load and backup savefiles from s3?
- Small REST API to control the server
- RCON support?
- Create settings examples
- Kubernetes boilerplate configs
- Github action to build and push automatically with new factorio updates
About
Lightweight, low-config containerized Factorio server with support for interactive and non-interactive commands