uptime-kuma: add uptime_kuma_enabled flag and make monitoring blocks inert

Removing the credentials would otherwise break these playbooks mid-deploy: they
template uptime_kuma_password with no assert to stop them first. 100 tasks are
now guarded by uptime_kuma_enabled (false), so deployments run normally and the
monitoring sections skip. A further 28 tasks were already self-guarding on
monitor_setup/push_url being defined; verified that a skipped task's registered
variable makes those skip cleanly rather than error.

The blocks are kept on purpose — the health-check logic is the durable part and
should be rewired to whatever replaces Uptime Kuma.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
counterweight 2026-09-11 22:43:55 +02:00
parent 80c9e6f3e3
commit 2dabc6ad62
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
15 changed files with 240 additions and 0 deletions

View file

@ -2,3 +2,8 @@ new_user: counterweight
ssh_port: 22 ssh_port: 22
allow_ssh_from: "any" allow_ssh_from: "any"
root_domain: contrapeso.xyz root_domain: contrapeso.xyz
# Uptime Kuma was decommissioned on 2026-09-11. The monitoring blocks in the
# playbooks are kept deliberately — the check logic is meant to be rewired to
# whatever replaces it. This flag keeps them inert until then. See archive/uptime_kuma/.
uptime_kuma_enabled: false

View file

@ -2,3 +2,8 @@ new_user: counterweight
ssh_port: 22 ssh_port: 22
allow_ssh_from: "any" allow_ssh_from: "any"
root_domain: contrapeso.xyz root_domain: contrapeso.xyz
# Uptime Kuma was decommissioned on 2026-09-11. The monitoring blocks in the
# playbooks are kept deliberately — the check logic is meant to be rewired to
# whatever replaces it. This flag keeps them inert until then. See archive/uptime_kuma/.
uptime_kuma_enabled: false

View file

@ -439,7 +439,18 @@
debug: debug:
msg: "Bitcoin Knots RPC is {{ 'available' if rpc_check.status == 200 else 'not yet available' }}" msg: "Bitcoin Knots RPC is {{ 'available' if rpc_check.status == 200 else 'not yet available' }}"
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Bitcoin Knots health check and push script - name: Create Bitcoin Knots health check and push script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/bitcoin-knots-healthcheck-push.sh dest: /usr/local/bin/bitcoin-knots-healthcheck-push.sh
content: | content: |
@ -534,6 +545,7 @@
mode: '0644' mode: '0644'
- name: Create systemd service for Bitcoin Knots health check - name: Create systemd service for Bitcoin Knots health check
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /etc/systemd/system/bitcoin-knots-healthcheck.service dest: /etc/systemd/system/bitcoin-knots-healthcheck.service
content: | content: |
@ -566,6 +578,7 @@
state: started state: started
- name: Create Uptime Kuma push monitor setup script for Bitcoin Knots - name: Create Uptime Kuma push monitor setup script for Bitcoin Knots
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -655,6 +668,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -667,6 +681,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_bitcoin_knots_monitor.py command: python3 /tmp/setup_bitcoin_knots_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -707,6 +722,7 @@
when: uptime_kuma_push_url | default('') != '' when: uptime_kuma_push_url | default('') != ''
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:
@ -718,6 +734,7 @@
handlers: handlers:
- name: Restart bitcoind - name: Restart bitcoind
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: bitcoind name: bitcoind
state: restarted state: restarted
@ -794,6 +811,7 @@
ignore_errors: yes ignore_errors: yes
- name: Display public endpoint - name: Display public endpoint
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: "Bitcoin P2P public endpoint: {{ ansible_host }}:{{ bitcoin_p2p_port }}" msg: "Bitcoin P2P public endpoint: {{ ansible_host }}:{{ bitcoin_p2p_port }}"
@ -801,6 +819,7 @@
# Uptime Kuma TCP Monitor for Public P2P # Uptime Kuma TCP Monitor for Public P2P
# =========================================== # ===========================================
- name: Create Uptime Kuma TCP monitor setup script for Bitcoin P2P - name: Create Uptime Kuma TCP monitor setup script for Bitcoin P2P
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -873,6 +892,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for TCP monitor setup - name: Create temporary config for TCP monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -887,6 +907,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma TCP monitor setup - name: Run Uptime Kuma TCP monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_bitcoin_p2p_tcp_monitor.py command: python3 /tmp/setup_bitcoin_p2p_tcp_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -900,6 +921,7 @@
when: tcp_monitor_setup.stdout is defined when: tcp_monitor_setup.stdout is defined
- name: Clean up TCP monitor temporary files - name: Clean up TCP monitor temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -206,7 +206,18 @@
# =========================================== # ===========================================
# Health Check Script + Systemd Timer # Health Check Script + Systemd Timer
# =========================================== # ===========================================
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create DATUM Gateway health check script - name: Create DATUM Gateway health check script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/datum-gateway-healthcheck-push.sh dest: /usr/local/bin/datum-gateway-healthcheck-push.sh
content: | content: |
@ -287,6 +298,7 @@
daemon_reload: yes daemon_reload: yes
- name: Enable and start datum-gateway health check timer - name: Enable and start datum-gateway health check timer
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: datum-gateway-healthcheck.timer name: datum-gateway-healthcheck.timer
enabled: yes enabled: yes
@ -296,6 +308,7 @@
# Uptime Kuma Push Monitor Setup # Uptime Kuma Push Monitor Setup
# =========================================== # ===========================================
- name: Create Uptime Kuma push monitor setup script for DATUM Gateway - name: Create Uptime Kuma push monitor setup script for DATUM Gateway
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -396,6 +409,7 @@
mode: "0755" mode: "0755"
- name: Create temporary config for push monitor setup - name: Create temporary config for push monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -408,6 +422,7 @@
mode: "0644" mode: "0644"
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_datum_gateway_monitor.py command: python3 /tmp/setup_datum_gateway_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -421,6 +436,7 @@
when: monitor_setup.stdout is defined when: monitor_setup.stdout is defined
- name: Read push URL from file - name: Read push URL from file
when: uptime_kuma_enabled | default(false)
slurp: slurp:
src: /tmp/datum_gateway_push_url.txt src: /tmp/datum_gateway_push_url.txt
delegate_to: localhost delegate_to: localhost
@ -442,6 +458,7 @@
notify: Restart datum-gateway health check timer notify: Restart datum-gateway health check timer
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:
@ -460,6 +477,7 @@
daemon_reload: yes daemon_reload: yes
- name: Restart datum-gateway health check timer - name: Restart datum-gateway health check timer
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: datum-gateway-healthcheck.timer name: datum-gateway-healthcheck.timer
state: restarted state: restarted
@ -539,6 +557,7 @@
msg: "{{ caddy_reload.stdout_lines + caddy_reload.stderr_lines }}" msg: "{{ caddy_reload.stdout_lines + caddy_reload.stderr_lines }}"
- name: Display DATUM Gateway dashboard URL - name: Display DATUM Gateway dashboard URL
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: "DATUM Gateway dashboard: https://{{ datum_gateway_domain }}" msg: "DATUM Gateway dashboard: https://{{ datum_gateway_domain }}"
@ -546,6 +565,7 @@
# Uptime Kuma HTTP Monitor for Public Dashboard # Uptime Kuma HTTP Monitor for Public Dashboard
# =========================================== # ===========================================
- name: Create Uptime Kuma HTTP monitor setup script for DATUM dashboard - name: Create Uptime Kuma HTTP monitor setup script for DATUM dashboard
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -621,6 +641,7 @@
mode: "0755" mode: "0755"
- name: Create temporary config for HTTP monitor - name: Create temporary config for HTTP monitor
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -634,6 +655,7 @@
mode: "0644" mode: "0644"
- name: Run Uptime Kuma HTTP monitor setup - name: Run Uptime Kuma HTTP monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_datum_http_monitor.py command: python3 /tmp/setup_datum_http_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -647,6 +669,7 @@
when: http_monitor_setup.stdout is defined when: http_monitor_setup.stdout is defined
- name: Clean up HTTP monitor temporary files - name: Clean up HTTP monitor temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:
@ -733,6 +756,7 @@
ignore_errors: yes ignore_errors: yes
- name: Display public Stratum endpoint - name: Display public Stratum endpoint
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: "DATUM Stratum public endpoint: {{ ansible_host }}:{{ datum_gateway_stratum_port }}" msg: "DATUM Stratum public endpoint: {{ ansible_host }}:{{ datum_gateway_stratum_port }}"
@ -740,6 +764,7 @@
# Uptime Kuma TCP Monitor for Public Stratum # Uptime Kuma TCP Monitor for Public Stratum
# =========================================== # ===========================================
- name: Create Uptime Kuma TCP monitor setup script for Stratum - name: Create Uptime Kuma TCP monitor setup script for Stratum
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -816,6 +841,7 @@
mode: "0755" mode: "0755"
- name: Create temporary config for Stratum TCP monitor - name: Create temporary config for Stratum TCP monitor
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -830,6 +856,7 @@
mode: "0644" mode: "0644"
- name: Run Uptime Kuma TCP monitor setup - name: Run Uptime Kuma TCP monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_datum_stratum_tcp_monitor.py command: python3 /tmp/setup_datum_stratum_tcp_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -843,6 +870,7 @@
when: tcp_monitor_setup.stdout is defined when: tcp_monitor_setup.stdout is defined
- name: Clean up Stratum TCP monitor temporary files - name: Clean up Stratum TCP monitor temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -147,7 +147,18 @@
register: runner_active register: runner_active
changed_when: false changed_when: false
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Assert runner is running - name: Assert runner is running
when: uptime_kuma_enabled | default(false)
assert: assert:
that: that:
- runner_active.stdout == "active" - runner_active.stdout == "active"
@ -155,6 +166,7 @@
# ── 10. Set up Uptime Kuma push monitor ──────────────────────────── # ── 10. Set up Uptime Kuma push monitor ────────────────────────────
- name: Create Uptime Kuma push monitor setup script - name: Create Uptime Kuma push monitor setup script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /tmp/setup_forgejo_runner_monitor.py dest: /tmp/setup_forgejo_runner_monitor.py
content: | content: |
@ -238,6 +250,7 @@
become: no become: no
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: > command: >
{{ ansible_playbook_python }} {{ ansible_playbook_python }}
/tmp/setup_forgejo_runner_monitor.py /tmp/setup_forgejo_runner_monitor.py
@ -256,10 +269,12 @@
changed_when: false changed_when: false
- name: Parse monitor setup result - name: Parse monitor setup result
when: uptime_kuma_enabled | default(false)
set_fact: set_fact:
monitor_info_parsed: "{{ monitor_setup_result.stdout | from_json }}" monitor_info_parsed: "{{ monitor_setup_result.stdout | from_json }}"
- name: Set push URL - name: Set push URL
when: uptime_kuma_enabled | default(false)
set_fact: set_fact:
uptime_kuma_push_url: "{{ uptime_kuma_api_url }}/api/push/{{ monitor_info_parsed.push_token }}" uptime_kuma_push_url: "{{ uptime_kuma_api_url }}/api/push/{{ monitor_info_parsed.push_token }}"
@ -272,6 +287,7 @@
mode: '0755' mode: '0755'
- name: Create forgejo-runner healthcheck script - name: Create forgejo-runner healthcheck script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: "{{ healthcheck_script_path }}" dest: "{{ healthcheck_script_path }}"
content: | content: |
@ -385,6 +401,7 @@
Timeout: {{ healthcheck_timeout_seconds }}s Timeout: {{ healthcheck_timeout_seconds }}s
- name: Clean up temporary monitor setup script - name: Clean up temporary monitor setup script
when: uptime_kuma_enabled | default(false)
file: file:
path: /tmp/setup_forgejo_runner_monitor.py path: /tmp/setup_forgejo_runner_monitor.py
state: absent state: absent

View file

@ -118,7 +118,18 @@
- name: Reload Caddy to apply new config - name: Reload Caddy to apply new config
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for Forgejo - name: Create Uptime Kuma monitor setup script for Forgejo
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -193,6 +204,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -206,6 +218,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_forgejo_monitor.py command: python3 /tmp/setup_forgejo_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -214,6 +227,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -259,7 +259,18 @@
debug: debug:
msg: "Fulcrum service is {{ 'running' if fulcrum_service_status.status.ActiveState == 'active' else 'not running' }}" msg: "Fulcrum service is {{ 'running' if fulcrum_service_status.status.ActiveState == 'active' else 'not running' }}"
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Fulcrum health check and push script - name: Create Fulcrum health check and push script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/fulcrum-healthcheck-push.sh dest: /usr/local/bin/fulcrum-healthcheck-push.sh
content: | content: |
@ -332,6 +343,7 @@
mode: '0644' mode: '0644'
- name: Create systemd service for Fulcrum health check - name: Create systemd service for Fulcrum health check
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /etc/systemd/system/fulcrum-healthcheck.service dest: /etc/systemd/system/fulcrum-healthcheck.service
content: | content: |
@ -364,6 +376,7 @@
state: started state: started
- name: Create Uptime Kuma push monitor setup script for Fulcrum - name: Create Uptime Kuma push monitor setup script for Fulcrum
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -453,6 +466,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -465,6 +479,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_fulcrum_monitor.py command: python3 /tmp/setup_fulcrum_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -505,6 +520,7 @@
when: uptime_kuma_push_url | default('') != '' when: uptime_kuma_push_url | default('') != ''
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:
@ -518,6 +534,7 @@
handlers: handlers:
- name: Restart fulcrum - name: Restart fulcrum
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: fulcrum name: fulcrum
state: restarted state: restarted
@ -593,6 +610,7 @@
ignore_errors: yes ignore_errors: yes
- name: Display public endpoint - name: Display public endpoint
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: "Fulcrum SSL public endpoint: {{ ansible_host }}:{{ fulcrum_ssl_port }}" msg: "Fulcrum SSL public endpoint: {{ ansible_host }}:{{ fulcrum_ssl_port }}"
@ -600,6 +618,7 @@
# Uptime Kuma TCP Monitor for Public SSL Port # Uptime Kuma TCP Monitor for Public SSL Port
# =========================================== # ===========================================
- name: Create Uptime Kuma TCP monitor setup script for Fulcrum SSL - name: Create Uptime Kuma TCP monitor setup script for Fulcrum SSL
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -672,6 +691,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for TCP monitor setup - name: Create temporary config for TCP monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -686,6 +706,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma TCP monitor setup - name: Run Uptime Kuma TCP monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_fulcrum_ssl_tcp_monitor.py command: python3 /tmp/setup_fulcrum_ssl_tcp_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -699,6 +720,7 @@
when: tcp_monitor_setup.stdout is defined when: tcp_monitor_setup.stdout is defined
- name: Clean up TCP monitor temporary files - name: Clean up TCP monitor temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -264,7 +264,18 @@
become: yes become: yes
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for Headscale - name: Create Uptime Kuma monitor setup script for Headscale
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -339,6 +350,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -352,6 +364,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_headscale_monitor.py command: python3 /tmp/setup_headscale_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -360,6 +373,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -181,7 +181,18 @@
- name: Reload Caddy to apply new config - name: Reload Caddy to apply new config
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for LNBits - name: Create Uptime Kuma monitor setup script for LNBits
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -256,6 +267,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -269,6 +281,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_lnbits_monitor.py command: python3 /tmp/setup_lnbits_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -277,6 +290,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -139,7 +139,18 @@
msg: "Memos is running on port {{ memos_port }}. Access via Tailscale at http://{{ memos_tailscale_hostname }}:{{ memos_port }}" msg: "Memos is running on port {{ memos_port }}. Access via Tailscale at http://{{ memos_tailscale_hostname }}:{{ memos_port }}"
handlers: handlers:
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Restart memos - name: Restart memos
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: memos name: memos
state: restarted state: restarted
@ -196,6 +207,7 @@
command: systemctl reload caddy command: systemctl reload caddy
- name: Create Uptime Kuma monitor setup script for Memos - name: Create Uptime Kuma monitor setup script for Memos
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -275,6 +287,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -288,6 +301,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_memos_monitor.py command: python3 /tmp/setup_memos_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -296,6 +310,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -226,7 +226,18 @@
delay: 5 delay: 5
ignore_errors: yes ignore_errors: yes
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Display deployment status - name: Display deployment status
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: msg:
- "Mempool deployment complete!" - "Mempool deployment complete!"
@ -239,6 +250,7 @@
# Health Check Scripts for Uptime Kuma Push Monitors # Health Check Scripts for Uptime Kuma Push Monitors
# =========================================== # ===========================================
- name: Create Mempool MariaDB health check script - name: Create Mempool MariaDB health check script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/mempool-mariadb-healthcheck-push.sh dest: /usr/local/bin/mempool-mariadb-healthcheck-push.sh
content: | content: |
@ -273,6 +285,7 @@
mode: '0755' mode: '0755'
- name: Create Mempool backend health check script - name: Create Mempool backend health check script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/mempool-backend-healthcheck-push.sh dest: /usr/local/bin/mempool-backend-healthcheck-push.sh
content: | content: |
@ -307,6 +320,7 @@
mode: '0755' mode: '0755'
- name: Create Mempool frontend health check script - name: Create Mempool frontend health check script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: /usr/local/bin/mempool-frontend-healthcheck-push.sh dest: /usr/local/bin/mempool-frontend-healthcheck-push.sh
content: | content: |
@ -396,6 +410,7 @@
daemon_reload: yes daemon_reload: yes
- name: Enable and start health check timers - name: Enable and start health check timers
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: "mempool-{{ item }}-healthcheck.timer" name: "mempool-{{ item }}-healthcheck.timer"
enabled: yes enabled: yes
@ -409,6 +424,7 @@
# Uptime Kuma Push Monitor Setup # Uptime Kuma Push Monitor Setup
# =========================================== # ===========================================
- name: Create Uptime Kuma push monitor setup script for Mempool - name: Create Uptime Kuma push monitor setup script for Mempool
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -492,6 +508,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -507,6 +524,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_mempool_monitors.py command: python3 /tmp/setup_mempool_monitors.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -520,6 +538,7 @@
when: monitor_setup.stdout is defined when: monitor_setup.stdout is defined
- name: Read push URLs from file - name: Read push URLs from file
when: uptime_kuma_enabled | default(false)
slurp: slurp:
src: /tmp/mempool_push_urls.yml src: /tmp/mempool_push_urls.yml
delegate_to: localhost delegate_to: localhost
@ -573,6 +592,7 @@
when: push_urls is defined when: push_urls is defined
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:
@ -637,6 +657,7 @@
state: reloaded state: reloaded
- name: Display Mempool URL - name: Display Mempool URL
when: uptime_kuma_enabled | default(false)
debug: debug:
msg: "Mempool is now available at https://{{ mempool_domain }}" msg: "Mempool is now available at https://{{ mempool_domain }}"
@ -644,6 +665,7 @@
# Uptime Kuma HTTP Monitor for Public Endpoint # Uptime Kuma HTTP Monitor for Public Endpoint
# =========================================== # ===========================================
- name: Create Uptime Kuma HTTP monitor setup script for Mempool - name: Create Uptime Kuma HTTP monitor setup script for Mempool
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -714,6 +736,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for HTTP monitor setup - name: Create temporary config for HTTP monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -727,6 +750,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma HTTP monitor setup - name: Run Uptime Kuma HTTP monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_mempool_http_monitor.py command: python3 /tmp/setup_mempool_http_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -740,6 +764,7 @@
when: http_monitor_setup.stdout is defined when: http_monitor_setup.stdout is defined
- name: Clean up HTTP monitor temporary files - name: Clean up HTTP monitor temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -79,7 +79,18 @@
- name: Reload Caddy to apply new config - name: Reload Caddy to apply new config
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for ntfy-emergency-app - name: Create Uptime Kuma monitor setup script for ntfy-emergency-app
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -159,6 +170,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -172,6 +184,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_ntfy_emergency_app_monitor.py command: python3 /tmp/setup_ntfy_emergency_app_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -180,6 +193,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -82,7 +82,18 @@
- name: Reload Caddy to apply new config - name: Reload Caddy to apply new config
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for Personal Blog - name: Create Uptime Kuma monitor setup script for Personal Blog
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -157,6 +168,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -170,6 +182,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_personal_blog_monitor.py command: python3 /tmp/setup_personal_blog_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -178,6 +191,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -253,7 +253,18 @@
# =========================================== # ===========================================
# Health Check Script + Systemd Timer # Health Check Script + Systemd Timer
# =========================================== # ===========================================
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create phoenixd health check script - name: Create phoenixd health check script
when: uptime_kuma_enabled | default(false)
copy: copy:
dest: "{{ phoenixd_healthcheck_script_path }}" dest: "{{ phoenixd_healthcheck_script_path }}"
content: | content: |
@ -340,6 +351,7 @@
daemon_reload: yes daemon_reload: yes
- name: Enable and start phoenixd health check timer - name: Enable and start phoenixd health check timer
when: uptime_kuma_enabled | default(false)
systemd: systemd:
name: "{{ phoenixd_healthcheck_service_name }}.timer" name: "{{ phoenixd_healthcheck_service_name }}.timer"
enabled: yes enabled: yes
@ -349,6 +361,7 @@
# Uptime Kuma Push Monitor Setup # Uptime Kuma Push Monitor Setup
# =========================================== # ===========================================
- name: Create Uptime Kuma push monitor setup script for phoenixd - name: Create Uptime Kuma push monitor setup script for phoenixd
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -443,6 +456,7 @@
mode: "0755" mode: "0755"
- name: Create temporary config for push monitor setup - name: Create temporary config for push monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -455,6 +469,7 @@
mode: "0644" mode: "0644"
- name: Run Uptime Kuma push monitor setup - name: Run Uptime Kuma push monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_phoenixd_monitor.py command: python3 /tmp/setup_phoenixd_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -468,6 +483,7 @@
when: monitor_setup.stdout is defined when: monitor_setup.stdout is defined
- name: Read push URL from file - name: Read push URL from file
when: uptime_kuma_enabled | default(false)
slurp: slurp:
src: /tmp/phoenixd_push_url.txt src: /tmp/phoenixd_push_url.txt
delegate_to: localhost delegate_to: localhost
@ -489,6 +505,7 @@
notify: Restart phoenixd health check timer notify: Restart phoenixd health check timer
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file:

View file

@ -111,7 +111,18 @@
- name: Reload Caddy to apply new config - name: Reload Caddy to apply new config
command: systemctl reload caddy command: systemctl reload caddy
# ═════════════════════════════════════════════════════════════════════════
# DEPRECATED — Uptime Kuma was decommissioned on 2026-09-11.
#
# Every task below is inert: uptime_kuma_enabled is false in
# group_vars/all/main.yml, so they all skip and the deployment above still
# runs normally. Kept because the health-check logic is the durable part —
# when a replacement exists, rewire the push transport and flip the flag.
#
# What was being monitored: archive/uptime_kuma/MONITORS.md
# ═════════════════════════════════════════════════════════════════════════
- name: Create Uptime Kuma monitor setup script for Vaultwarden - name: Create Uptime Kuma monitor setup script for Vaultwarden
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -191,6 +202,7 @@
mode: '0755' mode: '0755'
- name: Create temporary config for monitor setup - name: Create temporary config for monitor setup
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
copy: copy:
@ -204,6 +216,7 @@
mode: '0644' mode: '0644'
- name: Run Uptime Kuma monitor setup - name: Run Uptime Kuma monitor setup
when: uptime_kuma_enabled | default(false)
command: python3 /tmp/setup_vaultwarden_monitor.py command: python3 /tmp/setup_vaultwarden_monitor.py
delegate_to: localhost delegate_to: localhost
become: no become: no
@ -212,6 +225,7 @@
ignore_errors: yes ignore_errors: yes
- name: Clean up temporary files - name: Clean up temporary files
when: uptime_kuma_enabled | default(false)
delegate_to: localhost delegate_to: localhost
become: no become: no
file: file: