Compare commits

...

176 Commits

Author SHA1 Message Date
012180bae6 proxy details 2016-11-02 15:37:22 -07:00
ff2bfae329 keep it simple 2016-11-02 12:20:47 -07:00
0309a94ed9 add 0.13 version 2016-11-01 14:01:30 -07:00
d10a30c01f experimental 0.13 version 2016-11-01 20:47:26 +00:00
52840aff65 clean /tmp/factorio 2016-11-01 20:32:57 +00:00
07b066754d show contents of /tmp/factorio 2016-11-01 20:32:37 +00:00
c6c76b5a41 Merge branch '0.14-dev' of github.com:dtandersen/docker_factorio_server into 0.14-dev 2016-11-01 20:32:00 +00:00
9fbd7d92bc use sh instead of bash 2016-11-01 20:31:24 +00:00
ef731d433a minor text changes 2016-11-01 10:15:18 -07:00
35ee88bf7f more on save files 2016-10-31 13:30:08 -07:00
fb0d9e444b first save is _autosave1.zip 2016-10-31 13:28:13 -07:00
b99b296865 first save is _autosave1.zip 2016-10-31 20:27:11 +00:00
7bedca570d pretty up tree 2016-10-31 13:20:47 -07:00
9a0de68628 rcon docs 2016-10-31 13:15:24 -07:00
08a2732ee3 update docs for rcon 2016-10-31 13:07:26 -07:00
c8d64cc1db set rcon password 2016-10-31 19:59:57 +00:00
f096877853 run with tini 2016-10-31 19:55:01 +00:00
bf83c650bc minor text changes 2016-10-27 16:14:16 -07:00
7205f9fb2a fix links 2016-10-27 16:07:35 -07:00
f9fbd2a59f updated to 0.14.17 2016-10-27 22:37:09 +00:00
9fcbb9ba24 move stuff to 0.14 2016-10-27 14:52:54 -07:00
60308b60fc minor text changes 2016-10-27 12:41:35 -07:00
f170800d8f Merge branch 'master' of github.com:dtandersen/docker_factorio_server into 0.14.16-dev 2016-10-27 12:28:35 -07:00
4f71f75b72 minor text changes 2016-10-27 12:27:42 -07:00
d73235ea9e Merge pull request #1 from dtandersen/0.14.16-dev
added 0.14 version
2016-10-27 12:06:17 -07:00
7ea6fa3274 added 0.14 version 2016-10-27 11:58:19 -07:00
a511769e70 minor text changes 2016-10-27 11:49:22 -07:00
c5f4b8860e update badges 2016-10-27 11:48:00 -07:00
6e92b0f850 troubleshooting 2016-10-27 11:44:05 -07:00
97cf42b229 minor text changes 2016-10-27 11:36:55 -07:00
007503b7c6 minor text changes 2016-10-27 11:30:19 -07:00
4b6fc187dc minor text changes 2016-10-26 17:36:00 -07:00
dc0034f00d Merge remote-tracking branch 'remotes/origin/0.14.16'
# Conflicts:
#	Dockerfile
#	README.md
2016-10-26 17:15:54 -07:00
487b0d7bd6 follow symlink 2016-10-27 00:08:21 +00:00
1c82a0fb65 remove sample settings 2016-10-26 16:58:31 -07:00
6bfeb9dabf docs 2016-10-26 16:56:00 -07:00
33a9379f9f format list 2016-10-26 16:53:13 -07:00
35eb0fbfb7 format list 2016-10-26 16:52:05 -07:00
ff1c0a954e doc updates 2016-10-26 16:46:21 -07:00
4280ef8cfc revise docs 2016-10-26 16:41:54 -07:00
2cefc1544c describe new volume structure 2016-10-26 16:30:32 -07:00
1c07730c4e use one main /factorio volume 2016-10-26 23:15:09 +00:00
cf4d1cb218 log example 2016-10-26 15:08:06 -07:00
d52709ff0f remove curl after use 2016-10-26 15:08:06 -07:00
7992ded59e log example 2016-10-26 14:44:56 -07:00
06e168f899 remove curl after use 2016-10-26 18:32:06 +00:00
a3ad4c25a1 Merge remote-tracking branch 'remotes/origin/0.14.16' 2016-10-26 10:48:08 -07:00
4cde518f36 specify port 2016-10-26 17:46:34 +00:00
616d78c45f mount volumes to /tmp 2016-10-26 17:27:28 +00:00
730bb5d604 fixed json syntax 2016-10-26 17:27:11 +00:00
f379330b7c fixed check for saves 2016-10-26 17:26:47 +00:00
a9bb898fb2 specify location of settings 2016-10-25 21:57:49 -07:00
6c787666a4 Merge branch '0.14.16' 2016-10-25 14:08:09 -07:00
1a4e5df5a7 add badges 2016-10-25 13:48:02 -07:00
52dcbafedb Merge remote-tracking branch 'remotes/origin/0.14.16'
# Conflicts:
#	Dockerfile
#	README.md
2016-10-25 13:39:45 -07:00
d88da771e9 update checksum 2016-10-25 13:35:32 -07:00
f2c9fbb10c update example config 2016-10-25 13:34:55 -07:00
47d6cfb2b1 add back exec 2016-10-25 12:33:45 -07:00
1e97a95302 removed exec 2016-10-25 19:30:12 +00:00
3f8621f896 update docs 2016-10-25 11:59:50 -07:00
05a3ca45e4 typo 2016-10-25 11:40:53 -07:00
fc42bf7863 rename entrypoint 2016-10-25 18:39:28 +00:00
1dbac7408f utility script 2016-10-25 18:31:07 +00:00
9261339510 simplify startup 2016-10-25 18:30:24 +00:00
8e1a044172 update alpine 2016-10-25 18:02:33 +00:00
b85b998062 doc update 2016-10-25 10:28:04 -07:00
f3b4d8e445 example config 2016-10-25 10:11:09 -07:00
4a48f9234f updated readme 2016-10-25 17:03:50 +00:00
8d90253929 update readme 2016-10-25 16:58:54 +00:00
aca4709d7f use server-settings.json for settings 2016-10-25 16:49:23 +00:00
a2ebf4db2d updated to 0.14.14 2016-10-25 15:51:34 +00:00
bbacd8e67d Merge pull request #8 from bkach/0.12.33
Updated to 0.12.33
2016-05-04 07:23:54 +02:00
eb0d08c3c3 Corrected SHA1 2016-05-04 01:43:57 +01:00
dc53f6a61f Updated to 0.12.33
- Updated Dockerfile and SHA1
- Updated README
2016-05-03 15:00:35 +01:00
92d459b14d Merge pull request #7 from dtandersen/0.12.32_update
0.12.32 update
2016-04-30 17:35:26 +02:00
ef55d08655 updated readme to 0.12.32 2016-04-29 16:08:48 -07:00
c5ae7515fe updated version and sha1 for 0.12.32 2016-04-29 16:07:55 -07:00
ec17a32638 updated readme for 0.12.32 2016-04-29 15:56:19 -07:00
15da4f79f5 updated version and sha1 for 0.12.32 2016-04-29 15:51:47 -07:00
68e8a5f25c Merge branch 'master' of https://github.com/zopanix/docker_factorio_server into dt_0.12.31 2016-04-29 15:48:27 -07:00
b658982c93 Merge pull request #6 from dtandersen/0.12.31_update
updated to 0.12.31
2016-04-27 13:18:07 +02:00
1d3fc75d20 updated imagelayers.io badge url 2016-04-26 15:05:59 -07:00
a4a482ee91 updated dockerfile links 2016-04-26 15:01:32 -07:00
eafe7c08be Merge branch '0.12.31_update' into dt_develop
# Conflicts:
#	Dockerfile
#	README.md
2016-04-26 14:44:56 -07:00
9acfe47d16 updated to 0.12.31 2016-04-26 14:26:18 -07:00
b47b20e834 Revert "Set version to 0.12.29"
This reverts commit 7e0718a332.
2016-04-26 13:51:29 +02:00
7e0718a332 Set version to 0.12.29 2016-04-26 13:48:32 +02:00
ae327add0b Set Version to 0.12.30 2016-04-24 14:14:19 +02:00
efb5eb7afc Set Version to 0.12.29 2016-04-24 14:13:51 +02:00
ec1c4f9455 Set Version to 0.12.28 2016-04-24 14:13:35 +02:00
edf8035ae3 Set Version to 0.12.27 2016-04-24 14:13:14 +02:00
25b41c9f22 Set Version to 0.12.25 2016-04-24 14:12:44 +02:00
228339ec31 Set Version to 0.12.25 2016-04-24 14:12:17 +02:00
755c106b7b Set Version to 0.12.24 2016-04-24 14:11:45 +02:00
f1f76e9ae0 Trying to fix with alpine 2016-04-24 14:06:44 +02:00
26f053451c Fixing some things 2016-04-24 13:42:15 +02:00
c439634ef1 Fixed typo 2016-04-24 13:36:37 +02:00
cc33c84d86 Set version back to 0.12.30 2016-04-24 12:56:23 +02:00
8806ca2160 Set version to 0.12.29 2016-04-24 12:55:53 +02:00
83bf5c4a11 Remove sha1sum 2016-04-24 12:54:12 +02:00
30859d57b8 Added feature alpine with ssl verification and sha1 verification of the image 2016-04-24 12:45:15 +02:00
3e9f74eaac Merge branch 'alpine' 2016-04-14 23:04:50 -07:00
14bbd68a3b how to see logs 2016-04-14 22:54:17 -07:00
d4052bc790 formatted the word dockerfile as code 2016-04-14 22:50:29 -07:00
2fc2b7656d reformat docs 2016-04-14 22:48:52 -07:00
199f6c7f59 added versions to top 2016-04-14 22:45:25 -07:00
d614babc54 added fancy bagde 2016-04-14 22:41:33 -07:00
257e1751c2 added description of factorio 2016-04-14 22:37:25 -07:00
e8e5047490 Merge pull request #4 from dtandersen/autopausetypo2
Fixed spelling of FACTORIO
2016-04-15 07:37:17 +02:00
d089b02941 point to dtandersen repo 2016-04-14 22:23:36 -07:00
6fe77c30da Merge branch 'readme' 2016-04-14 22:14:12 -07:00
a97763a0e1 re-enabled SSL security 2016-04-14 22:06:32 -07:00
602881a0d9 added CA root; removed domain cert 2016-04-14 22:05:59 -07:00
b56ab27e52 factorio ssl cert 2016-04-14 17:55:35 -07:00
5edbcd9055 try using alpine images 2016-04-14 17:55:24 -07:00
059a77574e Corrected a typo.
Merge branch 'autopausetypo2'

# Conflicts:
#	Dockerfile
2016-04-14 16:08:37 -07:00
c1488c61be corrected a typo 2016-04-14 16:04:06 -07:00
fb0d7d955b Moved factorio link to the top 2016-04-14 16:02:34 -07:00
a34b260d15 combined ENVs to reduce layer count 2016-04-14 15:20:14 -07:00
5d5cb71a90 verify SHA1 checksum 2016-04-14 15:03:35 -07:00
ad9c5c37dc fixed spelling of FACTORIO 2016-04-14 14:36:34 -07:00
63a9eb14d2 Merge pull request #2 from guyspronck/master
Updated version to 0.12.30
2016-04-07 10:23:16 +02:00
76eddb14f8 Updated Version number in README 2016-04-06 12:17:42 +02:00
24bd934d98 Updated version in Dockerfile 2016-04-06 12:16:26 +02:00
9c873ac907 Added some env variables to make it more clear 2016-03-28 09:14:53 +02:00
c44a3d1faf Add a todo 2016-03-27 20:52:16 +02:00
926a377146 Removed todo as it is done 2016-03-27 19:25:16 +02:00
52bb117a2b Fixed typo in variable 2016-03-27 19:17:39 +02:00
04c4a6b577 Fixed typo 2016-03-27 19:15:05 +02:00
39c27944be Added no auto pause feature 2016-03-27 19:10:33 +02:00
ba9faac10e Fixed if statement in options 2016-03-27 18:55:08 +02:00
c987fe8769 Fixed small typo 2016-03-27 18:45:29 +02:00
606b537b13 Added dissalow_commands feature 2016-03-27 18:39:55 +02:00
9473de8934 Refactor Dockerfile 2016-03-27 09:02:10 +02:00
6b00a3fc32 Fixed readme 2016-03-27 08:57:43 +02:00
34a99ec43e Fixed readme 2016-03-27 08:56:09 +02:00
2caf5345c2 Gave readme better readebility 2016-03-27 08:50:17 +02:00
8a68a162fe Add a todo 2016-03-27 08:23:46 +02:00
96a6f66445 Fixed typo in dockerfile 2016-03-26 18:52:56 +01:00
e5c351dd14 Added mods feature and refactored readme 2016-03-26 18:45:31 +01:00
eedff789a5 Made a small fix on autosave features 2016-03-26 18:04:55 +01:00
20fcec5783 Fixed minor errors 2016-03-26 15:25:32 +01:00
2bfa89fea1 Added autosave feature 2016-03-26 10:49:27 +01:00
ee99e7d469 corrected readme 2016-03-26 10:23:21 +01:00
817844352d Added text in readme 2016-03-24 10:35:28 +01:00
abd518de79 Added a link in readme 2016-03-24 10:30:17 +01:00
98337ac18f Corrected small typo 2016-03-24 10:00:34 +01:00
2bd0d475eb Added feature to take latest save 2016-03-24 09:43:21 +01:00
2d9d8e17b8 Added current version 2016-03-24 09:42:04 +01:00
48c22aa707 Set version in readme 2016-03-24 08:39:16 +01:00
97feb7acb5 Set version to 0.12.29 2016-03-24 08:26:28 +01:00
5ee0f8d06a Set version to 0.12.28 2016-03-23 09:12:59 +01:00
7230263559 Set factorio in 0.1.27 2016-03-21 11:00:04 +01:00
6f65ae8acc Changed from ubuntu to debian so it would be lighter 2016-03-10 17:44:11 +01:00
2fae0bdb22 Changed readme 2016-03-10 11:35:35 +01:00
4f10d32d7b Made some minor correction on dockerfile 2016-03-10 11:01:15 +01:00
61e3941a5a Changed readme 2016-03-10 10:23:22 +01:00
777cac4849 Set factorio at 0.12.26 2016-03-06 17:48:32 +01:00
9a35472d8a Looking to loose some weight 2016-03-05 14:13:05 +01:00
5b3d17117f Enriched readme 2016-03-04 15:50:01 +01:00
234eea09f0 Fixed typo in dockerfile 2016-03-04 15:28:03 +01:00
c5e0b6b3b5 Removed unsued command 2016-03-04 15:25:20 +01:00
df19b88ba0 Removed unsused command 2016-03-04 15:23:17 +01:00
0a39c756a5 Fixed tar issues and apt issues 2016-03-04 15:21:09 +01:00
0cab74d578 Fixing tar issues 2016-03-04 15:15:28 +01:00
23c26f83ae Fixing tar issues 2016-03-04 14:36:44 +01:00
3de6931817 Fixing some issues with tar 2016-03-04 14:35:05 +01:00
7a370c11e0 Skipped certif verification 2016-03-04 14:29:43 +01:00
1a09531600 Added full path to docker file 2016-03-04 14:21:38 +01:00
ea57f58c3b Get server from site and removed some files 2016-03-04 13:35:29 +01:00
5eb71608de Testing docker build 2016-02-29 11:34:01 +01:00
51398ca509 Fixed typo 2016-02-26 15:03:32 +01:00
16dc9c9da2 Removed unused layer 2016-02-26 15:00:46 +01:00
e30bf8d656 Added dynamic creation of map only if needed 2016-02-26 14:59:01 +01:00
3cd89b6870 Set factorio to 0.12.24 2016-02-26 11:30:02 +01:00
f33bfadd47 Initial commit 2016-02-26 11:09:47 +01:00
13 changed files with 447 additions and 2 deletions

28
0.13/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM frolvlad/alpine-glibc:alpine-3.4
MAINTAINER https://github.com/dtandersen/docker_factorio_server
COPY ./factorio.crt /opt/factorio.crt
ENV VERSION=0.13.20 \
SHA1=59ed0edb3f62f0f41a01fc291959b0a8b44cf631
RUN apk --no-cache add curl tini pwgen && \
curl -sSL --cacert /opt/factorio.crt \
https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.gz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.gz" | sha1sum -c && \
tar xzf /tmp/factorio_headless_x64_$VERSION.tar.gz --directory /opt && \
rm /tmp/factorio_headless_x64_$VERSION.tar.gz && \
apk del curl && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods
VOLUME /factorio
EXPOSE 34197/udp 27015/tcp
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/docker-entrypoint.sh"]

1
0.13/build.sh Executable file
View File

@ -0,0 +1 @@
sudo docker build -t dtandersen/factorio:0.13-dev .

1
0.13/clean.sh Executable file
View File

@ -0,0 +1 @@
sudo rm -rf /tmp/factorio

35
0.13/docker-entrypoint.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh -x
set -e
SAVES=/factorio/saves
CONFIG=/factorio/config
mkdir -p $SAVES
mkdir -p /factorio/mods
mkdir -p $CONFIG
if [ ! -f $CONFIG/rconpw ]; then
echo $(pwgen 15 1) > $CONFIG/rconpw
fi
if [ ! -f $CONFIG/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json $CONFIG/server-settings.json
fi
if [ ! -f $CONFIG/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
fi
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
/opt/factorio/bin/x64/factorio \
--create $SAVES/_autosave1.zip \
--map-gen-settings $CONFIG/map-gen-settings.json
fi
exec /opt/factorio/bin/x64/factorio \
--port 34197 \
--start-server-load-latest \
--server-settings $CONFIG/server-settings.json \
--rcon-port 27015 \
--rcon-password "$(cat $CONFIG/rconpw)"

92
0.13/factorio.crt Normal file
View File

@ -0,0 +1,92 @@
-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
+AZxAeKCINT+b72x
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
pu/xO28QOG8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----

5
0.13/run.sh Executable file
View File

@ -0,0 +1,5 @@
sudo docker run --rm -it \
-v /tmp/factorio:/factorio \
--name factorio \
dtandersen/factorio:0.13-dev "$@"
find /tmp/factorio -type f

28
0.14/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM frolvlad/alpine-glibc:alpine-3.4
MAINTAINER https://github.com/dtandersen/docker_factorio_server
COPY ./factorio.crt /opt/factorio.crt
ENV VERSION=0.14.17 \
SHA1=ffb248fabed345aafadb6a8cdef3684312ac240f
RUN apk --no-cache add curl tini pwgen && \
curl -sSL --cacert /opt/factorio.crt \
https://www.factorio.com/get-download/$VERSION/headless/linux64 \
-o /tmp/factorio_headless_x64_$VERSION.tar.gz && \
echo "$SHA1 /tmp/factorio_headless_x64_$VERSION.tar.gz" | sha1sum -c && \
tar xzf /tmp/factorio_headless_x64_$VERSION.tar.gz --directory /opt && \
rm /tmp/factorio_headless_x64_$VERSION.tar.gz && \
apk del curl && \
ln -s /factorio/saves /opt/factorio/saves && \
ln -s /factorio/mods /opt/factorio/mods
VOLUME /factorio
EXPOSE 34197/udp 27015/tcp
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/docker-entrypoint.sh"]

1
0.14/build.sh Executable file
View File

@ -0,0 +1 @@
sudo docker build -t factorio .

1
0.14/clean.sh Executable file
View File

@ -0,0 +1 @@
sudo rm -rf /tmp/factorio

35
0.14/docker-entrypoint.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh -x
set -e
SAVES=/factorio/saves
CONFIG=/factorio/config
mkdir -p $SAVES
mkdir -p /factorio/mods
mkdir -p $CONFIG
if [ ! -f $CONFIG/rconpw ]; then
echo $(pwgen 15 1) > $CONFIG/rconpw
fi
if [ ! -f $CONFIG/server-settings.json ]; then
cp /opt/factorio/data/server-settings.example.json $CONFIG/server-settings.json
fi
if [ ! -f $CONFIG/map-gen-settings.json ]; then
cp /opt/factorio/data/map-gen-settings.example.json $CONFIG/map-gen-settings.json
fi
if ! find -L $SAVES -iname \*.zip -mindepth 1 -print | grep -q .; then
/opt/factorio/bin/x64/factorio \
--create $SAVES/_autosave1.zip \
--map-gen-settings $CONFIG/map-gen-settings.json
fi
exec /opt/factorio/bin/x64/factorio \
--port 34197 \
--start-server-load-latest \
--server-settings $CONFIG/server-settings.json \
--rcon-port 27015 \
--rcon-password "$(cat $CONFIG/rconpw)"

92
0.14/factorio.crt Normal file
View File

@ -0,0 +1,92 @@
-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
+AZxAeKCINT+b72x
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
pu/xO28QOG8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----

5
0.14/run.sh Executable file
View File

@ -0,0 +1,5 @@
sudo docker run --rm -it \
-v /tmp/factorio:/factorio \
--name factorio \
factorio "$@"
find /tmp/factorio -type f

125
README.md
View File

@ -1,2 +1,123 @@
# docker_factorio_server # Factorio [![Docker Pulls](https://img.shields.io/docker/pulls/dtandersen/factorio.svg)](https://hub.docker.com/r/dtandersen/factorio/) [![Docker Stars](https://img.shields.io/docker/stars/dtandersen/factorio.svg)](https://hub.docker.com/r/dtandersen/factorio/)
Factorio Server in Docker
* `0.14.17`, `0.14`, `latest` [(0.14.17/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/0.14.17/0.14/Dockerfile)
* `0.14.16` [(0.14.16/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/0.14.16/0.14/Dockerfile)
* `0.13.20`, `0.13`, `stable` [(0.13.20/Dockerfile)](https://github.com/dtandersen/docker_factorio_server/blob/0.13.20/0.13/Dockerfile)
# What is Factorio?
[Factorio](https://www.factorio.com) 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 finally 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.
NOTE: This is only the server. The game is available at [factorio.com](https://www.factorio.com) and [Steam](http://store.steampowered.com/app/427520/).
# Usage
## Quick Start
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 -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 all ports.
* `-v` - Mount `/tmp/factorio` on the local file system to `/factorio` in the container.
* `--name` - Name the container "factorio" (otherwise it has a funny random name).
Check the logs to see what happened:
```
docker logs factorio
```
Stop the server:
```
docker stop factorio
```
Now there's a `server-settings.json` file in the folder `/tmp/factorio/config`. Modify this to your liking and restart the server:
```
docker start factorio
```
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.
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 generate a new map stop the server, delete all of the saves and restart the server.
## Mods
Copy mods into the mods folder and restart the server.
## RCON
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.
# Container Details
The philosophy is to [keep it simple](http://wiki.c2.com/?KeepItSimple).
* The server should bootstrap itself.
* Prefer configuration files over environment variables.
* Use one volume for data.
## Volumes
To keep things simple, the container uses a single volume mounted at `/factorio`. This volume stores configuration, mods, and saves.
factorio
|-- config
| |-- map-gen-settings.json
| |-- rconpw
| `-- server-settings.json
|-- mods
| `-- fancymod.zip
`-- saves
`-- _autosave1.zip
## Ports
* `34197/udp` - Factorio clients (required).
* `27015/tcp` - RCON (optional).
## Troubleshooting
**Server is listed in the in-game server browser, but users can't connect**
By default, Docker routes outgoing traffic through a proxy. The source UDP port is changed by the proxy so the server list detects the wrong port. See [Incorrect port detected for docker hosted server](https://forums.factorio.com/viewtopic.php?f=49&t=35255).
To fix this problem, start the Docker service with the `--userland-proxy=false` switch to prevent it from using a proxy. This is typically done by appending the switch to the `DOCKER_OPTS` variable or adding it to the end of `ExecStart` in the systemd service definition. The location of these files varies by OS.
# Credits
Ideas borrowed from:
* [Zopanix](https://github.com/zopanix/docker_factorio_server)
* [Rfvgyhn](https://github.com/Rfvgyhn/docker-factorio)