"vault backup: 2026-03-20 13:05:04 from Flow"
This commit is contained in:
170
21-Server Reference/homelab/stacks/ark/ark.md
Normal file
170
21-Server Reference/homelab/stacks/ark/ark.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# ARK: Survival Evolved Server
|
||||
|
||||
Self-hosted ARK: Survival Evolved dedicated server. Map: **TheIsland**.
|
||||
|
||||
## Access
|
||||
|
||||
- **Game:** `192.168.2.114:7777` (LAN / Tailscale)
|
||||
- **Steam Query:** `192.168.2.114:27015`
|
||||
- **RCON:** `192.168.2.114:27020` (TCP)
|
||||
|
||||
No Tailscale sidecar — ports exposed directly on the host (same pattern as Minecraft).
|
||||
|
||||
## Containers
|
||||
|
||||
| Container | Image | Role |
|
||||
|---|---|---|
|
||||
| `ark_server` | `hermsi/ark-server:latest` | Game server |
|
||||
|
||||
## Compose File
|
||||
|
||||
**Path:** `/ARK_Server/docker-compose.yaml`
|
||||
|
||||
```yaml
|
||||
services:
|
||||
ark:
|
||||
image: hermsi/ark-server:latest
|
||||
container_name: ark_server
|
||||
mem_limit: 10g
|
||||
ports:
|
||||
- "7777:7777/udp"
|
||||
- "7778:7778/udp" # Must be game port +1
|
||||
- "27015:27015/udp" # Steam query / server browser
|
||||
- "27020:27020/tcp" # RCON
|
||||
volumes:
|
||||
- /ARK_Server/data:/app
|
||||
- /ARK_Server/backups:/home/steam/ARK-Backups
|
||||
environment:
|
||||
SESSION_NAME: "Inanis ARK"
|
||||
SERVER_MAP: TheIsland
|
||||
SERVER_PASSWORD: <redacted>
|
||||
ADMIN_PASSWORD: <redacted>
|
||||
MAX_PLAYERS: 20
|
||||
UPDATE_ON_START: "true"
|
||||
BACKUP_ON_STOP: "true"
|
||||
PRE_UPDATE_BACKUP: "true"
|
||||
WARN_ON_STOP: "true"
|
||||
ENABLE_CROSSPLAY: "false"
|
||||
DISABLE_BATTLEYE: "false"
|
||||
# GAME_MOD_IDS: "" # See mods.md — add IDs here when ready
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
## Host Directory Setup
|
||||
|
||||
Run these once before first boot:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /ARK_Server/data /ARK_Server/backups
|
||||
sudo chown -R 1000:1000 /ARK_Server
|
||||
```
|
||||
|
||||
The container runs as the `steam` user (UID 1000). The chown ensures it can write to the bind-mount volumes.
|
||||
|
||||
## Data Layout
|
||||
|
||||
| Path | Contents |
|
||||
|---|---|
|
||||
| `/ARK_Server/data` | Server binaries, world saves, config files |
|
||||
| `/ARK_Server/backups` | Automatic backups (triggered by `BACKUP_ON_STOP`) |
|
||||
|
||||
> **First boot warning:** The server downloads ~30 GB of files from Steam on first startup. This takes a long time. Do not restart the container — just wait.
|
||||
|
||||
## Server Configuration (Multipliers)
|
||||
|
||||
After first boot, edit these two config files directly on the host. They are created by the server on first run.
|
||||
|
||||
### `GameUserSettings.ini`
|
||||
**Path:** `/ARK_Server/data/server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini`
|
||||
|
||||
Add/update these values under the `[ServerSettings]` section:
|
||||
|
||||
```ini
|
||||
[ServerSettings]
|
||||
; Rates — faster and more forgiving, but not trivial
|
||||
TamingSpeedMultiplier=5.0
|
||||
HarvestAmountMultiplier=3.0
|
||||
XPMultiplier=3.0
|
||||
ResourcesRespawnPeriodMultiplier=0.5
|
||||
|
||||
; Survival annoyances — reduced
|
||||
PlayerCharacterFoodDrainMultiplier=0.5
|
||||
PlayerCharacterWaterDrainMultiplier=0.5
|
||||
DinoCharacterFoodDrainMultiplier=0.5
|
||||
|
||||
; Inventory QoL
|
||||
ItemStackSizeMultiplier=2.0
|
||||
|
||||
; Loot
|
||||
SupplyCrateLootQualityMultiplier=1.5
|
||||
```
|
||||
|
||||
**Rationale:**
|
||||
- **5x taming** — vanilla taming is hours-long; 5x is still meaningful but won't eat a whole session
|
||||
- **3x harvest/XP** — fast enough to feel rewarding, slow enough to preserve the grind loop
|
||||
- **0.5x food/water drain** — cuts survival micromanagement in half without eliminating it
|
||||
- **0.5x resource respawn** — resources come back faster so you're not farming across the whole map
|
||||
|
||||
### `Game.ini`
|
||||
**Path:** `/ARK_Server/data/server/ShooterGame/Saved/Config/LinuxServer/Game.ini`
|
||||
|
||||
Add these values under the `[/script/shootergame.shootergamemode]` section:
|
||||
|
||||
```ini
|
||||
[/script/shootergame.shootergamemode]
|
||||
; Breeding — fast enough to do in a session
|
||||
MatingIntervalMultiplier=0.1
|
||||
EggHatchSpeedMultiplier=10.0
|
||||
BabyMatureSpeedMultiplier=20.0
|
||||
|
||||
; Imprinting — scaled proportionally to maturation speed
|
||||
; Rule: BabyCuddleIntervalMultiplier ≈ 1 / BabyMatureSpeedMultiplier
|
||||
; At 20x mature speed, cuddles happen ~every 24 minutes instead of 8 hours
|
||||
BabyCuddleIntervalMultiplier=0.05
|
||||
BabyImprintAmountMultiplier=2.0
|
||||
```
|
||||
|
||||
**Rationale:**
|
||||
- **20x maturation** — a large dino that normally takes 5 real-world days now takes ~6 hours
|
||||
- **0.05x cuddle interval** — keeps the number of cuddles per maturation roughly constant, so full imprinting is still achievable
|
||||
- **2x imprint amount** — each cuddle gives double imprint credit, reducing the number of cuddles needed for 100%
|
||||
- **0.1x mating interval** — vanilla mating cooldown is 18 hours; this reduces it to ~2 hours
|
||||
|
||||
> Restart the server after editing INI files.
|
||||
|
||||
## RCON Usage
|
||||
|
||||
Connect with any RCON client (e.g. RCON Console, mcrcon) to `192.168.2.114:27020` using the admin password.
|
||||
|
||||
Useful commands:
|
||||
```
|
||||
SaveWorld — Force save
|
||||
DoExit — Clean shutdown
|
||||
admincheat AllowPlayerToJoinNoCheck <SteamID> — Whitelist a player
|
||||
listplayers — Show connected players
|
||||
```
|
||||
|
||||
Manual save before stopping the container:
|
||||
```bash
|
||||
docker exec ark_server arkmanager rconcmd "SaveWorld"
|
||||
```
|
||||
|
||||
## Mods
|
||||
|
||||
See [[mods.md]] for the full mod reference and recommended load order.
|
||||
|
||||
To enable mods, set `GAME_MOD_IDS` in the compose file:
|
||||
```yaml
|
||||
GAME_MOD_IDS: "839162288,1999447172,1609138312,..."
|
||||
```
|
||||
|
||||
Mods are downloaded automatically on container start.
|
||||
|
||||
## Notes
|
||||
|
||||
- Uses `hermsi/ark-server` which wraps `arkmanager` internally — use `docker exec ark_server arkmanager <cmd>` for manual operations
|
||||
- `UPDATE_ON_START: true` — pulls the latest server patch on every container start
|
||||
- `BACKUP_ON_STOP: true` + `PRE_UPDATE_BACKUP: true` — automatic backup before updates and on shutdown
|
||||
- Port `7778` is always game port + 1; if you change `7777`, update both
|
||||
- RAM: 10 GB hard limit. ARK base footprint is ~6-8 GB; mods and a populated server will push toward the cap
|
||||
- Storage: allocate 50+ GB for `/ARK_Server/data` — binaries alone are ~30 GB, save data grows over time
|
||||
Reference in New Issue
Block a user