Sign inSign up

sknnr/satisfactory-server

By sknnr

Updated 8 months ago

Debian 12 Slim based image for running Satisfactory dedicated game server

Image
0

2.3K

sknnr/satisfactory-server repository overview

satisfactory-server

Run Satisfactory dedicated server in a container. Optionally includes helm chart for running in Kubernetes.

Disclaimer: This is not an official image. No support, implied or otherwise is offered to any end user by the author or anyone else. Feel free to do what you please with the contents of this repo.

Usage

The processes within the container do NOT run as root. Everything runs as the user steam (gid:10000/uid:10000 by default). If you exec into the container, you will drop into /home/steam as the steam user. Satisfactory will be installed to /home/steam/satisfactory. Any persistent volumes should be mounted to /home/steam/satisfactory and be owned by 10000:10000. If you need to run as a different GID/UID you can build your own image and set the build arguments for CONTAINER_GID and CONTAINER_UID to specify to new values.

Ports
PortProtocolDefault
Game PortUDP & TCP7777
Environment Variables
NameDescriptionDefaultRequired
GAME_PORTPort for server connections.7777False
Docker

To run the container in Docker, run the following command:

docker volume create satisfactory-persistent-data
docker run \
  --detach \
  --name satisfactory-server \
  --mount type=volume,source=satisfactory-persistent-data,target=/home/steam/satisfactory \
  --publish 7777:7777/udp \
  --publish 7777:7777/tcp \
  --env=GAME_PORT=7777 \
  sknnr/satisfactory-server:latest
Docker Compose

To use Docker Compose, either clone this repo or copy the compose.yaml file out of the container directory to your local machine. Edit the compose file to change the environment variables to the values you desire and then save the changes. Once you have made your changes, from the same directory that contains the compose and the env files, simply run:

docker-compose up -d

To bring the container down:

docker-compose down

compose.yaml file:

services:
  satisfactory:
    image: sknnr/satisfactory-server:latest
    ports:
      - "7777:7777/udp"
      - "7777:7777/tcp"
    environment:
      GAME_PORT: "7777"
    volumes:
      - satisfactory-persistent-data:/home/steam/satisfactory
    stop_grace_period: 90s

volumes:
  satisfactory-persistent-data:
Podman

To run the container in Podman, run the following command:

podman volume create satisfactory-persistent-data
podman run \
  --detach \
  --name satisfactory-server \
  --mount type=volume,source=satisfactory-persistent-data,target=/home/steam/satisfactory \
  --publish 7777:7777/udp \
  --publish 7777:7777/tcp \
  --env=GAME_PORT=7777 \
  sknnr/satisfactory-server:latest
Kubernetes

I've built a Helm chart and have included it in the helm directory within this repo. Modify the values.yaml file to your liking and install the chart into your cluster. Be sure to create and specify a namespace as I did not include a template for provisioning a namespace.

Troubleshooting

Connectivity

If you are having issues connecting to the server once the container is deployed, I promise the issue is not with this image. You need to make sure that the ports are open on your router as well as the container host where this container image is running. You will also have to port-forward the game-port and query-port from your router to the private IP address of the container host where this image is running. After this has been done correctly and you are still experiencing issues, your internet service provider (ISP) may be blocking the ports and you should contact them to troubleshoot.

Storage

I recommend having Docker or Podman manage the volume that gets mounted into the container. However, if you absolutely must bind mount a directory into the container you need to make sure that on your container host the directory you are bind mounting is owned by 10000:10000 by default (chown -R 10000:10000 /path/to/directory). If the ownership of the directory is not correct the container will not start as the server will be unable to persist the savegame.

Tag summary

Content type

Image

Digest

sha256:13dadc430

Size

167.1 MB

Last updated

8 months ago

docker pull sknnr/satisfactory-server