A containerized dedicated server for Satisfactory, built from absolute-server-template and conforming to the Absolute engineering standard.
New to this? Start here: docs/INSTALL.md — written for someone who has never used Docker, a terminal or a router's settings page.
services:
satisfactory:
image: abspowergaming/absolute-satisfactory-server:latest
container_name: satisfactory-server
restart: unless-stopped
stop_grace_period: 180s
ports:
- "7777:7777/udp"
- "7777:7777/tcp"
- "127.0.0.1:8888:8888/tcp"
volumes:
- satisfactory-server:/opt/satisfactory/server
- satisfactory-config:/config
volumes:
satisfactory-server:
satisfactory-config:docker compose up -dThe first start downloads the server and generates a world, which takes a
while. docker ps shows (healthy) when players can join.
| Port | Protocol | Purpose | Forward on your router? |
|---|---|---|---|
| 7777 | UDP | Game traffic | Yes |
| 7777 | TCP | Game messaging | Yes |
| 8888 | TCP | Management API | No — keep private |
| Variable | Default | What it does |
|---|---|---|
SERVER_PORT |
7777 |
Game port |
UPDATE_ON_START |
true |
Take the newest game build when the container starts |
UPDATE_IF_IDLE |
true |
Wait for the server to be empty before updating a running server |
ADMIN_PASSWORD |
(empty) | The admin password you set when you claimed the server in game. With it, updates wait for an empty server and the world can be saved on demand; without it, the server is still asked to stop gently, but nobody can ask it to save |
BACKUPS_ENABLED |
true |
Hourly world backups |
BACKUPS_MAX_COUNT |
10 |
How many backups to keep |
SERVER_EXTRA_ARGS |
(empty) | Extra arguments passed to the server |
TZ |
Etc/UTC |
Timezone for logs and schedules |
Not yet released. The container layer is new — this is the first game built
from the template — and two values in
manifest.env are marked UNVERIFIED until the first green
end-to-end run confirms them: the server's process name and the log line that
means "players can join".
Open exceptions are recorded with dates in
.absolute/policy.yml: no snapshot/hold/rollback yet,
no scheduled build watch, and no image vulnerability scan. The remaining work is in
CHECKLIST.md.
Apache-2.0. See LICENSE.