diff --git a/ansible/services/fulcrum/deploy_fulcrum_playbook.yml b/ansible/services/fulcrum/deploy_fulcrum_playbook.yml index 1f7f73d..984555f 100644 --- a/ansible/services/fulcrum/deploy_fulcrum_playbook.yml +++ b/ansible/services/fulcrum/deploy_fulcrum_playbook.yml @@ -245,11 +245,14 @@ return 1 fi - # URL encode the message - local encoded_msg=$(echo -n "$msg" | curl -Gso /dev/null -w %{url_effective} --data-urlencode "msg=$msg" "" | cut -c 3-) + # URL encode spaces in message + local encoded_msg="${msg// /%20}" - curl -s --max-time 10 --retry 2 -o /dev/null \ - "${UPTIME_KUMA_PUSH_URL}?status=${status}&msg=${encoded_msg}&ping=" || true + if ! curl -s --max-time 10 --retry 2 -o /dev/null \ + "${UPTIME_KUMA_PUSH_URL}?status=${status}&msg=${encoded_msg}&ping="; then + echo "ERROR: Failed to push to Uptime Kuma" + return 1 + fi } # Main health check @@ -369,14 +372,14 @@ if existing_monitor: print(f"Monitor '{monitor_name}' already exists (ID: {existing_monitor['id']})") - # Get push URL from existing monitor - push_id = existing_monitor.get('push_token', existing_monitor.get('id')) - push_url = f"{url}/api/push/{push_id}" + push_token = existing_monitor.get('pushToken') or existing_monitor.get('push_token') + if not push_token: + raise ValueError("Could not find push token for monitor") + push_url = f"{url}/api/push/{push_token}" print(f"Push URL: {push_url}") - print("Skipping - monitor already configured") else: print(f"Creating push monitor '{monitor_name}'...") - result = api.add_monitor( + api.add_monitor( type=MonitorType.PUSH, name=monitor_name, parent=group['id'], @@ -385,12 +388,13 @@ retryInterval=60, notificationIDList={ntfy_notification_id: True} if ntfy_notification_id else {} ) - # Get push URL from created monitor monitors = api.get_monitors() new_monitor = next((m for m in monitors if m.get('name') == monitor_name), None) if new_monitor: - push_id = new_monitor.get('push_token', new_monitor.get('id')) - push_url = f"{url}/api/push/{push_id}" + push_token = new_monitor.get('pushToken') or new_monitor.get('push_token') + if not push_token: + raise ValueError("Could not find push token for new monitor") + push_url = f"{url}/api/push/{push_token}" print(f"Push URL: {push_url}") api.disconnect() diff --git a/ansible/services/mempool/deploy_mempool_playbook.yml b/ansible/services/mempool/deploy_mempool_playbook.yml index 862e21b..658180a 100644 --- a/ansible/services/mempool/deploy_mempool_playbook.yml +++ b/ansible/services/mempool/deploy_mempool_playbook.yml @@ -465,7 +465,7 @@ type=MonitorType.PUSH, name=monitor_name, parent=group['id'], - interval=60, + interval=90, maxretries=3, retryInterval=60, notificationIDList={ntfy_notification_id: True} if ntfy_notification_id else {} @@ -723,7 +723,7 @@ username: "{{ uptime_kuma_username }}" password: "{{ uptime_kuma_password }}" monitor_url: "https://{{ mempool_domain }}" - monitor_name: "Mempool" + monitor_name: "Mempool Public Access" mode: '0644' - name: Run Uptime Kuma HTTP monitor setup