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 desk12 min

How to Run a Core Keeper Dedicated Server on Linux

A complete Linux guide to hosting Core Keeper: install the free SteamCMD server, choose native or Docker, persist worlds, retrieve GameID.txt and decide between Steam relay and Direct Connect networking.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable way to host Core Keeper on Linux is to install its separate SteamCMD server package (AppID 1963720), keep the server and world data on persistent storage, and start with Steam Datagram Relay (SDR) networking by leaving the port unset. Use the native launcher under a headless X server, or use Docker if you want the runtime and storage layout packaged for you. A generated GameID.txt is the join credential for relay-style play; direct-connect hosting requires deliberate UDP port forwarding.

What the Core Keeper dedicated server is

Core Keeper’s dedicated server is a separate, free SteamCMD download. It is not the same process as running the game client, and it does not require a Steam account for the anonymous download. The current package uses Steam AppID 1963720. You can run it on a Linux machine without a desktop session, provided the launcher has the headless display support it expects.

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.

There are two practical deployment paths:

  • Native Linux: SteamCMD downloads the files directly onto the host. You control updates, service management, filesystem permissions and the Linux runtime yourself. The supplied Linux launcher may need Xvfb for a headless machine.
  • Docker: The maintained image packages the runtime and documents a predictable server-files/server-data layout. Docker Compose makes recreation and upgrades easier, but persistence depends entirely on correctly mounted host directories.

For a first deployment, start with SDR relay networking. It avoids inbound router and firewall forwarding while outbound Steam access is allowed. Move to Direct Connect only when you specifically need a forwarded UDP port or a directly reachable public endpoint.

Native Linux or Docker?

Consideration Native SteamCMD installation Docker Compose
Runtime setup You install SteamCMD and use the package’s Linux launcher; a headless host may need Xvfb. The image packages the runtime and its startup conventions.
Updates Run SteamCMD and +app_update 1963720 validate when you choose. Image startup and image updates manage the container runtime; server files can be mounted separately.
Persistence Keep the installation and configured data path under a directory owned by the server account. Mount server-data for saves; mount server-files if you want the downloaded files outside the container.
Headless operation Use Xvfb as required by the Linux launcher. The -batchmode flag may not work directly on Linux. The image handles the container’s runtime environment.
CPU architecture Use a Linux host supported by the downloaded package. The image documents x86-64 and ARM64 variants, including generic ARM64 devices, Raspberry Pi 5, M1 and Ampere Altra.
Default networking approach Omit -port for relay-style hosting; setting it enables Direct Connect. Leave SERVER_PORT empty or unset for relay-style hosting; set it for Direct Connect.

The reviewed documentation does not provide an independent player-capacity, thermal or performance benchmark for any CPU, Raspberry Pi model or ARM64 board. Treat the Docker README’s “1–8 players” wording as a product description, not a measured Linux capacity guarantee.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Prepare the Linux host

Create a non-root service account

Do not run the game server as root. Create a dedicated Linux account and use it for SteamCMD, the server process and the files it creates. A simple layout is a directory named corekeeper-server in that account’s home directory. Keep ownership consistent so the launcher can create logs, the Game ID file and world saves without permission errors.

  • Use a supported Linux distribution and its supported SteamCMD package method.
  • Give the account a stable home directory and enough disk space for the installation, logs and growing world data.
  • If you plan to use a system service, make the service run as the same account that owns the files.
  • Decide where backups will live before the first world is created; a second disk or another host is safer than a second folder on the same disk.

Choose the data location

The server has executable files and a data area that contains world saves. With a native installation, keep both under a path you can back up. With Docker, the documented split is a host directory for server files and a separate host directory for server data. The worlds directory may not appear until the first save, roughly after a player joins, so do not conclude that persistence is broken merely because it is absent immediately after installation.

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

Install and update the native server with SteamCMD

  1. Install SteamCMD. Use the package and repository method supported by your Linux distribution. Confirm that the steamcmd command starts as the dedicated service account.
  2. Create and enter the server directory. For example, use ~/corekeeper-server and make sure that directory is owned by the service account.
  3. Download the current package anonymously. The current reference sequence is:
    steamcmd +login anonymous +app_license_request 1963720 +app_update 1963720 validate +quit
  4. Let validation finish. The +app_update ... validate step both downloads missing files and checks the installation. Run the same sequence later when you intentionally update the server.
  5. Locate the supplied Linux launcher. Use the launcher or CoreKeeperServer executable included in the package rather than copying an old community command. The Linux reference warns that -batchmode may not work directly on Linux.
  6. Provide a headless display when needed. On a machine without a desktop session, run the project’s tested launcher invocation through Xvfb. Xvfb supplies the virtual display that the server runtime expects; follow the launcher’s current arguments rather than assuming that a Windows-style headless flag is equivalent.
  7. Wait for startup. Keep the process attached for the first run so you can see errors. After successful initialization, the server writes GameID.txt beside the executable.
  8. Record the join credential. Open GameID.txt and give the code only to the people who should join. If the file is not created, inspect CoreKeeperServerLog.txt before changing launch arguments.

Start without -port unless you have chosen Direct Connect. Omitting that argument keeps the server on the relay-style path and avoids an unnecessary inbound firewall rule.

Run the server with Docker Compose

Docker is often the simpler option when you do not want to assemble a headless Linux runtime yourself. The documented image is escaping/core-keeper-dedicated:latest. Create a Compose file such as the following, replacing the host paths with directories on your machine:

services:
  core-keeper:
    image: escaping/core-keeper-dedicated:latest
    container_name: core-keeper-dedicated
    restart: unless-stopped
    stop_grace_period: 2m
    volumes:
      - /srv/corekeeper/server-files:/home/steam/core-keeper-dedicated
      - /srv/corekeeper/server-data:/home/steam/core-keeper-data
    env_file:
      - path: core.env
        required: false

Deploy the container

  1. Create the host directories used in the two volume mappings and make sure Docker can write to them.
  2. Save the Compose definition and, if you need custom settings, create the optional core.env file beside it.
  3. Start the service with docker compose up -d.
  4. Follow startup output with docker logs -f core-keeper-dedicated or docker compose logs -f.
  5. Read the generated Game ID with:
    docker exec -it core-keeper-dedicated cat /home/steam/core-keeper-dedicated/GameID.txt

The image documentation makes the server-data mount mandatory for persistence. The server-files mount is optional, but mounting it gives you direct control over the downloaded server files and makes their location obvious during upgrades. If you omit the data mount, recreating or replacing the container can leave you with a new, empty data directory instead of your existing worlds.

Rank #2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
  • Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Use environment variables for repeatable settings

The image documents environment controls for world and connection settings, including:

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.
  • WORLD_INDEX
  • WORLD_NAME
  • WORLD_SEED
  • WORLD_MODE
  • GAME_ID
  • MAX_PLAYERS
  • SERVER_IP
  • SERVER_PORT
  • PASSWORD

Keep these values in the environment file rather than editing the image or entering one-off commands. Leave SERVER_PORT empty for SDR. Set it only when you have decided to expose a Direct Connect endpoint and have matched the firewall and router configuration to it.

Choose relay networking or Direct Connect

Mode How to select it What players need Network work for the operator
Steam Datagram Relay (SDR) Native: omit -port. Docker: leave SERVER_PORT empty or unset. The generated Game ID from GameID.txt. No inbound router or firewall forwarding is required while outbound Steam access is allowed.
Direct Connect Native: set -port and, when needed, -ip. Docker: set SERVER_PORT and the relevant server IP setting. The server’s reachable address and selected UDP port, using the game’s connection flow. Allow the same UDP port in the host firewall and forward it on the router. The server’s public IP is exposed to connecting players.

SDR is the safer starting point

Relay mode minimizes networking decisions. Steam relay infrastructure carries the traffic, so the host does not need an inbound port opened on the router or firewall. Outbound access to Steam still has to work; a restrictive corporate, VPS or home firewall can block the connection even when no inbound rule is needed.

When Direct Connect makes sense

Use Direct Connect when you deliberately need a forwarded UDP endpoint, such as a network where relay connectivity is unsuitable or a local setup that requires direct addressing. Select a port, set the server IP as needed, allow that UDP port through the host firewall and forward the identical port from the router to the Linux host. The Codex reference uses UDP port 27015 as a same-LAN example, not as a mandatory Internet-wide choice. Confirm the image’s current port mapping before publishing a Docker command, and do not assume that a different external port will map automatically.

Configure worlds, access and player limits

The current server reference documents these launch controls. Native installations use the corresponding command-line arguments; Docker users use the image’s environment names where documented.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
  • CanaKit Raspberry Pi 5 Essentials Starter Kit
Setting Native argument Purpose and constraints
World name -worldname Selects the world name used by the server.
World seed -worldseed Sets the seed for world generation.
World mode -worldmode Supported values documented in the current package are Normal, Hard, Creative and Casual.
Data path -datapath Points the server at the directory where its persistent data and worlds should live.
Game ID -gameid Uses a manually supplied join code instead of relying only on a generated one.
Password -password Adds a password requirement for the server.
IP address -ip Specifies the address used with a deliberate Direct Connect configuration.
Port -port Enables Direct Connect when set; omitting it keeps the relay-style default.
Maximum players -maxplayers The current package defaults to 8 when no value is supplied.

Use the current package’s argument reference when combining options. Old community examples can omit newer requirements or use flags that changed behavior, particularly around Linux headless startup and SteamCMD licensing.

Manually supplied Game IDs

If you set -gameid yourself, the current reference requires 15–28 alphanumeric characters and disallows Y, y, x, 0 and O. Those exclusions reduce visual confusion when players type a code. A generated or manually chosen Game ID is a credential: do not post it publicly unless you intend to let anyone who sees it attempt to join. Make a backup before sharing a code in a public channel.

Protect and back up world data

Native installations

Back up the configured data path, including the worlds directory, while the server is stopped or after a clean shutdown. Keep the backup outside the live installation so an update or accidental deletion cannot remove both the executable and the only copy of the save. If you move the installation, update -datapath deliberately and verify that the process can read and write the destination.

Docker installations

Back up the host directory mapped to /home/steam/core-keeper-data. The worlds folder can be created only after the first save, so check again after a player has joined and the world has changed. Before updating an image or recreating a container, confirm that the host mount is still present and points to the same directory. A container can start normally while showing no worlds if it is pointed at a newly created, empty host path.

Passwords and codes

Store PASSWORD and any manually supplied Game ID in a private environment file or restricted service configuration. Do not place secrets in a public Compose repository. A password helps limit access, but it does not make a publicly posted Game ID harmless; share both only with the intended group.

Rank #4
SANOOV Raspberry Pi 5 4GB Kit, 4GB RAM Single Board Computer with Active Cooler and ABS Case, Complete Raspberry Pi 5 Starter Kit for IoT Robotics Retro Gaming
  • All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
  • Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
  • Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
  • Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
  • Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Make the server survive reboots and updates

For native hosting, run the launcher under a service manager such as your distribution’s system-service facility, using the dedicated account and the same working directory every time. Include the Xvfb setup required by the launcher, and send stdout and stderr to a log location you monitor. Test a stop and restart before inviting players.

For Docker, restart: unless-stopped brings the container back after an ordinary host restart. The two-minute stop_grace_period gives the server time to flush data during a controlled stop. Do not treat automatic restart as a backup strategy: retain independent copies of the data directory and verify that a restored copy actually contains the expected worlds.

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

Update native files with the SteamCMD command, then stop and restart the server cleanly. For Docker, decide whether to update the image, the mounted server files, or both according to the image’s documented startup behavior. After every update, check the logs, verify the Game ID path and confirm that the expected world is visible before players connect.

Troubleshoot the common failures

SteamCMD cannot download the server

Use the current anonymous sequence, including +app_license_request 1963720, before +app_update:

steamcmd +login anonymous +app_license_request 1963720 +app_update 1963720 validate +quit

Older examples that omit the license request can fail or become stale as the package workflow changes. Also confirm that SteamCMD is running as the account that owns the target directory.

Best Value
RasTech Raspberry Pi 5 8GB Kit with Active Cooler and Pi5 Case
  • 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
  • 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
  • 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
  • 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
  • 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.

No GameID.txt appears

Do not invent a Game ID or repeatedly restart without reading the error. For native hosting, inspect CoreKeeperServerLog.txt beside the executable. For Docker, run docker logs core-keeper-dedicated or docker compose logs. Check the working directory, write permissions, data path and whether the process exited during initialization. A container can also be writing the file inside the container while you look in an unrelated host directory; use the documented docker exec command to read the actual path.

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

Players cannot connect in Direct Connect mode

  • Verify that you intentionally set -port or SERVER_PORT; relay mode does not require the same forwarding steps.
  • Confirm that the host firewall allows the selected UDP port.
  • Forward that exact UDP port from the router to the Linux host’s current private address.
  • Check that the configured IP is the correct interface and that the public address has not changed.
  • Make sure players are using the current endpoint and that the server process is still listening after a restart.

Worlds disappear after a container update

Check the Compose volume first. The host directory must be mounted to /home/steam/core-keeper-data, and it must be the same directory used before the update. Look for a newly created empty directory caused by a path typo or changed working location. Restore the backed-up worlds only after stopping the container, then start it again and inspect the logs.

An ARM64 deployment behaves unexpectedly

Confirm that the image variant matches the device selected through its documented ARM64_DEVICE setting. The image lists generic ARM64, Raspberry Pi 5, M1 and Ampere Altra variants, but the available material supplies no independent load, player-capacity, thermal or storage-endurance measurements. Keep player expectations conservative, use reliable storage, monitor memory and CPU usage, and test the exact world and mod configuration you plan to run.

A practical first-run checklist

  1. Create a non-root account and a persistent server directory.
  2. Install SteamCMD through the distribution-supported method.
  3. Download AppID 1963720 with the current anonymous license-request and update sequence.
  4. Choose native plus Xvfb or Docker Compose.
  5. Mount or back up the data directory before the first world is valuable.
  6. Start without a port to use SDR.
  7. Read GameID.txt from the executable directory or the container path.
  8. Join once, confirm that the world saves, and verify that the worlds directory now exists.
  9. Only then decide whether Direct Connect, a password, a custom Game ID or a custom player limit is needed.
  10. Test a clean stop, restart and restore procedure before relying on the server for a long-running group world.

Bottom line

For most Linux hosts, install the free AppID 1963720 package with SteamCMD, run the Linux launcher through Xvfb when the machine is headless, and leave the port unset so Steam Datagram Relay handles connectivity. Docker is the lower-maintenance alternative when you want the runtime packaged, but its server-data volume is non-negotiable. In either deployment, the operational essentials are the same: preserve the data and worlds directories, read the generated Game ID from the correct location, use current launch arguments, and configure UDP forwarding only when you intentionally switch to Direct Connect.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$419.99
Bestseller No. 3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit
$189.99

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.

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.

Leave a Reply

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

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