Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
VGSources
Blog

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

A practical, current guide to hosting Satisfactory in Docker on a VPS, including Patch 1.1 ports, memory sizing, persistent saves, Compose setup, safe updates, and recovery steps.
WorldDocker on a VPS Length11 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable pattern is a Linux x86 VPS running Docker, with the server’s data bound to a directory on the host. For the current Patch 1.1 port model, publish 7777/TCP, 7777/UDP, and 8888/TCP. Start with at least 4 GB of RAM and 10 GB of storage for a small test world; allocate 8–16 GB of RAM when you expect a late-game factory or several regular players.

Choose a maintained image, keep its documented persistent directory, open the same ports in both firewalls, claim the server in Satisfactory’s Server Manager, and update by recreating the container without deleting that host directory. Those steps prevent the two most common failures: unreachable servers and worlds that disappear after a rebuild.

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.

What you need before creating the container

A dedicated Satisfactory server is a long-running process, so a VPS must provide more than enough capacity to boot Linux and Docker. The baseline documented by Didstopia is a Linux system, Docker, a relatively powerful x86 CPU, 4 GB of memory, and 10 GB of storage. The maintained robtme image notes that the server can run with less than 8 GB, but recommends 8–16 GB for larger groups or late-game worlds. Treat 4 GB as a small-test minimum rather than a comfortable production allocation.

  • Operating system: Linux on an x86 VPS. ARM plans are not covered by the deployment guidance.
  • Memory: 4 GB minimum for a small test; 8–16 GB recommended when the save is populated or the player group is larger.
  • Storage: 10 GB minimum for the server and its initial files. Leave additional room for saves, automatic backups, logs, and future updates.
  • Software: Docker Engine and Docker Compose installed from the current instructions for your VPS distribution.
  • Network access: permission to edit the VPS provider firewall and the Linux host firewall.
  • Administrative access: a user who can create the server directory, run Docker, and set ownership for the container’s configured UID and GID.

Memory usage grows with the world, not just the number of players. A new map with a few players may fit on the minimum, while a heavily developed factory needs headroom for the operating system, Docker, saves, and temporary update work. If the VPS begins swapping or the container is killed by the host, increase memory before changing game settings.

#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.

Use the current port model

For Patch 1.1, the standard dedicated-server guidance calls for three published endpoints:

Port Protocol Purpose
7777 TCP Dedicated-server traffic
7777 UDP Dedicated-server traffic
8888 TCP Reliable messaging

Ports 15000 and 15777 are no longer used as of Patch 1.0. They still appear in older Docker examples, which is why copying a previous tutorial can produce a server that starts but cannot be reached. Always compare the image’s documentation with the game’s current dedicated-server guidance. If an image deliberately maps a different host port, open that host port and enter the matching port in the client.

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

You must allow the same traffic in every layer: the VPS provider’s network firewall, the Linux host firewall, and Docker’s published-port configuration. Opening only one layer does not make the service reachable.

Choose an image and map its data correctly

Docker images do not all use the same internal paths or environment variables. Select one maintained image and follow its documentation instead of combining snippets from several projects.

Operational concern What to verify before deployment Known documentation
Persistent directory Which path contains saves, configuration, logs, and downloaded game files? robtme uses /config; Didstopia documents /steamcmd/satisfactory and /app/.config.
Ports Does the image expose current 7777/8888 ports, or an older mapping? Verify against the image release and current game branch; old examples may show 15000/15777.
File ownership Which variables set the process UID and group ID? robtme documents PUID and PGID.
Updates Does startup download a new game build automatically, and can that behavior be disabled? Maintained images update on startup or restart unless SKIPUPDATE=true.
Health and restart behavior What restart policy and health checks are documented? Use a restart policy such as unless-stopped; image-specific health behavior is not stated uniformly.

Persistence is the decisive issue. A container is disposable; the host directory is where the world must live. The robtme layout places backups, game files, logs, saved data, blueprints, and configuration below /config. Didstopia’s layout separates the SteamCMD/game directory and the application configuration directory. Mount the exact paths documented by the image you choose.

Create a dedicated host directory

Make a directory that will survive container replacement, for example ~/satisfactory-server. Run Compose from that directory so a relative volume such as ./satisfactory-server:/config resolves predictably. Before starting the container, decide which Linux user should own the files. The host ownership must match the UID and group ID passed to the image, or the server may fail with permission errors.

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.
  1. Create the project directory and its persistent subdirectory on the VPS.
  2. Set ownership and permissions so the configured container user can read and write it.
  3. Place your Compose file in the project directory.
  4. Back up this directory before the first upgrade and whenever the world changes substantially.

Do not use a temporary directory, an anonymous Docker volume, or a path that you routinely delete during maintenance. Recreating a container is safe only when it points to the same host directory.

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

Compose configuration that survives restarts

The following shape follows the maintained robtme image’s documented pattern. Change the image tag, player count, UID/GID, memory, and ports to match the version you have selected.

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

What each setting does

  • image selects the server image. Pin a known-good tag when you need repeatable rollbacks rather than relying on a moving latest tag.
  • ports publishes both protocols on 7777 and TCP on 8888. A TCP-only 7777 rule is incomplete.
  • volumes binds the host directory to the image’s persistent path. This is what preserves saves through container replacement.
  • MAXPLAYERS sets the image’s player-count configuration. The example uses four players; choose a value appropriate for your group.
  • PUID and PGID make files readable and writable by the intended host user. Replace 1000 with that user’s actual IDs.
  • STEAMBETA selects the documented Steam beta behavior for this image. Leave it false unless you intentionally need the beta branch.
  • restart: unless-stopped brings the service back after a crash or VPS reboot, while still respecting an explicit stop.
  • The example reserves 4 GB and limits the container to 8 GB. Adjust these values to the VPS’s real capacity and leave memory for Linux and Docker.

Compose’s deploy.resources handling can vary by Docker mode and version. Confirm that your installed Compose implementation enforces the reservation and limit; do not assume a limit exists merely because it appears in YAML.

Start the server and verify the first download

  1. From the directory containing the Compose file, run docker compose up -d.
  2. Follow the container logs with docker compose logs -f. The first start may download or update the dedicated-server files.
  3. Wait for startup and update activity to finish before attempting to connect. A partially completed download can look like a networking failure.
  4. Check that the container remains running with docker compose ps.
  5. Confirm that files appear in the bound host directory. If the directory remains empty, the volume path or image’s documented persistent path is wrong.

Do not remove the container or its host directory while the first update is running. If the process exits, inspect the logs before changing ports or deleting data; the error usually identifies a permission, memory, branch, or configuration problem.

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

Claim the server in Satisfactory

Starting the container does not finish setup. The server must be claimed from the game client.

  1. Open Satisfactory and enter Server Manager.
  2. Add the VPS address and the published server port. With the Compose example, that is the VPS address on port 7777.
  3. Connect to the unclaimed server and set an administrator password when prompted.
  4. Create a new game or import an existing save.
  5. Enable player-password protection if you want an additional password before players enter the world.

Keep the administrator password in a password manager. It controls server administration and is separate from the Linux account and Docker configuration.

Keep worlds safe when you rebuild or update

Container lifecycle operations are not world-reset operations. You can stop, remove, and recreate a container as long as the new container mounts the original host directory at the image’s expected path.

Compose update procedure

  1. Make a copy of the host persistence directory, including saves, blueprints, backups, logs, and configuration.
  2. Review the image’s release notes and confirm its documented ports and environment variables.
  3. Pull the new image with docker compose pull.
  4. Recreate the service with docker compose up -d.
  5. Watch docker compose logs -f until the update and startup complete.
  6. Connect in Server Manager and verify that the expected save is present.

Maintained images update game content on startup or restart unless SKIPUPDATE=true. That behavior is convenient for routine operation, but it means a restart can also trigger a game update. Use the skip variable only when the image documents it and you intentionally want to control update timing.

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

Updating a docker run deployment

For a container created with docker run, pull the new image, stop the existing container, remove that container, and create a replacement with the identical bind mount, ports, environment variables, and restart policy. Never remove the host directory as part of this sequence. The replacement downloads the new server files while retaining the existing world.

Rollback hygiene

If an update fails, stop the service, inspect the logs, and recreate it from the previous known-good image tag while retaining the same host directory. A rollback changes the executable image; it should not require copying saves into a new location. Keep more than one dated backup so a bad update or damaged save does not become your only copy.

Firewall and connectivity checklist

  • At the VPS provider, allow inbound TCP 7777, UDP 7777, and TCP 8888.
  • On the Linux host, allow the same protocols and ports in the host firewall.
  • In Docker, verify that docker ps or docker compose ps shows the expected published mappings.
  • Confirm that the image itself is configured for the same internal ports.
  • Use the VPS’s public address in Server Manager, not a private Docker or VPS-interface address.
  • If you intentionally use a different host-port mapping, enter that host port in the client and open it in both firewalls.

A connection failure after a successful startup is usually a mismatch between these layers. Recheck current Patch 1.1 requirements before adding obsolete 15000 or 15777 rules.

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

Troubleshoot the failures that matter most

The server cannot be found or joined

Check provider and host firewalls first, then inspect Docker’s published ports. Ensure 7777 is allowed for both TCP and UDP and 8888 for TCP. Verify that the image has not changed its internal mapping and that Server Manager uses the correct public address and port. If the logs show that the first download is still running, wait for completion before diagnosing the network.

The container reports permission denied

Compare the host directory owner and group with the values supplied through PUID and PGID. Correct ownership on the bound directory and restart the container. Mounting a directory owned by root while running the process as an unprivileged UID is a common cause of failed saves and incomplete downloads.

The container exits or repeatedly crashes

Read the logs for the first fatal error, then check available memory and CPU. A VPS that meets the 4 GB minimum on paper may still run out of headroom when Linux, Docker, and a large save are active. Increase memory for a populated world. Also verify whether the selected image documents a required branch or startup workaround; Didstopia records historical workarounds involving IPv4 multihoming and a legacy 18.04 tag for specific issues, so apply those only when the documented symptom matches.

The world disappeared after a rebuild

Find the original host directory and compare the new volume declaration with the old one. The usual causes are a missing bind mount, a relative path resolved from a different working directory, or deletion of the persistence directory. Recreate the container from the original project directory and mount the original path. If that directory was deleted and no backup exists, Docker cannot reconstruct the lost save.

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.

You need SFTP or mod-file transfer

The cgibson-dev documentation states that its image does not include an SFTP daemon. Use the VPS host’s SFTP service or a separate SFTP container instead of expecting the game container to provide file transfer. Restrict file-transfer access separately from the game ports.

Operational practices for a dependable VPS server

Backups

Back up the complete persistent directory, not only the most recent save. The directory can contain backups, blueprints, logs, game files, and configuration. Store dated copies outside the VPS when possible, and test that a copy can be read before trusting it as a recovery point.

Resource headroom

Use the 4 GB configuration only for a small test or lightly populated world. For a late-game factory or a larger group, 8–16 GB is the documented recommendation. Monitor the VPS rather than waiting for Docker to kill the process; memory pressure, swap activity, and a full disk all appear first as sluggish saves or unexplained restarts.

Controlled updates

Schedule updates when players are offline, make a backup first, and watch the logs during the restart. If automatic startup updates are undesirable, set SKIPUPDATE=true only as described by the image and perform updates deliberately with a known image tag.

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

Configuration discipline

Keep the Compose file, image tag, port mapping, UID/GID, and backup location documented together. Do not change the persistent path casually. When migrating to another VPS, copy the project directory and the persistent data, install Docker, restore ownership, and recreate the service with the same mount and settings.

Which deployment approach fits your server?

The practical choice is operational fit rather than a generic hardware purchase. Compare images on the following points:

Decision point Why it matters How to decide
Current port support Incorrect legacy mappings make a healthy container unreachable. Prefer documented 7777 TCP/UDP and 8888 TCP support for Patch 1.1, or follow a clearly documented mapping.
Persistent-directory layout The wrong mount loses saves and forces repeated downloads. Use the image’s exact path; robtme documents /config, while Didstopia documents two application paths.
UID/GID and non-root operation Ownership errors prevent downloads and save writes. Choose an image that documents UID/GID variables and set them to the host user.
Automatic updates Restarts may download a new game build. Confirm whether startup updates are automatic and whether SKIPUPDATE=true is supported.
Restart and health handling A VPS reboot or transient crash should not require manual intervention. Use unless-stopped or the image’s documented equivalent; inspect health behavior rather than assuming it.
Maintenance activity Game patches can invalidate old startup scripts and ports. Use an actively maintained image and check its current documentation before every major update.
Backup and rollback workflow A failed update must not become a lost world. Back up the host directory and retain a previous image tag for recreation.

For most VPS owners, the safest deployment is a maintained image with an explicit persistent mount, current port documentation, configurable UID/GID, and a restart policy. The image name matters less than whether those operational details are clear and kept current.

Migration to a new VPS

  1. Stop the existing container cleanly and make a complete copy of its host persistence directory.
  2. Provision a Linux x86 VPS with enough memory and storage for the world, then install Docker Engine and Compose.
  3. Create the same project and persistence paths on the new host.
  4. Restore the data and set ownership to the configured PUID and PGID.
  5. Copy the Compose file, verify the image tag and current ports, and run docker compose up -d.
  6. Open TCP/UDP 7777 and TCP 8888 in the new provider and host firewalls.
  7. Connect through Server Manager and confirm the existing save before allowing players back in.

This process moves the world without converting it into a new game. The critical invariant is the same data directory mounted at the same image path.

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

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 quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

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.