*`0.x` - highest version in a branch: may be experimental.
*`0.x.y` - a specific version.
# What is Factorio?
@ -29,19 +21,14 @@ NOTE: This is only the server. The game is available at [factorio.com](https://w
Run the server to create the necessary folder structure and configuration files. For this example data is stored in `/tmp/factorio`.
```
docker run -d -p 34197:34197/udp -p 27015:27015/tcp \
-v /tmp/factorio:/factorio \
--name factorio \
--restart=always \
dtandersen/factorio
docker run -d -P -v /tmp/factorio:/factorio --name factorio dtandersen/factorio
```
For those new to Docker, here is an explanation of the options:
*`-d` - Run as a daemon ("detached").
*`-p` - Expose ports.
*`-P` - Expose all ports.
*`-v` - Mount `/tmp/factorio` on the local file system to `/factorio` in the container.
*`--restart` - Restart the server if it crashes and at system start
*`--name` - Name the container "factorio" (otherwise it has a funny random name).
Check the logs to see what happened:
@ -67,9 +54,9 @@ Try to connect to the server. Check the logs if it isn't working.
## Saves
A new map named `_autosave1.zip` is generated the first time the server is started. The `map-gen-settings.json` file in `/tmp/factorio/config` is used for the map settings. On subsequent runs the newest save is used.
A new map named `save.zip` is generated the first time the server is started. The `map-gen-settings.json` file in `/tmp/factorio/config` is used for the map settings. On subsequent runs the newest save is used.
To load an old save stop the server and run the command `touch oldsave.zip`. This resets the date. Then restart the server. Another option is to delete all saves except one.
To load an old save stop the server and run the command `touch oldsave.zip`. This resets the date. Then restart the server.
To generate a new map stop the server, delete all of the saves and restart the server.
@ -79,20 +66,16 @@ To generate a new map stop the server, delete all of the saves and restart the s
Copy mods into the mods folder and restart the server.
## RCON
## Remote Console
Set the RCON password in the `rconpw` file. A random password is generated if `rconpw` doesn't exist.
To change the password stop the server, modify `rconpw`, and restart the server.
To "disable" RCON don't expose port 27015, i.e. start the server with `-p 34197:34197/udp` instead of `-P`. RCON still runs, but nobody is able to connect to it.
RCON is currently disabled.
# Container Details
The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
The philosophy is to keep things simple.
*The server should bootstrap itself.
*Self-configure to a minimal working state.
* Prefer configuration files over environment variables.
* Use one volume for data.
@ -103,13 +86,13 @@ To keep things simple, the container uses a single volume mounted at `/factorio`
factorio
|-- config
| |-- map-gen-settings.json
| |-- rconpw
| `-- server-settings.json
| |-- server-settings.json
| +-- map-gen-settings.json
|-- mods
| `-- fancymod.zip
`-- saves
`-- _autosave1.zip
| |-- fancymod.zip
+-- saves
|-- _autosave1.zip
+-- save.zip
## Ports
@ -120,13 +103,9 @@ To keep things simple, the container uses a single volume mounted at `/factorio`
## Troubleshooting
**My server is listed in the server browser, but nobody can connect**
**Server is listed in the in-game server browser, but users can't connect**
Check the logs. If there is the line `Own address is RIGHT IP:WRONG PORT`, then this could be caused by the Dockerproxy. If the the IP and port is correct it's probably a port forwarding or firewall issue instead.
By default, Docker routes traffic through a proxy. The proxy changes the source UDP port, so the wrong port is detected. See the forum post *[Incorrect port detected for docker hosted server](https://forums.factorio.com/viewtopic.php?f=49&t=35255)* for details.
To fix the incorrect port, start the Docker service with the `--userland-proxy=false` switch. Docker will route traffic with iptables rules instead of a proxy. Add the switch to the `DOCKER_OPTS` environment variable or `ExecStart` in the Docker systemd service definition. The specifics vary by operating system.
Run Docker with the `--userland-proxy=false` option. The source UDP port is changed by docker-proxy when the server pings "pingpong" servers. See [Incorrect port detected for docker hosted server](https://forums.factorio.com/viewtopic.php?f=49&t=35255).
# Credits
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.