Compare commits

..

2 Commits

Author SHA1 Message Date
2f7f9cb7b9 added .gitignore 2026-10-28 12:27:09 -06:00
21b417b37b added npm back in 2026-10-28 12:16:04 -06:00
4 changed files with 141 additions and 22 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.omo/
.codegraph/

View File

@@ -12,28 +12,8 @@
- images
roles:
- role: packages
tags: [packages]
- role: directories
tags: [directories]
- role: sysctl
tags: [sysctl]
- role: network
tags: [network]
- role: wireguard
tags: [wireguard]
- role: npm
tags: [npm]
- role: gitea
tags: [gitea]
- role: jellyfin
tags: [jellyfin]
- role: wazuh
tags: [wazuh]
# - role: minecraft
# tags: [minecraft]
# - role: 7dtd
# tags: [7dtd]
# - role: zomboid
# tags: [zomboid]
- role: 7dtd
tags: [7dtd]

27
roles/npm/tasks/main.yml Normal file
View File

@@ -0,0 +1,27 @@
---
- name: Create NPM directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- /opt/apps/npm
- /opt/apps/letsencrypt
- name: Deploy Nginx Proxy Manager
containers.podman.podman_container:
image: "docker.io/jc21/nginx-proxy-manager:latest"
name: npm
restart_policy: always
recreate: true
state: started
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- "/opt/apps/npm:/data:z"
- "/opt/apps/letsencrypt:/etc/letsencrypt:z"
network:
- npm_internal
ip: '10.10.0.19'

110
vars.yml Executable file
View File

@@ -0,0 +1,110 @@
## add generic 755 directory for application here
directories:
- /opt/apps/npm
- /opt/apps/7dtd
- /opt/apps/7dtd/data
- /opt/apps/7dtd/serverfiles
images:
- docker.io/jc21/nginx-proxy-manager:latest
- docker.io/vinanrra/7dtd-server:latest
## 7 Days to Die dedicated server (vinanrra/7dtd-server container, LinuxGSM-based)
## PUBLIC server: listed in the in-game server browser; players connect to
## 7dtd.boxswapper.io:26900 (TCP+UDP) and enter the join password (sdtd_server_password).
## Server config is rendered from roles/7dtd/templates/sdtdserver.xml.j2 on every deploy —
## vars.yml is the source of truth for the server config (edits here re-apply on re-run).
## External DNS (not managed here): Cloudflare A record 7dtd.boxswapper.io -> public IP (grey-cloud,
## same as mc.boxswapper.io / zomboid.boxswapper.io). Router MUST forward TCP+UDP 26900, UDP
## 26901-26902 (Steam query) + TCP 8081 (telnet) -> 10.10.0.47.
## VERSION=stable tracks the current public build; the container auto-installs/updates via SteamCMD
## on first start. START_MODE must stay 1 with restart_policy always (see role comment).
sdtd_host: 7dtd.boxswapper.io
sdtd_ip: 10.10.0.47
sdtd_image: docker.io/vinanrra/7dtd-server:latest
sdtd_version: stable
sdtd_start_mode: "1"
sdtd_puid: 1000
sdtd_pgid: 1000
sdtd_timezone: America/Denver
sdtd_backup: "NO"
sdtd_monitor: "YES"
## LinuxGSM config overrides (roles/7dtd/templates/sdtdserver.cfg.j2):
## - querymode=1: this server answers NO A2S query on 26900 (ServerVisibility=0 + SteamNetworking
## disabled), so the default gamedig-based monitor (querymode=2) always fails its query and
## force-restarts the HEALTHY server every ~5 min. Session-only check avoids that loop.
## - telnetpassword mirrors sdtd_telnet_password because LGSM's graceful stop reads
## ${telnetpassword} from its OWN cfg; the XML value is parsed into ${telnetpass} (different
## var) so without this the stop falls back to a hard tmux kill. Keep in sync below.
sdtd_lgsm_querymode: "1"
## CHANGE THESE before first deploy — the server is public and both passwords gate real access:
## sdtd_server_password is the join password players must enter; if it is empty the server has NO
## join password. sdtd_telnet_password guards the 8081/tcp admin console; if empty telnet only
## listens on loopback.
sdtd_server_password: h8zvU3v7WUEgLSYG
sdtd_telnet_password: HDRSEsueredu3rf3
## Change the seed + set sdtd_game_world: RWG for a fresh random-gen world on first boot
## (Navezgane = built-in map, instant start, no generation time).
sdtd_servername: "Boxswapper 7DTD"
sdtd_server_description: "You will die in 7 Days, retard"
sdtd_server_confirmation: "You will die, and you will like it, retard"
sdtd_website_url: ""
sdtd_region: NorthAmericaEast
sdtd_language: English
## Visibility of this server: 2 = public, 1 = only shown to friends, 0 = not listed. As you are never friend of a dedicated server setting this to "1" will only work when the first player connects manually by IP.
sdtd_visibility: "1"
## SteamNetworking disabled = direct connect via forwarded ports (correct setup for this box);
## leave empty ("" ) to allow the Steam relay fallback if port forwards break.
sdtd_disabled_network_protocols: SteamNetworking
sdtd_port: 26900
sdtd_max_players: 10
sdtd_game_mode: GameModeSurvival
sdtd_game_world: RWG
sdtd_worldgen_seed: boxswapper
sdtd_worldgen_size: 10240
sdtd_game_name: Boxswapper
## v3.0+ SandboxCode — the ONLY gameplay tuning v3.x reads. The vars below this block
## (sdtd_difficulty .. sdtd_airdrop_frequency) are REFERENCE-ONLY: v3.0 removed them from
## serverconfig.xml, the template no longer renders them, and the game IGNORES them. Empty
## code = Adventurer defaults. To restore the server's intended tuning generate a code:
## client -> New Game -> Sandbox Options -> match the vars below — Difficulty Nomad, XP 200
## (2x), DayNight 60, DayLight 18, Blood Moon every 7 days, DropOnDeath Everything, Loot 150,
## AirDrop 24h — with BOTH Day/Night Animal Density and Respawn = Default (so the MoreAnimals
## modlet stays in charge of wildlife; XML applies only while density is Default) ->
## copy -> paste here.
sdtd_sandbox_code: ""
## ── REFERENCE VARS FOR SANDBOXCODE GENERATION (not rendered to serverconfig.xml on v3.x) ──
## Difficulty: 0 = Scavenger, 1 = Adventurer, 2 = Nomad, 3 = Warrior, 4 = Survivalist, 5 = Insane
sdtd_difficulty: "1"
sdtd_day_night_length: 60
sdtd_day_light_length: 18
## DropOnDeath: 0 = nothing, 1 = everything, 2 = toolbelt only, 3 = backpack only, 4 = delete all
sdtd_drop_on_death: "1"
## ZombieMove: 0 = walk, 1 = jog, 2 = run, 3 = sprint, 4 = nightmare
sdtd_zombie_move: "0"
sdtd_zombie_move_night: "3"
sdtd_bloodmoon_frequency: 2
sdtd_bloodmoon_enemy_count: 16
sdtd_loot_abundance: 150
sdtd_airdrop_frequency: 24
## PlayerKillingMode: 0 = no killing, 1 = kill allies only, 2 = kill strangers only, 3 = kill everyone
sdtd_player_killing_mode: "3"
sdtd_max_spawned_zombies: 100
sdtd_max_spawn_animals: "200"
## EAC is ON (default protection). EAC blocks CODE mods (Harmony DLL hooks) — that is why it was
## OFF while code mods were deployed. PURE XML data modlets (like MoreAnimals below) carry no DLL
## and work fine with EAC ON; keep "false" only if code mods are ever reinstalled.
sdtd_eac_enabled: "true"
## Game mods deployed: MoreAnimals.zip — pure XML spawn-density patch (roles/7dtd/files/mods).
## Server-side only: clients join vanilla with EAC ON, nothing to install. To re-add/swap a mod:
## drop the zip into roles/7dtd/files/mods/ and list its name here. unarchive only ADDS — it
## never removes, so a mod dropped from this list would keep loading: with an EMPTY list we wipe
## the whole server Mods dir; swapping one mod for another (non-empty list) requires removing the
## retired folder from the box by hand.
sdtd_mods: [MoreAnimals.zip]
sdtd_xp_multiplier: 200
sdtd_telnet_enabled: "true"