Script remoto per monitorare istanza di mobilizon. Lo script inserisce un evento (privato) fittizio per poi eliminarlo
Find a file
Michele Agostinelli cf60b252e0 fix: valida risposta JSON prima di sovrascrivere file token
Co-authored-by: aider (gemini/gemini-3-pro-preview) <aider@aider.chat>
2026-01-04 21:39:02 +01:00
.env.example feat: integra monitoraggio Uptime Kuma nello script di health check 2025-12-27 14:32:24 +01:00
.gitignore feat: crea script Mobilizon con configurazione .env e health check 2025-12-27 14:17:29 +01:00
LICENSE Initial commit 2025-12-27 14:07:07 +01:00
mobilizon_api.sh fix: correggi costruzione payload JSON usando jq 2025-12-27 14:29:47 +01:00
mobilizon_config.sh feat: integra monitoraggio Uptime Kuma nello script di health check 2025-12-27 14:32:24 +01:00
README.md feat: integra monitoraggio Uptime Kuma nello script di health check 2025-12-27 14:32:24 +01:00
refresh_mobilizon_token.sh fix: valida risposta JSON prima di sovrascrivere file token 2026-01-04 21:39:02 +01:00
run_health_check.sh feat: integra monitoraggio Uptime Kuma nello script di health check 2025-12-27 14:32:24 +01:00
test_event.sh feat: crea script Mobilizon con configurazione .env e health check 2025-12-27 14:17:29 +01:00

Script monitoraggio Mobilizon

Questa repository contiene script per autenticarsi su Mobilizon, rinnovare i token automaticamente e testare l'istanza tramite API GraphQL.


1. Setup Iniziale

Step 1.1: Configurazione Ambiente

Copia il file di esempio e configuralo:

cp .env.example .env
nano .env

Inserisci i valori per CLIENT_ID e CLIENT_SECRET. Se non li hai, vedi lo step successivo.

Configurazione Notifiche (Opzionale):

  • ntfy: Se vuoi ricevere notifiche sul telefono quando il token scade o ci sono errori, compila NTFY_URL nel file .env.
  • Uptime Kuma: Se vuoi monitorare lo stato del test su una dashboard Kuma, inserisci l'URL di tipo "Push" in UPTIME_KUMA_URL. Lo script invierà status=up se il test passa, o status=down con il motivo dell'errore se fallisce.

Step 1.2: Creare l'app su Mobilizon (se non hai le credenziali)

curl -X POST https://mobilizon.it/apps \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "name=MyCliApp&scope=write:event:create+write:event:update+write:event:delete&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fcallback"

Copia client_id e client_secret dalla risposta e inseriscili nel file .env.


2. Autenticazione (ogni 3 mesi)

Step 2.1: Richiedere il device code

source .env

curl -X POST $INSTANCE/login/device/code \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=$CLIENT_ID&scope=$SCOPE" | jq . > device_response.json

cat device_response.json

Salva il user_code che vedi (esempio: ZIQC-SCPB)

Step 2.2: Autorizzare nel browser

  1. Apri nel browser: https://mobilizon.it/login/device
  2. Inserisci il user_code ottenuto sopra
  3. Accedi con le tue credenziali Mobilizon
  4. Autorizza l'app

Step 2.3: Ottenere i token da curl

Dopo aver autorizzato nel browser, esegui:

source .env

DEVICE_CODE=$(jq -r '.device_code' device_response.json)

curl -s -X POST $INSTANCE/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "client_id=$CLIENT_ID" \
  --data-urlencode "client_secret=$CLIENT_SECRET" \
  --data-urlencode "device_code=$DEVICE_CODE" \
  --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:device_code" | jq . > .mobilizon_tokens.json

cat .mobilizon_tokens.json

Dovresti vedere access_token e refresh_token.


3. Utilizzo Script

Tutti gli script caricano automaticamente la configurazione da .env. Assicurati di dare i permessi di esecuzione agli script:

chmod +x *.sh

Wrapper Principale (Health Check + Test)

Questo è lo script consigliato da eseguire. Verifica prima se il sito risponde, poi esegue il test dell'evento. Se configurato, invia lo stato a Uptime Kuma.

./run_health_check.sh
# Oppure verbose
./run_health_check.sh -v

Rinnovo Token

Rinnova il token di accesso (da eseguire via cron). Se configurato, invia una notifica ntfy in caso di errore (es. token scaduto dopo 3 mesi).

./refresh_mobilizon_token.sh

Test Evento (Manuale)

Crea un evento privato e lo cancella dopo 5 secondi.

./test_event.sh -v

API Generica

Eseguire query GraphQL arbitrarie.

./mobilizon_api.sh '{ loggedPerson { id name } }'

4. Automazione Cron

Rinnovo Token (ogni 12 ore)

0 */12 * * * /path/to/repo/refresh_mobilizon_token.sh >> /path/to/repo/.mobilizon_refresh.log 2>&1

Health Check (ogni ora)

Esegue il test completo e aggiorna Uptime Kuma.

0 * * * * /path/to/repo/run_health_check.sh >> /path/to/repo/.health_check.log 2>&1

5. Struttura Directory

.
├── .env                     # Configurazione (non committato)
├── .env.example             # Template configurazione
├── .gitignore
├── mobilizon_config.sh      # Caricatore configurazione e utility
├── refresh_mobilizon_token.sh
├── mobilizon_api.sh
├── test_event.sh
├── run_health_check.sh      # Wrapper principale
└── README.md