You can host a Sons of the Forest dedicated server on Ubuntu or another Linux distribution by running the Windows server executable inside a Docker image that bundles Wine, SteamCMD and a headless display. For a small server, plan on at least 2–4 CPU cores, 8 GB of RAM and 12 GB of storage; the documented four-player recommendation is 4 or more cores, 16 GB of RAM and 20 GB of storage. Internet players also need UDP ports 8766, 27016 and 9700 forwarded through the host firewall and router.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What you need before you start
The dedicated-server files are distributed for Windows. Linux images make them usable by packaging Wine (the Windows compatibility layer), Xvfb (a virtual display for headless operation), SteamCMD and the server itself. You do not need a graphical desktop on the Linux machine, but you do need enough resources and a network address that players can reach.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
Hardware and network baseline
| Use case | CPU | Memory | Storage | What it means |
|---|---|---|---|---|
| Small private server | 2–4 cores | 8 GB or more | 12 GB or more | Practical baseline published by the jammsen Docker project; actual performance varies with player count and other workloads. |
| Recommended four-player profile | 4 or more cores | 16 GB or more | 20 GB or more | jammsen’s recommended profile for four players, not a performance guarantee. |
Leave additional disk space for downloaded updates, logs and backups. Use a stable LAN address at home or a static public address on a VPS. If your internet connection uses carrier-grade NAT, ordinary router port forwarding may not be possible; a VPS or managed host avoids that limitation.
Software prerequisites
- A supported Linux installation with a user account that can run Docker.
- Docker Engine and Docker Compose.
- Permission to bind UDP ports 8766, 27016 and 9700, or alternative ports that you deliberately configure on both the host and server.
- A persistent directory for configuration, downloaded server files and saves.
- Basic familiarity with Linux shell commands, Docker Compose and firewall or NAT rules. The jammsen maintainers specifically describe Docker, Compose, Linux and port-forwarding knowledge as prerequisites.
Choose a Docker image
Use a maintained image rather than assembling Wine and SteamCMD by hand. Two documented projects take different approaches:
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
- jammsen: bundles SteamCMD, Wine, Xvfb and the dedicated server. Its examples mount a host directory such as
./gameat/sonsoftheforestand publish all three required UDP ports. The project notes that a January 2025 refactor introduced breaking changes; use a fresh directory and the current README when migrating. - chemineer1: documents a Linux-machine deployment with Docker Engine and Compose, identifies the configuration files you must edit and describes an occasional Wine assertion error with a Compose restart as the remedy.
- RouHim: separates configuration in a
config/directory from downloaded server data indata/. It checks for updates and validates files at boot by default, and documentsdocker compose pullfollowed bydocker compose up -d.
Read the image’s current README before copying an old compose file. Environment-variable names, mount paths and startup behavior can change between releases. Never assume that a compose file written before the jammsen January 2025 refactor is still compatible.
Install Docker and create a persistent project
On Ubuntu, install Docker Engine and the Compose plugin using the distribution method recommended for your release, then verify both commands:
docker --version
docker compose version
Create a directory that will survive container replacement. The exact path is your choice; this example uses ~/sons-of-the-forest-server:
mkdir -p ~/sons-of-the-forest-server
a cd ~/sons-of-the-forest-server
Remove the accidental “a” if your shell reports an error, then enter the directory normally:
cd ~/sons-of-the-forest-server
Download or create the compose file supplied by the image you selected. Keep the compose file and all host-mounted data under a directory covered by your backup plan. A container’s writable layer is disposable; files saved only there can disappear when the container is recreated.
Compose the server with the required ports
Mounting one game directory
The jammsen pattern mounts a host folder into the container:
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteservices:
sons-of-the-forest:
image: <current-image-from-the-project-readme>
volumes:
- ./game:/sonsoftheforest
ports:
- "8766:8766/udp"
- "27016:27016/udp"
- "9700:9700/udp"
restart: unless-stopped
Replace the image placeholder with the exact image name and tag from the maintained project. Do not invent a tag: a project may publish a moving latest tag, versioned tags or a source-build workflow.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
Separating configuration and downloaded data
The RouHim layout keeps settings and server data in separate host directories. Follow its supplied compose file and preserve both mounts. Its documented update sequence is:
docker compose pull
docker compose up -d
The first start downloads the latest server files into data/ and may need a restart after that download completes. Watch the startup output before deciding that the container failed.
Start the container and let SteamCMD install the server
Start detached so the server continues after you close the terminal:
docker compose up -d
On first boot, SteamCMD downloads or validates the dedicated server. The Steam app ID is 2465200. If you ever need to install it manually with SteamCMD, the documented anonymous command is:
steamcmd +login anonymous +app_update 2465200 validate +quit
Anonymous installation does not require a Steam account. Images generally run this process automatically, so do not launch a second installer against the same directory while the container is working.
Follow the logs when the image supports normal Compose logging:
docker compose logs -f
Look for completion of the download, creation of the configuration files and a message that the game server is listening. Press Ctrl+C to leave the log view; it does not stop a detached container.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Configure dedicatedserver.cfg
The server configuration is JSON in dedicatedserver.cfg. Edit the copy in the host-mounted configuration or game directory, not a temporary file inside the container. A documented default looks like this:
{
"IpAddress": "0.0.0.0",
"GamePort": 8766,
"QueryPort": 27016,
"BlobSyncPort": 9700,
"MaxPlayers": 8,
"Password": "",
"SaveSlot": 1,
"SaveMode": "Continue",
"SaveInterval": 600,
"ServerName": "My Sons of the Forest Server"
}
Keep valid JSON: use double quotes, commas between properties and no comments. The image may create additional keys; preserve them when editing.
Network and player settings
IpAddressset to0.0.0.0listens on all interfaces. Restricting it to a specific address can prevent access if the host has multiple interfaces or its address changes.GamePortis the UDP gameplay port. The documented default is 8766.QueryPortis used by Steam for server listing and discovery; the default is 27016.BlobSyncPortinitializes game systems and exchanges data; the default is 9700.MaxPlayersaccepts 1–8 in the documented guide. Set a value appropriate for your hardware and group.Passwordmakes the server private. Set a non-empty value before exposing a friends-only server to the internet.ServerNameis the name players see in the browser. Set it before sharing the address.
Save behavior
SaveMode set to Continue loads an existing save or creates one on the selected slot. The documented new mode overwrites the selected slot when the server restarts, so do not use it on a world you intend to keep. SaveInterval defaults to 600 seconds. The chemineer1 project recommends shortening that interval—for example, to 120 seconds—if losing up to ten minutes of progress after a crash is unacceptable. More frequent saves increase disk activity.
Administrators and the owner whitelist
The projects identify ownerswhitelist.txt as the file for administrator access. Add the required owner identifiers in the format specified by the image’s current README, then restart the server. Keep this file in the persistent mount and restrict its permissions because it grants elevated control.
Open the firewall and router
For players outside your home network, forward these UDP ports from the public router address to the Linux host:
| UDP port | Role | Forward to |
|---|---|---|
| 8766 | Gameplay | The server’s LAN address |
| 27016 | Steam query and discovery | The same LAN address |
| 9700 | BlobSync initialization and data exchange | The same LAN address |
Allow the same ports through the host firewall. With UFW, the rules are:
sudo ufw allow 8766/udp
sudo ufw allow 27016/udp
sudo ufw allow 9700/udp
sudo ufw status
On a VPS, add equivalent inbound rules in the provider’s security group as well as in Linux. Router forwarding must target a fixed LAN address; reserve that address with DHCP or configure a static address. If only local players can connect, check the forwarding destination, upstream NAT, firewall profile and whether your ISP blocks inbound traffic. A VPS or managed host generally avoids home-router NAT, but you still must configure its firewall.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows 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 reinstallRank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Apply configuration changes safely
- Edit the persistent
dedicatedserver.cfg, server-name setting, password or owner whitelist. - Validate the JSON with a parser if available; malformed JSON can prevent startup or cause defaults to be used.
- Restart the stack so the Windows server reloads the files:
docker compose restart - Watch logs for bind errors and confirm that all three UDP ports are published:
docker compose ps docker compose logs -f - Connect from a second machine or ask an off-network player to test discovery and gameplay.
RouHim documents docker compose down for bringing the stack down and docker compose stop for a graceful stop without removing the stack definition. Prefer stop for routine maintenance; use down when recreating containers or changing the Compose project.
Updates, backups and migration
Image-based updates
Back up the persistent directories first. Then pull the image and recreate the service:
docker compose pull
docker compose up -d
RouHim checks for updates and validates files on each boot by default. Its FAST_BOOT option can skip that behavior, which shortens startup but also means you may run an outdated or unvalidated installation. Enable it only when you understand that trade-off and have another update check in your maintenance routine.
Source-build updates
If you selected an image that builds locally, pull repository changes, rebuild without cache when an old layer is suspected, and start again:
Recommended Free Tools
git pull
docker compose build --no-cache
docker compose up -d
Use the commands and build context documented by that project; not every repository uses the same service name or Dockerfile.
Protecting saves during the January 2025 refactor
The jammsen project warns that its January 2025 refactor introduced breaking changes. A fresh installation is recommended when migrating, followed by a deliberate copy of the old save and configuration into the new persistent path. Stop the server before copying so files are not changing mid-backup. Keep the original directory untouched until the new container has loaded the world successfully.
Backup procedure
- Stop the server gracefully with
docker compose stop. - Archive the host-mounted configuration and save directories, including
dedicatedserver.cfg,ownerswhitelist.txtand the downloaded data directory. - Store at least one copy on another disk or host.
- Start the stack and test that the expected world and settings load.
Never delete the persistent data/ or game directory while troubleshooting unless you intentionally want to reset the server state. RouHim explicitly notes that deleting data/ resets the game-server state.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Troubleshooting common failures
The container starts but players cannot connect
- Confirm the Compose file publishes
8766/udp,27016/udpand9700/udp. - Confirm the Linux firewall and, for home hosting, router forwarding allow all three ports.
- Verify forwarding points to the current LAN address, not an old DHCP lease.
- Check that
IpAddressremains0.0.0.0unless you have a specific multi-interface design. - Test from outside the LAN; many routers do not support NAT loopback, so a local test can fail even when internet access works.
The server is missing from the browser
The query port is separate from the gameplay port. Check UDP 27016 first, then verify the public address and firewall rules. A server can be reachable by direct address while discovery remains broken if the query port is blocked.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Startup repeatedly downloads files
Inspect the volume mapping. If the container cannot write to the mounted directory, SteamCMD may validate or download on every boot. Correct ownership and permissions for the container’s documented user, then restart. Do not “fix” this by deleting the directory unless you have a backup.
Wine assertion error
The chemineer1 project reports an occasional Wine assertion error and suggests stopping or bringing down the Compose stack, then starting it again:
docker compose stop
docker compose up -d
If the error persists, capture the logs, check that the image and host architecture meet its requirements and consult that project’s current issue tracker. This workaround is project-specific, not a universal Linux fix.
The world appears reset
Check that the new container mounts the same save directory and that SaveMode is Continue. Confirm the selected save slot and restore from the latest backup if the persistent directory was replaced. Do not leave SaveMode set to new on a production world.
Self-hosting versus managed hosting
| Factor | Linux and Docker self-hosting | Managed game-server hosting |
|---|---|---|
| Control | Direct access to files, ports, startup behavior and configuration. | Provider controls the platform; you use its panel and supported settings. |
| Maintenance | You handle Docker, game updates, backups, firewall rules, port forwarding and recovery. | The provider generally handles host maintenance and network reachability; verify exactly what backups and updates include. |
| Cost model | Uses an existing machine or VPS; electricity or VPS charges still apply. | Adds a recurring service fee. Current prices were not established here. |
| Reachability | Home hosting depends on NAT and ISP limitations; a VPS avoids most home-router issues. | Usually internet-reachable without your own router configuration. |
| Portability | Mounted directories can move between image versions when paths are preserved. | Export options and save access depend on the provider. |
Choose self-hosting when you want filesystem access, custom automation and control over updates, and are comfortable maintaining Linux and networking. Choose a managed service when an always-on server matters more than operating the host yourself. In either case, keep independent backups of the world and configuration.
Quick Recap
Final pre-launch checklist
- Docker Engine and Compose run without errors.
- The selected image’s current instructions match your compose file.
- The host meets the CPU, RAM and storage baseline for your player count.
- The game directory or separate
config/anddata/mounts are persistent. - SteamCMD has installed app ID
2465200successfully. dedicatedserver.cfgcontains a name, password if needed, correct ports andSaveModeset toContinue.- UDP 8766, 27016 and 9700 are allowed by Docker, Linux firewall and router or VPS security rules.
- You have tested an off-network connection and made a restoreable backup.
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.




