Compare commits
5 Commits
5ac9b2fabe
...
2b4844b211
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b4844b211 | ||
|
|
86e1b88d5a | ||
|
|
9e04727b0e | ||
|
|
2c7704b6f9 | ||
|
|
c2d117bd95 |
@@ -27,7 +27,7 @@ zomboid_rcon_port: "27015"
|
||||
zomboid_server_names:
|
||||
vanilla: zomboid
|
||||
modded: moddedjoboid
|
||||
b42revamp: zomboidb42revamp
|
||||
b42revamp: gregboid
|
||||
|
||||
# Mod configuration for modded server
|
||||
# Generated by scripts/steam-workshop-query.py
|
||||
@@ -49,10 +49,10 @@ zomboid_mods:
|
||||
# Removed: UpgradeableStorage (SP-only, B42 MP has hard-coded capacity limits)
|
||||
zomboid_mods_b42revamp:
|
||||
workshop_items: >-
|
||||
3402491515;2529746725;3378285185;3171167894;3635394848;3411888105;3616536783;3635591071;3636241120;3629835761;3618427553;3543229299;3622163276;3634921455;3626823538;2335368829;3580577925;3401134276;3418366499;3624308198;3586216562;3452711271;2757712197;3330403100;2686624983;3409143790;3439305933;3378304610;2503622437;2896041179;2625625421;3590632059;3097650043;2366717227;3077900375;3596827035;3508537032;3630693325;3631572046;2463184726;2447729538;2142622992;3566868353;3539691958;3504401781;3570973322;3614034284;2900580391;3478633453;3001592312;3041122351;3315443103;2799152995;3248388837;2897390033;3379334330;2409333430;3110913021;3287727378;2846036306;3435796523;3447272250;2932547723;3110911330;2971246021;3005903549;3320947974;2942793445;3008795514;2870394916;2952802178;2805630347;3490370700;2772575623;3428008364;2566953935;3413704851;3152529790;2811383142;3592777775;3418252689;3404737883;3631989559;2969343830;3366300557;2962175696;3596903773;3226885926;2937786633;3601417745;2886832936;2932549988;3088951320;3611100835;3409472393;3623784989;3625020432;3138387399;3119788162;2286124931;2866258937;3623919908;2714198296;3628835042;3429790870;3431734923;3577903007;3398874593;2950902979;3420581050;3538760023;3423984426;3396446795;3618557184;2840805724;3437629766;3632610172;3633882960;3307376332;3453676250;3431256608;3475347500;3404956403;3451167732;3281755175;3252451158;3162566044;2684285534;3424309174;3199474685;3483407987;3238830225;3614959302;3351207258;2699828474;3461263912;3322066592;2972289937;2948824747;3624268336;2857762294;2920899878;3572556874;3470426196;3470422050;3432928943;3430172149;3637373250;3044705007;2788256295;2705406713;3554424111;3412105017;3554048011;3635228703;2940354599;3414634809;3627047348;3442862183;2990322197;3394044313;3617854007;3388867450;3532685233;3411695932;3643808082;3413150945;3531611692
|
||||
3402491515;2529746725;3378285185;3171167894;3635394848;3411888105;3616536783;3635591071;3636241120;3629835761;3618427553;3543229299;3622163276;3634921455;3626823538;2335368829;3580577925;3401134276;3418366499;3586216562;3452711271;2757712197;3330403100;2686624983;3409143790;3439305933;3378304610;2503622437;2896041179;2625625421;3590632059;3097650043;2366717227;3077900375;3596827035;3508537032;3630693325;3631572046;2463184726;2447729538;2142622992;3566868353;3539691958;3504401781;3570973322;3614034284;2900580391;3478633453;3001592312;3041122351;3315443103;2799152995;3248388837;2897390033;3379334330;2409333430;3110913021;3287727378;2846036306;3435796523;3447272250;2932547723;3110911330;2971246021;3005903549;3320947974;2942793445;3008795514;2870394916;2952802178;2805630347;3490370700;2772575623;3428008364;2566953935;3413704851;3152529790;2811383142;3592777775;3418252689;3404737883;3631989559;2969343830;3366300557;2962175696;3596903773;3226885926;2937786633;3601417745;2886832936;2932549988;3088951320;3611100835;3409472393;3623784989;3625020432;3138387399;3119788162;2286124931;2866258937;3623919908;2714198296;3628835042;3429790870;3431734923;3577903007;3398874593;2950902979;3420581050;3538760023;3423984426;3396446795;3618557184;2840805724;3437629766;3632610172;3633882960;3307376332;3453676250;3431256608;3475347500;3404956403;3451167732;3281755175;3252451158;3162566044;2684285534;3424309174;3199474685;3483407987;3387222454;3614959302;3351207258;2699828474;3461263912;3322066592;2972289937;2948824747;3624268336;2857762294;2920899878;3572556874;3470426196;3470422050;3432928943;3430172149;3637373250;3044705007;2705406713;3554424111;3412105017;3554048011;3635228703;2940354599;3414634809;3627047348;3442862183;2990322197;3394044313;3617854007;3388867450;3532685233;3411695932;3643808082;3413150945;3531611692
|
||||
# Load order from Steam collection (UpgradeableStorage removed for MP compatibility)
|
||||
mod_ids: >-
|
||||
\MoodleFramework;\NeatUI_Framework;\Optimal;\SPNCC;\SPNCCDetails;\SPNCCDetailsHD;\TombBodyTexNUDE;\Authentic Z - Current;\PROJECTRVInterior42;\RVInteriorExpansion;\RVInteriorExpansionPart2;\RVmilitaryaddon;\damnlib;\04vwTouran;\49powerWagon;\59meteor;\63beetle;\63Type2Van;\65banshee;\66pontiacLeMans;\69charger;\69mini;\69mini_ItalianJob;\69mini_MrBean;\69mini_PitbullSpecial;\73fordFalcon;\73fordFalconPS;\78amgeneralM35A2;\78amgeneralM35A2extra;\78amgeneralM49A2C;\78amgeneralM50A3;\78amgeneralM62;\80manKat1;\82firebird;\82firebirdKITT;\82porsche911;\83amgeneralM923;\83amgeneralM923extra;\84buickElectra;\84cadillacDeVille;\84merc;\84oldsmobile98;\85buickLeSabre;\85chevyCaprice;\85chevyStepVan;\85chevyStepVanexpanded;\86chevyCUCV;\86fordE150;\86fordE150dnd;\86fordE150expanded;\86fordE150mm;\86fordE150pd;\86oshkoshP19A;\87buickRegal;\87fordB700;\88chevyS10;\88toyotaHilux;\89defender;\89trooper;\90bmwE30;\90fordF350ambulance;\90pierceArrow;\91fordLTD;\91fordRanger;\91geoMetro;\91nissan240sx;\91range;\92fordCVPI;\92jeepYJ;\92jeepYJJP18;\92nissanGTR;\93chevySuburban;\93chevySuburbanExpanded;\93fordElgin;\93fordTaurus;\93mustangSSP;\93townCar;\97bushmaster;\98stagea;\99fordCVPI;\KI5trailers;\CargoTrailer_BubbysVariants;\ECTO1;\isoContainers;\tsarslib;\LIAZ 300;\Military_Tool_Kit;\RotatorsLib;\rSemiTruck;\U.S. M998 Humvee by Papa_Chad;\2920899878/ReloadAllMagazines;\BB_WhereAmI;\Buttstroke;\CleanHotBar;\CleanUI;\ClientModsToServer;\CombatText;\ContextMenuIconsCore;\DG_MIVehicles;\EffortlessTowing;\EQUIPMENT_UI;\EURY_BUGS;\FixBlowTorchPropaneTank;\flipvehicleplustrailer;\ForceSync42;\FWOBenchPress&Treadmill;\FWOFitnessWorkoutOverhaul;\GenRange;\HereGoesTheSun;\hf_point_blank;\HideDebugMenu;\HNDLBR_Preppers;\LongStandingMetalConstructions;\MBFTiming;\MiniHealthPanel;\ModernStatus;\ModLoadOrderSorter_b42;\ChuckleberryFinnAlertSystem;\ModManager;\MoreDescriptionForTraits4213;\NoLighterNeeded;\OCsPacking;\phunlib;\phunzones;\ProgressiveMultihit;\ProgressiveMultihit42.13patch;\ProximityInventory4213;\RealisticDash;\REORDER_CONTAINERS;\StarlitLibrary;\RepairableWindows;\SleepWithFriends;\SmokingSoundsOverhaul;\errorMagnifier;\SwapIt;\TMRRemoveMumble42;\trunk_organizer;\TVRadio_ReInvented;\UdderlyUpToDate_B42.13;\UnseasonalWeather;\VehicleRepairOverhaul;\VehicleSalvageOverhaulB42;\ArcheryNexus;\EFTBP;\FH;\GanydeBielovzki's Frockin Shirts n Ties;\GanydeBielovzki's Frockin Splendor! Vol.2;\GanydeBielovzki's Frockin Splendor! Vol.3;\GanydeBielovzki's Frockin Splendor! Vol.4;\GanydeBielovzki's Frockin Splendor! Vol.5;\GanydeBielovzki's Frockin Wiseguys;\H_E_C_U;\KATTAJ1_ClothesCore;\SapphCooking_B42;\SpnCloth;\TombBody;\TombWardrobeALT;\VanillaGearExpanded;\zReApoModernArmorB42;\Real Firearms;\2788256295/ammomaker;\AatheomEMVFSM;\amclub;\FunctionalGutters;\GanydeBielovzki's Frockin Splendor!;\grasslands;\HGOEXP;\KATTAJ1_Military;\Ladders42131;\LKB42;\LNB42;\LongHammer;\MoreDamagedObjects;\N&CsNarcotics;\phunsprinters;\phunsprintersui;\Project_Seasons_B41;\RebalancedPropMoving;\RepairAnyClothes;\RET_LethalStealth;\RiskyInspectWeapon;\ShelterHold_Beehive;\SimpleOverhaulTraitsAndOccupations;\SkillRecoveryJournal;\SPNCCFaces;\SpnHair;\TrueMoozic;\TMMMB42.13+;\TombBodyCompat;\TombBodyCustom;\TrueMusicJukebox;\TrueMusicRadio42;\TrueSmoking;\VanillaFoodsExpanded;\VanillaVehiclesAnimated;\WorkshopUpdateCheck;\zReBetterLockpickingb42mp;\CACustomWoodWeight
|
||||
\MoodleFramework;\NeatUI_Framework;\Optimal;\SPNCC;\SPNCCDetails;\SPNCCDetailsHD;\TombBodyTexNUDE;\Authentic Z - Current;\PROJECTRVInterior42;\RVInteriorExpansion;\RVInteriorExpansionPart2;\RVmilitaryaddon;\damnlib;\04vwTouran;\49powerWagon;\59meteor;\63beetle;\63Type2Van;\65banshee;\66pontiacLeMans;\69charger;\69mini;\69mini_ItalianJob;\69mini_MrBean;\69mini_PitbullSpecial;\73fordFalcon;\73fordFalconPS;\78amgeneralM35A2;\78amgeneralM35A2extra;\78amgeneralM49A2C;\78amgeneralM50A3;\78amgeneralM62;\80manKat1;\82firebird;\82firebirdKITT;\82porsche911;\83amgeneralM923;\83amgeneralM923extra;\84buickElectra;\84cadillacDeVille;\84merc;\84oldsmobile98;\85buickLeSabre;\85chevyCaprice;\85chevyStepVan;\85chevyStepVanexpanded;\86chevyCUCV;\86fordE150;\86fordE150dnd;\86fordE150expanded;\86fordE150mm;\86fordE150pd;\86oshkoshP19A;\87buickRegal;\87fordB700;\88chevyS10;\88toyotaHilux;\89defender;\89trooper;\90bmwE30;\90fordF350ambulance;\90pierceArrow;\91fordLTD;\91fordRanger;\91geoMetro;\91nissan240sx;\91range;\92fordCVPI;\92jeepYJ;\92jeepYJJP18;\92nissanGTR;\93chevySuburban;\93chevySuburbanExpanded;\93fordElgin;\93fordTaurus;\93mustangSSP;\93townCar;\97bushmaster;\98stagea;\99fordCVPI;\KI5trailers;\CargoTrailer_BubbysVariants;\ECTO1;\isoContainers;\tsarslib;\LIAZ 300;\Military_Tool_Kit;\RotatorsLib;\rSemiTruck;\U.S. M998 Humvee by Papa_Chad;\2920899878/ReloadAllMagazines;\BB_WhereAmI;\Buttstroke;\CleanHotBar;\CleanUI;\ClientModsToServer;\CombatText;\ContextMenuIconsCore;\DG_MIVehicles;\EffortlessTowing;\EQUIPMENT_UI;\EURY_BUGS;\FixBlowTorchPropaneTank;\flipvehicleplustrailer;\ForceSync42;\FWOBenchPress&Treadmill;\FWOFitnessWorkoutOverhaul;\GenRange;\HereGoesTheSun;\hf_point_blank;\HideDebugMenu;\HNDLBR_Preppers;\LongStandingMetalConstructions;\MBFTiming;\MiniHealthPanel;\ModernStatus;\ModLoadOrderSorter_b42;\ChuckleberryFinnAlertSystem;\ModManager;\MoreDescriptionForTraits4213;\NoLighterNeeded;\OCsPacking;\phunlib;\phunzones;\ProgressiveMultihit;\ProgressiveMultihit42.13patch;\RealisticDash;\REORDER_CONTAINERS;\StarlitLibrary;\RepairableWindows;\SleepWithFriends;\SmokingSoundsOverhaul;\errorMagnifier;\SwapIt;\TMRRemoveMumble42;\trunk_organizer;\TVRadio_ReInvented;\UdderlyUpToDate_B42.13;\UnseasonalWeather;\VehicleRepairOverhaul;\VehicleSalvageOverhaulB42;\ArcheryNexus;\EFTBP;\FH;\GanydeBielovzki's Frockin Shirts n Ties;\GanydeBielovzki's Frockin Splendor! Vol.2;\GanydeBielovzki's Frockin Splendor! Vol.3;\GanydeBielovzki's Frockin Splendor! Vol.4;\GanydeBielovzki's Frockin Splendor! Vol.5;\GanydeBielovzki's Frockin Wiseguys;\H_E_C_U;\KATTAJ1_ClothesCore;\SapphCooking_B42;\SpnCloth;\TombBody;\TombWardrobeALT;\VanillaGearExpanded;\zReApoModernArmorB42;\B42RainsFirearmsAndGunPartsExpanded4213;\AatheomEMVFSM;\amclub;\FunctionalGutters;\GanydeBielovzki's Frockin Splendor!;\grasslands;\HGOEXP;\KATTAJ1_Military;\Ladders42131;\LKB42;\LNB42;\LongHammer;\MoreDamagedObjects;\N&CsNarcotics;\phunsprinters;\phunsprintersui;\Project_Seasons_B41;\RebalancedPropMoving;\RepairAnyClothes;\RET_LethalStealth;\RiskyInspectWeapon;\ShelterHold_Beehive;\SimpleOverhaulTraitsAndOccupations;\SkillRecoveryJournal;\SPNCCFaces;\SpnHair;\TrueMoozic;\TMMMB42.13+;\TombBodyCompat;\TombBodyCustom;\TrueMusicJukebox;\TrueMusicRadio42;\TrueSmoking;\VanillaFoodsExpanded;\VanillaVehiclesAnimated;\WorkshopUpdateCheck;\zReBetterLockpickingb42mp;\CACustomWoodWeight
|
||||
|
||||
# Map configuration per server mode
|
||||
zomboid_maps:
|
||||
|
||||
@@ -56,4 +56,4 @@
|
||||
- name: create systemd startup job for gregtime
|
||||
include_tasks: podman/systemd-generate.yml
|
||||
vars:
|
||||
container_name: gregtime
|
||||
container_name: gregtime
|
||||
|
||||
@@ -12,6 +12,84 @@
|
||||
- "{{ zomboid_path }}/server"
|
||||
- "{{ zomboid_path }}/data"
|
||||
- "{{ zomboid_path }}/scripts"
|
||||
- "{{ zomboid_path }}/logs"
|
||||
|
||||
- name: create podman bin directory
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: "{{ podman_home }}/bin"
|
||||
state: directory
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: deploy zomboid world reset script
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/world-reset.sh.j2
|
||||
dest: "{{ podman_home }}/bin/zomboid-world-reset.sh"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: deploy zomboid world reset path unit
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/zomboid-world-reset.path.j2
|
||||
dest: "{{ podman_home }}/.config/systemd/user/zomboid-world-reset.path"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0644'
|
||||
notify: reload zomboid systemd
|
||||
|
||||
- name: deploy zomboid world reset service unit
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/zomboid-world-reset.service.j2
|
||||
dest: "{{ podman_home }}/.config/systemd/user/zomboid-world-reset.service"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0644'
|
||||
notify: reload zomboid systemd
|
||||
|
||||
- name: deploy zomboid stats script
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/zomboid-stats.sh.j2
|
||||
dest: "{{ podman_home }}/bin/zomboid-stats.sh"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: deploy zomboid stats service unit
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/zomboid-stats.service.j2
|
||||
dest: "{{ podman_home }}/.config/systemd/user/zomboid-stats.service"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0644'
|
||||
notify: reload zomboid systemd
|
||||
|
||||
- name: deploy zomboid stats timer unit
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: zomboid/zomboid-stats.timer.j2
|
||||
dest: "{{ podman_home }}/.config/systemd/user/zomboid-stats.timer"
|
||||
owner: "{{ podman_user }}"
|
||||
group: "{{ podman_user }}"
|
||||
mode: '0644'
|
||||
notify: reload zomboid systemd
|
||||
|
||||
- name: enable zomboid stats timer
|
||||
become: true
|
||||
become_user: "{{ podman_user }}"
|
||||
ansible.builtin.systemd:
|
||||
name: zomboid-stats.timer
|
||||
scope: user
|
||||
enabled: true
|
||||
state: started
|
||||
daemon_reload: true
|
||||
|
||||
- name: copy zomboid entrypoint script
|
||||
become: true
|
||||
@@ -190,9 +268,14 @@
|
||||
- zomboid_ini_stat.stat.exists
|
||||
tags: zomboid-conf
|
||||
|
||||
# World reset tasks REMOVED - too dangerous to have in automation
|
||||
# To reset the world manually:
|
||||
# 1. Stop the server: systemctl --user stop zomboid.service
|
||||
# 2. Delete saves: rm -rf /home/podman/.local/share/volumes/zomboid/data/Saves
|
||||
# 3. Delete db: rm -rf /home/podman/.local/share/volumes/zomboid/data/db
|
||||
# 4. Start the server: systemctl --user start zomboid.service
|
||||
# World reset is now triggered via Discord bot -> systemd path unit
|
||||
# See zomboid-world-reset.path and zomboid-world-reset.service
|
||||
- name: enable zomboid world reset path unit
|
||||
become: true
|
||||
become_user: "{{ podman_user }}"
|
||||
ansible.builtin.systemd:
|
||||
name: zomboid-world-reset.path
|
||||
scope: user
|
||||
enabled: true
|
||||
state: started
|
||||
daemon_reload: true
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
- import_tasks: containers/debyltech/fulfillr.yml
|
||||
vars:
|
||||
image: "git.debyl.io/debyltech/fulfillr:20260109.0522"
|
||||
image: git.debyl.io/debyltech/fulfillr:20260123.0109
|
||||
tags: debyltech, fulfillr
|
||||
|
||||
- import_tasks: containers/debyltech/uptime-kuma.yml
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
- import_tasks: containers/home/gregtime.yml
|
||||
vars:
|
||||
image: localhost/greg-time-bot:1.9.0
|
||||
image: localhost/greg-time-bot:2.0.8
|
||||
tags: gregtime
|
||||
|
||||
- import_tasks: containers/home/zomboid.yml
|
||||
|
||||
@@ -20,7 +20,18 @@
|
||||
"phone": "6034160859",
|
||||
"state": "NH",
|
||||
"street1": "976 Route 103",
|
||||
"street2": "Unit 509",
|
||||
"street2": "Unit 95",
|
||||
"zip": "03255"
|
||||
}
|
||||
},
|
||||
"outreach": {
|
||||
"outreach_table": "debyltech-outreach-prod",
|
||||
"unsubscribe_table": "debyltech-unsubscribe-prod",
|
||||
"email_log_table": "debyltech-email-log-prod",
|
||||
"reviews_table": "debyltech-reviews-prod",
|
||||
"hmac_secret_arn": "{{ fulfillr_hmac_arn }}",
|
||||
"ses_from_email": "noreply@debyltech.com",
|
||||
"ses_reply_to": "support@debyltech.com",
|
||||
"ses_region": "us-east-1",
|
||||
"base_url": "https://debyltech.com"
|
||||
}
|
||||
}
|
||||
57
ansible/roles/podman/templates/zomboid/world-reset.sh.j2
Normal file
57
ansible/roles/podman/templates/zomboid/world-reset.sh.j2
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
# Zomboid World Reset Script
|
||||
# Triggered by systemd path unit when discord bot requests reset
|
||||
|
||||
set -e
|
||||
|
||||
LOGFILE="{{ podman_home }}/.local/share/volumes/zomboid/logs/world-reset.log"
|
||||
TRIGGER_FILE="{{ podman_home }}/.local/share/volumes/gregtime/data/zomboid-reset.trigger"
|
||||
SERVER_NAME="{{ zomboid_server_names[zomboid_server_mode] }}"
|
||||
SAVES_PATH="{{ podman_home }}/.local/share/volumes/zomboid/data/Saves/Multiplayer/${SERVER_NAME}"
|
||||
DB_PATH="{{ podman_home }}/.local/share/volumes/zomboid/data/db/${SERVER_NAME}.db"
|
||||
|
||||
log() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOGFILE"
|
||||
}
|
||||
|
||||
# Ensure XDG_RUNTIME_DIR is set for systemctl --user
|
||||
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
||||
|
||||
log "World reset triggered"
|
||||
|
||||
# Read requester info from trigger file if available
|
||||
# Note: Must use podman unshare because file is owned by container's UID (232071)
|
||||
if podman unshare test -f "$TRIGGER_FILE"; then
|
||||
REQUESTER=$(podman unshare cat "$TRIGGER_FILE")
|
||||
log "Requested by: $REQUESTER"
|
||||
podman unshare rm -f "$TRIGGER_FILE"
|
||||
fi
|
||||
|
||||
# Stop server
|
||||
log "Stopping zomboid service..."
|
||||
systemctl --user stop zomboid.service || true
|
||||
sleep 5
|
||||
|
||||
# Delete world (using podman unshare to work within user namespace)
|
||||
log "Deleting world saves at: $SAVES_PATH"
|
||||
if [[ -d "$SAVES_PATH" ]]; then
|
||||
podman unshare rm -rf "$SAVES_PATH"
|
||||
log "World saves deleted"
|
||||
else
|
||||
log "No world saves found at $SAVES_PATH"
|
||||
fi
|
||||
|
||||
# Delete player database
|
||||
log "Deleting player database at: $DB_PATH"
|
||||
if [[ -f "$DB_PATH" ]]; then
|
||||
podman unshare rm -f "$DB_PATH"
|
||||
log "Player database deleted"
|
||||
else
|
||||
log "No database found at $DB_PATH"
|
||||
fi
|
||||
|
||||
# Start server
|
||||
log "Starting zomboid service..."
|
||||
systemctl --user start zomboid.service
|
||||
|
||||
log "World reset complete - new world will generate on first connection"
|
||||
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Write Zomboid container stats to file
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart={{ podman_home }}/bin/zomboid-stats.sh
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
# Write zomboid container stats to file for gregtime to read
|
||||
podman stats --no-stream --format json zomboid 2>/dev/null > {{ gregtime_path }}/data/zomboid-stats.json || true
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Update Zomboid container stats every 30 seconds
|
||||
|
||||
[Timer]
|
||||
OnBootSec=30s
|
||||
OnUnitActiveSec=30s
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Watch for Zomboid world reset trigger
|
||||
|
||||
[Path]
|
||||
PathExists={{ podman_home }}/.local/share/volumes/gregtime/data/zomboid-reset.trigger
|
||||
Unit=zomboid-world-reset.service
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Zomboid World Reset Service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart={{ podman_home }}/bin/zomboid-world-reset.sh
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
Binary file not shown.
Reference in New Issue
Block a user