iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The reliable pattern is to run a maintained Satisfactory dedicated-server image on a Linux x86 VPS, publish the current game ports, and bind the container’s data directory to storage on the host. Start with at least 4 GB of RAM and 10 GB of disk for a small test server; 8–16 GB of RAM is a better target for a late-game world or a larger group. For Patch 1.1, allow TCP and UDP 7777 plus TCP 8888, then claim the server in Satisfactory’s Server Manager.
What you need before deploying
A Dockerized Satisfactory server is a normal dedicated server process wrapped in a container. Docker makes replacement and upgrades predictable, but it does not remove the need for adequate CPU, memory, storage, firewall rules, and backups.
Recommended Free Tools
| Requirement | Practical starting point | Why it matters |
|---|---|---|
| Operating system | Linux on an x86 VPS | The commonly maintained images and deployment examples target Linux and x86 hardware. |
| Memory | 4 GB minimum for a small test server; 8–16 GB recommended for populated or late-game worlds | World simulation and save operations grow as factories, vehicles, players, and explored areas accumulate. Leave some RAM for the operating system and Docker. |
| Storage | 10 GB minimum, with additional space reserved for saves, backups, logs, and future updates | The server download and persistent data live on disk. A nearly full filesystem can prevent updates or saves. |
| CPU | A relatively powerful x86 virtual CPU rather than the smallest shared instance | Simulation, networking, and save serialization are CPU-sensitive, especially with several players online. |
| Network | A public IPv4 address and a VPS provider that permits custom inbound firewall rules | Players must reach the published game and reliable-messaging ports from outside the VPS. |
| Software | Docker Engine and the current Docker Compose plugin | Compose defines the image, ports, bind mount, environment, restart policy, and resource settings in one repeatable file. |
Didstopia’s project README specifies 4 GB of memory and 10 GB of storage as minimums. The robtme project README notes that the server can run with less than 8 GB, while 8–16 GB is recommended for larger or late-game servers. These are capacity guidelines, not guarantees for every world: monitor actual memory and CPU use after players begin building.
Open the current Satisfactory ports
Use the port model for the game version you are actually running. Current dedicated-server guidance for Patch 1.1 requires:
#1 Best Overall
- [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.
| Port | Protocol | Purpose |
|---|---|---|
| 7777 | TCP | Dedicated-server game traffic |
| 7777 | UDP | Dedicated-server game traffic |
| 8888 | TCP | Reliable messaging used by the current server implementation |
Ports 15000 and 15777 are no longer used as of Patch 1.0. They still appear in older Docker examples, so do not copy an old compose file or firewall recipe without checking its image documentation and the game branch it runs. If an image intentionally maps a different external port to the container’s internal port, use that documented mapping consistently in Docker, both firewalls, and the client’s Server Manager entry.
There are two firewall layers to configure:
- VPS-provider firewall: create inbound rules for TCP 7777, UDP 7777, and TCP 8888, restricted to your players’ source addresses if your provider and group make that practical.
- Host firewall: allow the same traffic in the Linux firewall (for example, the distribution’s nftables, firewalld, or UFW configuration).
Docker’s published-port rules are a third piece of the path; a port that is allowed by the provider but not published by Docker, or published by Docker but blocked by the host firewall, will still be unreachable.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallChoose an image and preserve its data
Use one maintained image and follow that image’s documented variables rather than mixing settings from several tutorials. The robtme image uses /config as its persistent directory. Its documented layout stores backups, game files, logs, saved data, and configuration there. Didstopia documents a different layout, with mounts for /steamcmd/satisfactory and /app/.config. The mount point is image-specific; verify it before starting.
The key rule is that the container path must be bound to a directory on the VPS filesystem:
- Keep the host directory when you stop, remove, upgrade, or recreate the container.
- Back up that directory before changing the image tag or game branch.
- Do not bind-mount a new empty directory by accident; Docker will then present an apparently fresh server with no world.
- Ensure the user and group IDs configured for the container can write to the host directory.
A bind mount also avoids downloading the complete server again every time a container is replaced. Named volumes can work, but a clearly named host directory is easier to inspect, back up, transfer, and restore on a VPS.
Rank #2
- 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
Prepare the VPS
- Create a dedicated directory. For example, make
~/satisfactory-serverand keep the Compose file there. The relative mount in the example below will create a subdirectory namedsatisfactory-serverbeside the file. - Install Docker Engine and Compose. Use the current official instructions for your VPS distribution. Avoid an obsolete package or a third-party installation script when the distribution’s supported Docker documentation is available.
- Choose the file owner. Identify the numeric user and group IDs that should own the downloaded files. The example uses
1000for both; replace those values when the VPS account uses different IDs. - Create the host data directory and set ownership. Make sure the configured
PUIDandPGIDuser can create files there before the first startup. - Configure both firewalls. Add the three current inbound rules before testing from the game client.
Keep the VPS account used for administration separate from the game’s administrator password. The Linux account controls files and containers; the password you set later in Server Manager controls administrative actions inside Satisfactory.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Deploy with Docker Compose
Create compose.yaml in the deployment directory. This follows the robtme image’s documented pattern; change the image tag, player count, IDs, and resource values to fit the image and VPS you 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 controls
imageselects the server image and tag. Pin a known-good tag when you need predictable rollback instead of automatically following a movinglatesttag.portspublishes both protocols for 7777 and TCP for 8888. The left side is the VPS port; the right side is the container port.volumesmaps the host directory to the image’s persistent/configpath. This is the setting that protects saves across container replacement.MAXPLAYERSsets the configured player ceiling supported by the image.PUIDandPGIDmake downloaded files and saves writable by the intended host account. Use the IDs for that account, not blindly the example values.STEAMBETAselects whether the image follows the beta branch. Leave it false unless you deliberately need that branch and have confirmed compatibility with your players.restart: unless-stoppedbrings the server back after a crash or VPS reboot, while still honoring an intentional manual stop.- The memory reservation and limit express the example’s 4 GB reserved and 8 GB maximum allocation. Confirm how your Compose version applies resource controls and leave enough memory for Linux itself.
Start and verify the first run
- From the directory containing
compose.yaml, rundocker compose up -d. - Follow startup output with
docker compose logs -f satisfactory-server. The first launch may download or update game files; wait for that process to finish. - Check that the container remains running with
docker compose ps. - Confirm the published mappings with
docker port satisfactory-server. The output should show the TCP and UDP mappings defined in the file. - Check ownership and disk usage on the host data directory. A permission error during startup usually means the configured IDs do not match the directory owner or the directory is not writable.
Do not delete the host data directory as a way to “reset” a broken container. Removing a container is safe when the bind-mounted directory remains intact; deleting that directory removes the files that make the world persistent.
Claim the server and create or import a world
Once the container has finished its initial download and is listening, complete the in-game setup:
- Open Satisfactory and go to Server Manager.
- Add the VPS address and the port exposed for the server. With the example above, use the VPS’s public address and port 7777.
- Connect to the unclaimed server and choose the option to claim it.
- Set an administrator password. Store it in a password manager; it is separate from your VPS login.
- Create a new game or import an existing save.
- Enable player-password protection if the world should not be open to anyone who can reach the server.
If the client cannot add the server, test the network path before changing save files: verify the provider firewall, host firewall, Docker mappings, public address, and the image’s documented port configuration.
Rank #3
- 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 saves safe across rebuilds
Satisfactory worlds are stored in the image’s persistent directory, not in the writable layer of the disposable container. For the robtme layout, that is the host directory mounted at /config; for Didstopia’s layout, it is the host directories mapped to the documented SteamCMD and configuration paths.
Back up before risky operations
- Stop or pause the server cleanly before taking a filesystem-level backup when possible.
- Copy the complete host data directory, including saves, backups, logs, and configuration.
- Keep at least one backup outside the VPS. A second copy on another system protects against VPS disk failure or accidental deletion.
- Record the image tag, environment variables, branch choice, and Compose file with the backup so that a restore reproduces the same layout.
Recreate without losing the world
- Stop the service with
docker compose downwhen you need to remove the container. - Leave the host bind directory in place.
- Update or edit the Compose file as required.
- Run
docker compose up -dto create a new container using the same mount. - Check logs and Server Manager. The existing world should be available after the server finishes loading its files.
Update the server without losing the world
Maintained images normally check for game updates when the container starts or restarts, unless the image’s SKIPUPDATE=true option is enabled. Treat an update as a container lifecycle operation, not as a reason to erase the data directory.
Compose update procedure
- Back up the persistent host directory.
- Pull the newer image with
docker compose pull. - Recreate the service with
docker compose up -d. - Watch
docker compose logs -f satisfactory-serveruntil the download, migration, and startup complete. - Connect with a client version compatible with the server and verify the expected world and player settings.
Updating a container created with docker run
Use the same sequence conceptually: pull the new image, stop and remove the old container, then create a replacement with the original port mappings, environment variables, restart policy, and host bind mount. The host directory must be identical to the one used by the old container. If you change the image’s internal mount path, adapt the mapping according to that image’s documentation rather than guessing.
Rollback after a failed update
Keep the previous known-good image tag and the pre-update backup. If the new container fails, inspect its logs first. Then stop it, recreate the service from the earlier tag, and retain the same persistent directory. A rollback restores the executable image; it does not recover files that were deleted, so the backup remains essential.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Security, operations, and capacity choices
Limit exposure
Expose only the Satisfactory ports required by the current server guidance. Do not publish administrative interfaces, Docker’s API socket, or an SSH service on a public game port. Use SSH keys, apply operating-system security updates, and restrict firewall sources where your group’s network makes that feasible.
Rank #4
- 【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.
Plan for growth
A four-player setting in the example is a configuration choice, not a hardware guarantee. Increase the player limit only after observing CPU, memory, disk latency, and save times with your actual factory. A late-game world can require substantially more headroom than a fresh map, so resizing the VPS before it begins swapping is safer than waiting for crashes.
Monitor the host and container
- Use
docker stats satisfactory-serverto observe container CPU, memory, and network use. - Use the VPS provider’s graphs to identify sustained CPU steal, memory pressure, or disk saturation.
- Watch the server logs after restarts and updates for repeated crashes, failed downloads, or permission errors.
- Keep free disk space for update downloads and automatic or image-managed backups.
Troubleshoot the common failure modes
Players cannot connect
- Confirm the VPS provider firewall and Linux host firewall both allow the current TCP and UDP game traffic and the reliable-messaging traffic.
- Run
docker compose psanddocker port satisfactory-serverto verify that the container is running and the expected mappings exist. - Check that the client is using the VPS public address, not a private interface address.
- Compare the image’s documented internal and external ports with the game version. Old recipes that publish 15000 or 15777 can be wrong for current patches.
- If the VPS has multiple IPv4 addresses, verify which address Docker binds and which address the provider firewall protects. Didstopia documents IPv4 multihoming as a workaround for specific historical issues.
Permission denied during startup or saving
Inspect the owner and mode of the host directory, then compare them with PUID and PGID. Correct the directory ownership for the account intended to manage the files and restart the service. Do not “fix” the symptom by making the entire filesystem world-writable.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →The container exits or repeatedly crashes
- Read the complete startup log rather than only the last line.
- Check available RAM and CPU; a container limit below the world’s working set can produce instability or severe swapping.
- Verify that the selected game branch and image tag are compatible. A beta setting such as
STEAMBETAshould be deliberate. - Check the image documentation for branch-specific startup workarounds. Didstopia lists a legacy
18.04tag for a historical issue; do not use such a workaround unless the documented condition applies to your deployment.
The world disappeared after a rebuild
The usual causes are a missing bind mount, a typo that points to a new host directory, or deletion of the original directory. Stop the replacement container, identify the original data directory or restore it from backup, and recreate the service with the correct image-specific mount path.
You need SFTP or file transfer
The cgibson-dev documentation says its image does not include an SFTP daemon. Transfer files through the VPS host’s SFTP service or run a separate, deliberately configured SFTP container. Do not assume that an SFTP client can connect directly to the game container.
How to evaluate a different Docker image or VPS plan
There is no universally best image; operational fit matters more than a superficially attractive README. Before switching, compare these points:
| Decision axis | Questions to answer |
|---|---|
| Port model | Does it document current 7777 TCP/UDP and 8888 TCP behavior, or does it target an older branch and legacy mappings? |
| Persistent layout | Which container directory holds saves, backups, logs, and game files, and can it be bind-mounted to an inspectable host path? |
| Permissions | Are PUID, PGID, or another non-root mechanism supported and documented? |
| Updates | Does startup update automatically, can updates be skipped, and can you pin a known-good image tag? |
| Restart and health behavior | Does it recover after a reboot or crash, and are failures visible in logs or health checks? |
| Maintenance | Are image releases and game-version changes documented recently enough for your branch? |
| Recovery workflow | Can you back up the host directory and recreate the container with the same mount and settings? |
| VPS capacity | Does the plan leave memory and CPU headroom beyond the server’s stated minimum for your world’s expected growth? |
Changing images is safest when you first make a complete backup, record the old mount layout, and test the new image with a copy of the data. Never point two containers at the same live save directory at the same time.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A repeatable maintenance checklist
- Confirm the current game patch and the image’s supported branch.
- Verify that the provider firewall, host firewall, and Docker mappings agree.
- Check disk space, memory pressure, and CPU saturation before inviting more players.
- Back up the persistent directory before image or game updates.
- Use
docker compose pullfollowed bydocker compose up -dfor Compose-managed upgrades. - Keep the previous image tag and a recent backup for rollback.
- After every restart, inspect logs and connect with a client to verify the expected world.
The Bottom Line
For a dependable Satisfactory VPS, use a Linux x86 host with Docker, reserve realistic memory, publish the current 7777 TCP/UDP and 8888 TCP ports, and bind the image’s documented data directory to the VPS filesystem. Container replacement and updates are safe when that directory is backed up and reused; deleting or changing the mount is what turns a routine rebuild into lost progress.
Quick Recap
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.

