Files
Internal-apps/roles/zomboid/tasks/main.yml

45 lines
1.7 KiB
YAML

---
# Project Zomboid dedicated server (danixu86 container, SteamCMD-based, B42-ready).
# Players: zomboid.boxswapper.io:16261 (UDP) - direct connect or in-game browser (PUBLIC=true).
# External prerequisites (NOT managed by this repo):
# - Cloudflare A record zomboid.boxswapper.io -> public IP (grey-cloud, like mc.boxswapper.io)
# - Router port forwards: UDP 16261-16276 + TCP 27015 (RCON) -> 10.10.0.46
# - CHANGED zomboid_admin_password / zomboid_rcon_password in vars.yml before first deploy
- name: Create Project Zomboid data directory
ansible.builtin.file:
path: /opt/apps/zomboid/data
state: directory
mode: '0755'
- name: Deploy Project Zomboid Server
containers.podman.podman_container:
image: "{{ zomboid_image }}"
name: zomboid
env: "{{ zomboid_env_base }}"
restart_policy: always
recreate: true
state: started
volumes:
- /opt/apps/zomboid/data:/home/steam/Zomboid:z
- /usr/share/zoneinfo/America/Denver:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "16261-16276:16261-16276/udp"
- "27015:27015/tcp"
network:
- npm_internal
ip: '{{ zomboid_ip }}'
vars:
zomboid_env_base:
# CACHEDIR fixed to the bind-mounted path so saves/configs/logs persist
CACHEDIR: "/home/steam/Zomboid"
ADMINUSERNAME: "{{ zomboid_admin_username }}"
ADMINPASSWORD: "{{ zomboid_admin_password }}"
RCONPASSWORD: "{{ zomboid_rcon_password }}"
SERVERNAME: "{{ zomboid_servername }}"
DISPLAYNAME: "{{ zomboid_displayname }}"
PUBLIC: "{{ zomboid_public }}"
MEMORY: "{{ zomboid_memory }}"
SERVERPRESET: "{{ zomboid_preset }}"
FORCEUPDATE: "true"
LANG: "en_US.UTF-8"