Daemon CLI
Check Daemon status, control the service, and update it.
Run these commands with the installation account and privileges; diagnostics require the service account's permissions:
Here, gamex means the node executable. If it is not on PATH, run from the extracted directory and replace it with ./gamex on Linux/macOS or .\gamex.exe in Windows PowerShell. Linux system services may require sudo; do not use it for a macOS user service.
| Purpose | Command |
|---|---|
| Check service and connection status | gamex daemon status |
| Check Docker connectivity | gamex daemon doctor |
| Start or stop the service | gamex daemon start / gamex daemon stop |
| Enable or disable automatic startup | gamex startup enable / gamex startup disable |
| Check the version and full usage | gamex version / gamex --help |
For first installation, use the command generated by Panel; see Connect a node.
status returns JSON with service installation, running state, and automatic startup status. It also includes Daemon state when the local management endpoint is reachable. A running service does not establish Panel connectivity, and Docker availability does not establish game-service readiness.
For an installation with custom configuration, pass the same file:
gamex daemon status --config /path/to/config.yaml
gamex daemon doctor --config /path/to/config.yamldoctor checks the Docker engine available under the current configuration. It does not install or repair Docker. See Troubleshooting for Workspace service and port issues.
Configuration and data locations
| System | Default location |
|---|---|
| Linux | Configuration and identity: /etc/gamex-daemon/; state: /var/lib/gamex-daemon/ |
| macOS | config.yaml, identity/, and state/ under ~/Library/Application Support/GameX/ |
| Windows | config.yaml, identity\, and state\ under %ProgramData%\GameX\ |
The Panel connection address is panel_url in config.yaml. Back up configuration, identity, and state together. Use your actual paths for custom installations and back up the corresponding volume for container deployments.
Download a release
Choose a version matching Panel from Daemon releases, download the archive for your host's operating system and architecture, and extract it into a new directory. The examples below use 1.2.0.
For filenames, see Connect a node; the executable is in gamex-v1.2.0-PLATFORM-ARCH-unsigned/.
Optional: verify downloaded files
Download SHA256SUMS from the same release into the archive directory. Verify the archive before extracting it.
Linux / macOS
PLATFORM=linux
ARCH=amd64
ARCHIVE="gamex-v1.2.0-${PLATFORM}-${ARCH}-unsigned.tar.gz"
(
set -e
awk -v file="$ARCHIVE" '$2 == file { print }' SHA256SUMS > selected.sha256
test "$(wc -l < selected.sha256)" -eq 1
if command -v sha256sum >/dev/null; then
sha256sum --check selected.sha256
else
shasum -a 256 --check selected.sha256
fi
)Set PLATFORM=darwin on macOS and ARCH=arm64 on ARM hosts.
Windows
Run in PowerShell:
$ErrorActionPreference = 'Stop'
$arch = 'amd64'
$archive = "gamex-v1.2.0-windows-$arch-unsigned.zip"
$lines = @(Get-Content SHA256SUMS | Where-Object { ($_ -split '\s+')[1] -eq $archive })
if ($lines.Count -ne 1) { throw 'Missing or duplicate checksum' }
$expected = ($lines[0] -split '\s+')[0]
if ($expected -notmatch '^[0-9a-fA-F]{64}$' -or (Get-FileHash $archive -Algorithm SHA256).Hash -ne $expected) {
throw 'Checksum mismatch'
}Change $arch to arm64 on ARM hosts.
Verify release provenance
Download the matching .sigstore.json bundle and install cosign. Run in the archive directory:
cosign verify-blob --bundle gamex-v1.2.0-linux-amd64-unsigned.tar.gz.sigstore.json --certificate-identity-regexp '^https://github\.com/gamex-sh/gamex-daemon/\.github/workflows/release\.yml@refs/heads/release/v1\.2\.0$' --certificate-oidc-issuer https://token.actions.githubusercontent.com gamex-v1.2.0-linux-amd64-unsigned.tar.gzReplace the filenames with your package names; use a single line in PowerShell.
Update and uninstall
- Update: check compatibility and back up, download the target release, then run
./gamex daemon updateusing the new executable; configuration and identity are retained. - Uninstall: run
gamex daemon uninstalland confirm. It removes the service and executable, retaining configuration, identity, and state. - Purge local data: add
--purgewhen uninstalling to delete configuration, identity, and state.
Uninstalling retains Docker containers, images, volumes, and game server data; manage these separately.