.gitignore | ||
Dockerfile | ||
init.sh | ||
README.md |
Introduction
This repository was forked from carloe/docker-factorio to build a custom configured server on factorio and provide extra information on how to setup a factorio server using docker.
Server Setup
The easiest way to setup a factorio server by far, is to use Digital Ocean. Follow the link to signup and get $10 for free to start you off. This guide assumes your are using a Mac, Windows users may have to alter their method when it comes to terminal usage. Disclaimer: All referrals generate credit to my account for more factorio goodness.
- Sign up to Digital Ocean
- Click 'Create droplet' button
- Under 'Choose an image' select 'One-click apps'
- Select 'Docker 1.12.* on 16.04'
- Select the '$5/mo' size, this is fine for a basic multiplayer server
- Select the datacenter that is closest to you
- Add your SSH public key. Alternatively, you will need to take note of the password that Digital Ocean emails to you after you setup the server.
- You will only need 1 droplet, name your server and click create
Connect to your server
Windows users will need to look at alterations for using PuTTY.
- Make note of the IP address of your server (ipv4)
- Open terminal
ssh root@IPaddress
, obviously replace 'IPaddress' with the IP address.
Build Your Factorio Headless Server
The latest Factorio headless server is downloaded at build time. This may be a good reason you want to build your own image since the Docker Hub repo may not always be up to date.
git clone https://github.com/LpmRaven/docker-factorio.git
docker build -t factorio-instance-name .
Persisting Saves
Use a docker volume to persist the savegames on the host machine rather than in the docker container.
mkdir $(pwd)/saves
# Make sure the saves dir can be written to by the "factorio" user in Docker, with uid 1000
sudo chown 1000:1000 $(pwd)/saves
# (alternatively, if you don't have root): chmod 777 $(pwd)/saves
Basic Usage
The init script will automatically create a new save game if none exists.
Then launch your container as usual.
docker run -d \
-v $(pwd)/saves:/opt/factorio/saves \
-p 34197:34197/udp \
--restart=always \
--name factorio-server \
factorio-instance-name