All Projects → goofball222 → factorio

goofball222 / factorio

Licence: Apache-2.0 license
Factorio headless server Docker container

Programming Languages

shell
77523 projects
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to factorio

docker-controller-scala
No description or website provided.
Stars: ✭ 12 (-52%)
Mutual labels:  docker-container
larawell
Monolithic docker container to run your Laravel apps: MariaDB/Redis/Nginx/PHP7.0-Fpm with properly configured cron and queue
Stars: ✭ 14 (-44%)
Mutual labels:  docker-container
docker
🐳 Official Docker image of the SinusBot for TeamSpeak 3 and Discord.
Stars: ✭ 50 (+100%)
Mutual labels:  docker-container
drupal-dev-docker
An opinionated Drupal development environment based on Docker.
Stars: ✭ 22 (-12%)
Mutual labels:  docker-container
docker-monitoring-windows
Monitor your Docker containers using prometheus, cAdvisor , node-exported and grafana on Windows
Stars: ✭ 49 (+96%)
Mutual labels:  docker-container
minicon
Minimization of the filesystem for containers
Stars: ✭ 70 (+180%)
Mutual labels:  docker-container
ssh-agent-inject
[Note: Not needed with VS Code anymore.] Forwards the host's ssh-agent into a Docker container on Windows and macOS hosts.
Stars: ✭ 20 (-20%)
Mutual labels:  docker-container
github-status-updater
Command line utility for updating GitHub commit statuses and enabling required status checks for pull requests
Stars: ✭ 83 (+232%)
Mutual labels:  docker-container
wkhtmltopdf-flask-aas
Wkhtmltopdf Flask As a Service
Stars: ✭ 17 (-32%)
Mutual labels:  docker-container
syscall2seccomp
Build custom Docker seccomp profiles for containers by finding syscalls it uses.
Stars: ✭ 71 (+184%)
Mutual labels:  docker-container
jira-grafana-json-datasource
Connect Grafana to Jira cloud to retrieve metrics on your Jira issues.
Stars: ✭ 68 (+172%)
Mutual labels:  docker-container
dockupdater
Automatically keep your docker services and your docker containers up-to-date with the latest version
Stars: ✭ 76 (+204%)
Mutual labels:  docker-container
another-ldap-auth
LDAP Authentication for Nginx, Nginx ingress controller (Kubernetes), and HAProxy via a subrequest.
Stars: ✭ 30 (+20%)
Mutual labels:  docker-container
multirun
A minimalist init process designed for Docker
Stars: ✭ 85 (+240%)
Mutual labels:  docker-container
FactorioMods
Various mods for the game Factorio
Stars: ✭ 12 (-52%)
Mutual labels:  factorio
docker-lidarr-lad
Official docker for LAD bash enhancement script
Stars: ✭ 22 (-12%)
Mutual labels:  docker-container
docker-omnidb
OmniDB installed into a Docker container
Stars: ✭ 30 (+20%)
Mutual labels:  docker-container
docker-phpmyadmin
phpMyAdmin as Docker container, based on official image, always latest version
Stars: ✭ 40 (+60%)
Mutual labels:  docker-container
factorio-example-mod
Lightweight modular example mod with various features and compatibilities
Stars: ✭ 15 (-40%)
Mutual labels:  factorio
yii2-laradock
Laradock pre-configured for Yii2 Framework (https://github.com/LaraDock/laradock)
Stars: ✭ 16 (-36%)
Mutual labels:  docker-container

Containerized Factorio Headless Server

Latest Build Status Docker Pulls Docker Stars License

Docker Tag Factorio Version Description Release Date
latest, stable 1.1.59 Factorio headless server stable release 2022-05-06
experimental 1.1.59 Factorio headless server experimental release 2022-05-06
1.1.59 1.1.59 Factorio headless server stable static release 2022-05-06


For security/attack surface reduction the container is configured to run the Factorio headless server with an internal user & group factorio having a pre-set UID & GID of 999. The container will attempt to adjust permissions on mapped volumes and data to match before dropping privileges to start the Factorio server processes. If the container is being run with a different Docker --user setting permissions may need to be fixed manually.

IE: chown -R 999:999 factorio

A custom UID and GID can be configured for the container internal factorio user and group. For more information see the "Environment variables" section in this document.


Always stop the existing container and make a VERIFIED backup copy of your Factorio save data before installing newer images.


Usage

The container has a single volume /factorio with the following structure:

factorio
|-- config
|   |-- map-gen-settings.json
|   |-- map-gen-settings.example.json
|   |-- map-settings.json
|   |-- map-settings.example.json
|   |-- RCON.pw
|   |-- server-adminlist.json
|   |-- server-banlist.json
|   |-- server-settings.json
|   `-- server-whitelist.json
|-- mods
|   `-- mod.zip
|-- saves
|   `-- save.zip
`-- scenarios
    `-- scenario.zip

The container exposes two ports:

  • 27015/tcp: Factorio RCON port
  • 34197/udp: Factorio default server port

The most basic way to run this container:

$ docker run --name factorio -d \
    -p 34197:34197/udp \
    goofball222/factorio

Recommended: run via Docker Compose:

Have the container store the config, mods, saves, and scenarios on a local file-system or in a specific, known data volume (recommended for persistence and troubleshooting) and expose the RCON port for admin:

version: '3'

services:
  factorio:
    image: goofball222/factorio
    container_name: factorio
    restart: unless-stopped
    ports:
      - "27015:27015"
      - "34197:34197/udp"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - .:/factorio
    environment:
      - TZ=UTC

Example basic docker-compose.yml file


Logs are available directly from the running container, IE: "docker logs factorio"


Environment variables:

Variable Default Description
DEBUG false Set to true for extra container verbosity for debugging
FACTORIO_OPTS unset Add custom command line options to factorio server executable at runtime
FACTORIO_PORT unset Override server default port for game client connections
FACTORIO_RCON_PASSWORD unset Specifiy the server RCON password
FACTORIO_RCON_PORT 27015 Specifies the server RCON admin port
FACTORIO_SCENARIO unset Specifies a scenario name for the server to run
PGID 999 Specifies the GID for the container internal factorio group (used for file ownership)
PUID 999 Specifies the UID for the container internal factorio user (used for process and file ownership)
RUN_CHOWN true Set to false to disable the container automatic chown at startup. Speeds up startup process on overlay2 Docker hosts. NB/IMPORTANT: It's critical that you insure directory/data permissions on all mapped volumes are correct before disabling this or Factorio will not start.
RUNAS_UID0 false Set to true to force the container to run the Factorio server process as UID=0 (root) - NB/IMPORTANT: running with this set to "true" is insecure

During the first launch of the container the server-settings.json and map-gen-settings.json config files will be populated with the Factorio sample/defaults if they don't already exist. It is highly recommended to edit these files and relaunch the container afterwards or provide pre-setup copies in the config directory prior to first launch. The config sample files are available in the headless server tar.gz file in the "data" folder. The container will also generate a default map / save.zip in the saves folder if one is not found on launch.

The RCON password can be set via the FACTORIO_RCON_PASSWORD ENV flag or loaded from /factorio/config/RCON.pwd each time the container is started. If the FACTORIO_RCON_PASSWORD ENV var is not set or the RCON.pwd file is not present a random RCON password will be generated and saved in /factorio/config/RCON.pwd. The active RCON password can also be found at the start of the container log file at each launch.


Optional config examples

config/server-whitelist.json - if present only the configured Factorio users will be allowed access

[
    "user1",
    "user2",
    "user3"
]

config/server-banlist.json - if present the configured Factorio user IDs will be denied access

[
    "banneduser1",
    "banneduser2",
    "banneduser3",
    "banneduser4"
]

config/server-adminlist.json - if present the configured Factorio user IDs will have admin access

[
    "adminuser1",
    "adminuser2"
]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].