October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk11 min

How to Run a Satisfactory Dedicated Server in Docker on a VPS

A practical Docker Compose guide for hosting Satisfactory on a Linux VPS, including current 7777/8888 ports, RAM sizing, persistent saves, backups and safe container updates.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable way to host a Satisfactory dedicated server on a VPS is to run a maintained Linux Docker image, publish the current Patch 1.1 ports (7777 over TCP and UDP, plus 8888 over TCP), and bind the container’s persistent directory to storage on the VPS. Start with at least 4 GB of RAM and 10 GB of disk for a small test world; allocate 8–16 GB for a populated or late-game factory. With the save directory mounted outside the container, you can update or replace the container without deleting your world.

What the VPS must provide

Satisfactory’s dedicated server is intended to run on Linux with Docker and an x86 processor. A small private test server can start at the documented minimum of 4 GB memory and 10 GB storage, but those figures leave little room for the operating system, Docker, updates, logs, and a growing save. The robtme image documentation notes that the server can run below 8 GB, while 8–16 GB is recommended for larger groups or late-game worlds.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Resource Small test server Populated or late-game server Why it matters
Operating system 64-bit Linux on x86 64-bit Linux on x86 The documented images and server binaries target Linux x86.
Memory 4 GB minimum 8–16 GB recommended World simulation, player count, and late-game factories increase memory pressure. Keep additional headroom for the OS and Docker.
Storage 10 GB minimum More than 10 GB, with room for saves and backups Server files, downloaded updates, logs, backups, and your world all live on disk.
Network Public IPv4 address and stable connectivity Public IPv4 address with provider and host firewall control Players must reach the published game and reliable-messaging ports.

Choose a VPS plan with a modern, relatively powerful x86 CPU rather than optimizing only for storage price. A factory with many machines can be CPU-bound even when memory usage looks acceptable. If the provider offers burstable CPU, check its sustained-performance limits before using it for a busy world.

Pick an image and understand its data layout

Use one maintained image and follow that image’s documented variables exactly. The robtme image is a practical example because it exposes player count, Linux user and group IDs, and the Steam beta-branch switch through environment variables. Didstopia documents a different layout, with mounts for /steamcmd/satisfactory and /app/.config. These paths are not interchangeable: a compose file written for one image can silently put saves in the wrong place when used with another.

#1 Best Overall
Sale
NEW 14TB Retro Gaming Hard Drive Preloaded with 98000+ Games | Plug & Play for 7 Gaming Systems | 9800+ 3D & 1000+ High-End PC Games | USB 3.1 Portable External Hard Drive for Windows PC 7/8/10/11
  • [Ultimate 98000+ Game Archive: 9800+ 3D & 1000+ Premium Titles]Unleash the definitive retro collection: 98000+ preloaded classics now enhanced with 9,800+ immersive 3D games and 1,000+ curated high-end PC masterpieces. From pixel-era arcades to cinematic epics, all optimized for instant launch.
  • [Games need exclusions and runtimes, not malware]Some customers ask why our retro game drives can trigger Windows Security warnings. Many game files are older DLLs that Windows Defender sometimes flags as threats. They are not viruses or malware—just old or uncommon code causing false positives. We temporarily add them to the exclusion list so they aren't blocked, then re-enable Security to keep your PC protected. Many classic games also need legacy VC++ and DirectX runtimes, which modern Windows doesn't include by default. Installing them ensures compatibility and smooth play. Your safety matters to us—these are safe, standard steps for retro games.
  • [Important:Before you buy]your OS will show ~12.7TB due to decimal/binary measurement difference – this is a common practice among international manufacturers, not a capacity labeling error. Also, actual working game count may vary by system and emulator; please verify compatibility upon receipt. Every unit is fully tested for storage and game functionality before shipment. Includes an updated manual with setup and troubleshooting tips. Contact us for any missing or non-working titles – we’ll help promptly.
  • [Unified 7-System Gaming Hub & Seamless Compatibility]Revolutionize your setup with all-in-one access to 7 gaming generations via integrated frontend. Play seamlessly across vintage consoles to modern PC rigs – 260+ platforms supported without complex configurations.Tip: For 4K-ready AAA gameplay, pair with GTX 1060 Ti GPU or higher
  • [ Massive 14TB Retro Gaming Storage & USB 3.1 Speed]Upgrade to expansive capacity with this 14TB retro game hard drive, featuring next-gen USB 3.1 interface (10Gb/s transfer speed). Experience plug-and-play simplicity on Windows PC 7/8/10/11 – 50% faster data access than standard USB 3.0 drives.

robtme layout

For the robtme image, bind a host directory to /config. That directory contains backups, downloaded game files, logs, configuration, and saved data. Keeping it on the host means a container can be removed and recreated without downloading everything again or losing the world.

Didstopia layout

Didstopia’s documentation separates the server installation and configuration mounts. If you choose that image, create and back up both host directories it documents instead of assuming that a single /config mount will capture every file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check maintenance and startup behavior

Before deploying, verify that the image supports the current game branch, documents Patch 1.1 port expectations, explains UID/GID or non-root operation, and describes how updates and backups work. An image that still publishes only ports 15000 or 15777 may reflect an older server model. Those ports are no longer used as of Patch 1.0 according to the current dedicated-server guidance.

Prepare the VPS

  1. Provision a 64-bit Linux x86 VPS. For a trial world, choose at least 4 GB RAM and 10 GB storage; choose 8–16 GB RAM when several people will play or the save is already large.
  2. Install Docker Engine and the Compose plugin by following the current instructions for the VPS distribution. Confirm both commands work:
docker --version
docker compose version
  1. Create a dedicated deployment directory and enter it:
mkdir -p ~/satisfactory-server
cd ~/satisfactory-server
  1. Choose the Linux account that should own persistent files. The example below uses UID and GID 1000; replace those values with the account’s actual IDs if they differ:
id -u
id -g

Do not run the container as an arbitrary user and then repair ownership after every update. Set PUID and PGID to the account that owns the host directory, or apply the equivalent user setting documented by your selected image.

Create a Compose deployment

Create compose.yaml inside ~/satisfactory-server with the following documented robtme pattern:

services:
  satisfactory-server:
    image: robtme/satisfactory-server:latest
    container_name: satisfactory-server
    ports:
      - "7777:7777/tcp"
      - "7777:7777/udp"
      - "8888:8888/tcp"
    volumes:
      - ./satisfactory-server:/config
    environment:
      MAXPLAYERS: "4"
      PGID: "1000"
      PUID: "1000"
      STEAMBETA: "false"
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 8G
        reservations:
          memory: 4G

Adjust the values before starting

  • MAXPLAYERS: Set the intended player ceiling. This controls the server configuration, not the amount of RAM available to the container.
  • PUID and PGID: Set both to the IDs returned by id -u and id -g for the account that owns the deployment directory.
  • STEAMBETA: Keep it false unless you deliberately need the beta branch and have confirmed that every player is using a compatible client.
  • Memory settings: The example reserves 4 GB and caps the container at 8 GB. Raise the limit when the VPS has more memory and the world needs it; never set a limit that leaves the Linux host without operating-system headroom.
  • Image tag: latest follows the image’s current release. For controlled upgrades, use a documented version tag and change it deliberately after a backup.
  • Port mappings: Keep the mapping only when the image listens on these container ports. If the image documents another internal port, map that port to the externally required 7777 or 8888 service and verify the result.

The deploy.resources section follows the image’s example. On a single Docker host, enforceable limits can vary by Compose implementation; confirm the effective limit with docker inspect satisfactory-server and monitor actual usage after startup.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Open the correct ports

Patch 1.1’s current dedicated-server guidance requires the standard game port 7777 over both TCP and UDP, plus reliable messaging on TCP 8888. Open the ports in every firewall layer: the VPS provider’s network firewall, the Linux host firewall, and Docker’s published-port configuration.

Rank #2
SimCity 4 Deluxe Edition - PC
  • Create, build and run the most realistic city you can imagine
  • Connect your metropolis with other cities you've created to form a massive region of SimCities
  • Sculpt mountains, gouge valleys, and seed forests
  • Deploy police cruisers and fire trucks to the scene
  • For 1 player
Port Protocol Purpose Current status
7777 TCP Game traffic Required
7777 UDP Game traffic Required
8888 TCP Reliable messaging Required for current guidance
15000 TCP/UDP in older examples Legacy server recipes No longer used as of Patch 1.0
15777 TCP/UDP in older examples Legacy server recipes No longer used as of Patch 1.0

Do not copy a 15000/15777 rule from an old Docker tutorial without checking the game branch and image documentation. A port can be open in a firewall and still fail if the container is listening elsewhere.

Example host-firewall rules

On a Linux host using UFW, the equivalent rules are:

sudo ufw allow 7777/tcp
sudo ufw allow 7777/udp
sudo ufw allow 8888/tcp
sudo ufw status verbose

Use your provider’s firewall panel to add the same three rules. Restrict SSH to your administration IP range separately; never expose the Docker API or an SFTP service publicly just to transfer saves.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start the server and watch the first initialization

  1. From ~/satisfactory-server, start the service in the background:
docker compose up -d
  1. Follow the startup log:
docker compose logs -f satisfactory-server
  1. Wait for the initial SteamCMD download, extraction, and server initialization to finish. The first start can take substantially longer than later restarts because the image must download game files.
  2. Check that Docker sees the service as running:
docker compose ps
docker ps --filter name=satisfactory-server

Do not stop the process repeatedly while it is downloading. If the log reports a permission error, stop the service, correct ownership of ~/satisfactory-server/satisfactory-server, and start it again:

sudo chown -R 1000:1000 ~/satisfactory-server/satisfactory-server
docker compose up -d

Use the IDs that match your configured PUID and PGID; 1000:1000 is only the example account.

Claim the server in Satisfactory

Container startup does not complete the in-game setup. In the Satisfactory client, open Server Manager, add the VPS address and port, and connect. Use the VPS’s public IPv4 address and port 7777 unless your image explicitly documents a different external mapping.

  1. Open Server Manager and choose the option to add a server.
  2. Enter the public VPS address and the published game port.
  3. Connect to the newly discovered server and claim it when prompted.
  4. Set an administrator password. Store it in a password manager; it controls administrative actions in the server manager.
  5. Create a new game or import an existing save.
  6. If the world should be private, enable the player-password protection offered by the server settings and distribute that password only to players who need access.

If the server appears but claiming fails, inspect the container logs and confirm that the host and provider firewalls allow all three current ports. A successful TCP connection to 7777 alone does not prove that UDP 7777 and TCP 8888 are reachable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Razer Kraken V3 X Wired USB Gaming Headset, Lightweight, Black | TriForce 40mm Drivers, HyperClear Cardioid Mic, 7.1 Surround Sound, Chroma RGB Lighting
  • 285G LIGHTWEIGHT BUILD — Experience superior audio and game for hours without being weighed down by the headset
  • TRIFORCE 40MM DRIVERS — Cutting-edge proprietary design divides the driver into 3 parts for the individual tuning of highs, mids, and lows —producing brighter, clearer audio with richer highs and more powerful lows
  • HYPERCLEAR CARDIOID MIC — An improved pickup pattern ensures more voice and less noise with the sweet spot easily placed at the mouth because of the mic’s bendable design
  • HYBRID FABRIC AND MEMORY FOAM EAR CUSHIONS — Wrapped in a combination of breathable fabric and plush leatherette to provide a snug fit to ensure constant comfort for prolonged gaming
  • 7.1 SURROUND SOUND — Provides accurate positional audio that lets you pinpoint intuitively where every sound is coming from. *Only available on Windows 10 64-bit

Keep worlds safe with persistent storage

The bind mount is the boundary between disposable container infrastructure and your irreplaceable world. In the example, ./satisfactory-server resolves to ~/satisfactory-server/satisfactory-server on the VPS and is mounted at /config inside the container.

  • Back up the entire host directory, not just a single save file. It includes saves, blueprints, backups, logs, configuration, and downloaded server files.
  • Copy backups to storage outside the VPS. A second directory on the same disk will not protect you from disk failure or provider loss.
  • Before upgrades, stop or pause write activity where practical, create a dated archive, and verify that the archive can be read.
  • Never run docker compose down -v when you intend to preserve data. Removing an anonymous or named volume is different from removing a bind mount, but destructive cleanup commands can still erase data if the deployment is changed.

Simple archive procedure

cd ~/satisfactory-server
docker compose stop
tar -czf satisfactory-config-2026-10-15.tar.gz satisfactory-server
docker compose start

The date in the filename is an example. Use the actual backup date and copy the archive off the VPS. If the server is busy, schedule backups during a quiet period and confirm that the game has flushed the latest save before archiving.

Update the game without deleting the world

Maintained images normally update game content when the container starts or restarts. The robtme documentation also provides a SKIPUPDATE=true option for cases where you need to suppress that behavior. Leave automatic updates enabled for ordinary operation, but make a backup before a major game change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compose update procedure

  1. Back up the host directory mounted at /config.
  2. Pull the new image:
cd ~/satisfactory-server
docker compose pull
  1. Recreate the service:
docker compose up -d
  1. Follow the log until the update and startup complete:
docker compose logs -f satisfactory-server

docker compose up -d replaces the container when the image digest changes while retaining the bind-mounted host directory. Do not delete ~/satisfactory-server/satisfactory-server between these commands.

Non-Compose lifecycle

If you deployed with docker run, pull the new image, stop and remove the old container, then create a new container with the same environment variables, published ports, restart policy, and host bind mount. Removing the container is safe; removing or changing the host directory is what causes lost saves or a full redownload.

Rollback after a failed update

Inspect the logs first. If the image provides version tags, recreate the service with the previous known-good tag and the original host directory. Keep the backup made before the upgrade until the new version has been stable for several sessions. If the game itself migrated the save format, restoring the earlier image may not be sufficient without restoring the pre-upgrade backup as well.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Size memory and CPU for the actual world

Use 4 GB as a floor for a small test, not as a promise that every world will remain healthy. The documented 8–16 GB recommendation is aimed at larger groups and late-game factories. Allocate RAM in stages: begin with a 4 GB reservation only when the VPS has additional host memory, then increase the container limit as the world, player count, and simulation load grow.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
DOYO Wireless PC Gaming Controller, Dual-Vibration Steam Joystick Gamepad Computer Game Controller for PC Windows 7/8/10/11
  • 【For PC & Steam Game Conosle 】Wireless gaming controller supports PC (Windows XP/7/8/8.1/10 /11), Steam PC gaming consoles.
  • 【2.4G Wireless Transmission】2.4G Wireless Transmission Technology (with USB receiver) ensures a stable connection without any delay.
  • 【Improved design】The classic new left and right shoulder button design is easy to use, has 12 function keys, Supports 2 controllers at the same time (requires game support)
  • 【Vibration feedback 】PC wireless controller provides automatic vibration feedback to ensure riveting gameplay every time to enhance the game experience.
  • 【High-performance chip 】The PC controller uses a high-performance chip, which has good stability and zero game delay.
  • Watch memory consumption with docker stats satisfactory-server during a busy session.
  • Check host pressure with free -h and your provider’s monitoring graphs.
  • If the kernel kills the container, add RAM or reduce competing services before changing game settings.
  • Keep CPU capacity available for simulation ticks; a server that has enough memory can still stutter on a weak or heavily oversubscribed VPS core.

Do not host unrelated databases, build systems, or large monitoring stacks on a 4 GB game VPS. Their memory spikes can evict the server even when the average usage appears low.

Troubleshoot by symptom

Players cannot connect

  • Confirm the container is running with docker compose ps.
  • Check that Docker publishes TCP and UDP 7777 and TCP 8888 with docker port satisfactory-server.
  • Verify the provider firewall and host firewall contain the same rules.
  • Confirm the client is using the VPS public address and the current external port.
  • Remove obsolete assumptions about ports 15000 and 15777; they are not part of the current Patch 1.1 model.

The container exits or repeatedly restarts

Read the complete log with docker compose logs --tail=200 satisfactory-server. Check available RAM and CPU, confirm that the image’s selected branch is valid, and verify that the host directory is writable. Didstopia documents historical workarounds involving IPv4 multihoming and a legacy 18.04 tag for specific old issues; treat those as image- and version-specific remedies, not general requirements for a current deployment.

Permission denied appears in the log

Inspect ownership with ls -ln ~/satisfactory-server/satisfactory-server. Set PUID and PGID to the intended account, then change ownership of the existing files to the same numeric IDs. Restart the service after correcting both the Compose file and directory permissions.

The world disappeared after rebuilding

Find the original host directory and compare it with the path in compose.yaml. A changed working directory, a typo in the bind path, or deleting the mounted directory creates a fresh empty configuration. Recreate the container with the original directory and restore the latest verified archive if necessary.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You need to transfer mods or files

The cgibson-dev documentation states that its image does not include an SFTP daemon. Use the VPS host’s SFTP service or a separate, deliberately configured SFTP container. Keep file-transfer credentials and network exposure separate from the game container, and transfer files into the persistent host directory rather than into the container’s writable layer.

Operational checklist

  • Linux x86 VPS with at least 4 GB RAM and 10 GB storage; 8–16 GB for a larger or late-game world.
  • Docker Engine and Compose installed and tested.
  • One maintained image selected, with its documented mount paths and variables.
  • Host directory created, owned by the configured UID/GID, and mounted to the image’s persistent path.
  • TCP 7777, UDP 7777, and TCP 8888 allowed by the provider firewall and host firewall.
  • restart: unless-stopped or an equivalent restart policy enabled.
  • First startup completed its download and update; logs show no permission or crash loop.
  • Server claimed in Server Manager with an administrator password and the intended save loaded.
  • Backups copied off the VPS before updates.
  • Upgrade procedure documented: pull, recreate, retain the same host directory, inspect logs, and roll back to a known-good image tag if needed.

Which deployment approach fits?

Priority Practical choice Reason
Fastest repeatable setup Compose with a maintained image Ports, environment variables, restart behavior, and storage are recorded in one file.
Maximum control over files Image with explicit UID/GID support and a host bind mount You can inspect, back up, and transfer persistent data without entering a disposable container.
Predictable upgrades Pin a documented image tag and update manually You choose when to pull, back up, recreate, and roll back.
Lowest initial cost 4 GB test VPS Meets the documented minimum, but offers little headroom and is not the right target for a mature factory.
Busy or late-game world 8–16 GB VPS with CPU headroom Matches the image documentation’s recommendation and reduces memory-related crashes.

The central decision is operational fit: current ports, enough memory, a correct persistent-directory mapping, and a backupable update process matter more than choosing a particular VPS brand or the smallest advertised plan.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.