Disco - Strumento di gestione del discorso interattivo della shell con notifiche Telegram

disco - Shell Interattivo Strumento di Gestione Discourse con Notifiche Telegram

:information_source: Riepilogo Un wrapper da riga di comando per la gestione di Discourse con interfaccia a menu interattiva e notifiche automatiche su Telegram per le operazioni di manutenzione
:hammer_and_wrench: Link al Repository GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild Β· GitHub
:open_book: Documentazione Guida all’Installazione Β· Avvio Rapido Β· Esempi

:wave: Introduzione

Ciao a tutti!

Voglio condividere una soluzione che ho creato mentre gestivo il mio forum della community. Come molti di voi, ho un gruppo Telegram per la mia community e ricevevo costantemente domande come β€œIl forum Γ¨ giΓΉ?” o β€œQuando finirΓ  la manutenzione?” ogni volta che dovevo aggiornare o riavviare Discourse.

Per risolvere questo problema (e semplificarmi la vita), ho creato disco - un wrapper da riga di comando per la gestione di Discourse che include notifiche automatiche su Telegram e un’interfaccia a menu interattiva.


:dart: Quale Problema Risolve

  • Niente piΓΉ domande β€œIl forum Γ¨ giΓΉ?” - notifiche automatiche al tuo gruppo Telegram
  • Gestione semplificata - menu interattivo invece di ricordare i comandi del launcher
  • Sicurezza prima di tutto - conferme per le operazioni pericolose (ricostruzione, arresto, pulizia)
  • Maggiore visibilitΓ  - stato in tempo reale, log e monitoraggio delle risorse
  • Risoluzione problemi piΓΉ rapida - tutte le operazioni in un unico posto con output chiaro

:sparkles: Caratteristiche

:video_game: Interfaccia a Menu Interattivo

Avvia disco senza argomenti per ottenere un elegante menu numerato:

╔════════════════════════════════════════════════════════════╗
β•‘  πŸš€ Discourse Manager v1.2.0                        β•‘
β•‘  πŸ“¦ Container: app | Stato: 🟒 In esecuzione          β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

 1.  πŸ“Š Mostra Stato
 2.  πŸ”„ Riavvia Container
 3.  πŸ“ Visualizza Log (ultime 100 righe)
 4.  πŸ“Ί Monitor Live
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 5.  πŸ”§ Ricostruzione Completa (con aggiornamenti) ⚠
 6.  ⚑ Ricostruzione Rapida
 7.  πŸ’Ύ Crea Backup
 8.  🧹 Pulisci Risorse Docker ⚠
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 9.  ▢️  Avvia Container
10.  ⏸️  Ferma Container ⚠
11.  🐚 Entra nella Shell del Container
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12.  πŸ“₯ Aggiorna Launcher
13.  πŸ“± Testa Notifiche Telegram
14.  βš™οΈ  Mostra Configurazione
15.  πŸ”„ Aggiorna disco
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 0.  ❌ Esci

Caratteristiche:

  • Digita semplicemente un numero (1-15) per selezionare l’azione
  • Stato del container in tempo reale nell’intestazione
  • Avvisi visivi (:warning:) per le operazioni critiche
  • Conferme di sicurezza - digita β€œsì” per confermare azioni pericolose
  • Rilevamento intelligente di sudo - avvisa quando servono privilegi di root

:iphone: Notifiche Telegram

Le notifiche automatiche mantengono la tua community informata:

Quando inizia la ricostruzione:

πŸ”§ Il forum entrerΓ  in modalitΓ  manutenzione

⏱ Tempo previsto: ~10 minuti

Ci scusiamo per l'inconveniente temporaneo.

Al completamento:

βœ… Il forum Γ¨ di nuovo online!

⏱ Tempo di manutenzione: 7m 57s
πŸ”– Versione: 3.2.0.beta4

Grazie per la tua pazienza! πŸš€

In caso di errori:

❌ Aggiornamento del forum fallito

⏱ Durata del tentativo: 3m 12s

⚠️ Richiesta attenzione dell'amministratore!
Controlla i log: disco logs

:bar_chart: Monitoraggio e Diagnostica

Panoramica dello Stato:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
πŸ“Š Stato Discourse
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ“¦ Container: app
🟒 Stato: In esecuzione
⏱  Tempo di attività: 3 giorni
πŸ”– Versione: 3.2.0.beta4
πŸ’» CPU: 2.5%
🧠 Memoria: 1.2GB / 4GB

Caratteristiche:

  • Utilizzo CPU e memoria in tempo reale
  • Tracciamento del tempo di attivitΓ  del container
  • Rilevamento automatico della versione tramite API
  • Monitoraggio live dei log con modalitΓ  follow
  • Dashboard di monitoraggio delle risorse

:shield: FunzionalitΓ  di Sicurezza

  • Prompt di conferma per le operazioni critiche (ricostruzione, arresto, pulizia)
  • Rilevamento sudo - avvisa quando servono privilegi
  • Visualizzazione versione - sappi sempre quale versione Γ¨ in esecuzione
  • Avvisi dettagliati - spiega esattamente cosa farΓ  ogni azione critica

:zap: Operazioni Rapide

Tutte le operazioni standard di Discourse disponibili:

  • Gestione container - avvia, ferma, riavvia, entra nella shell
  • Manutenzione - ricostruzione (completa/rapida), backup, pulizia
  • Monitoraggio - stato, log, monitor risorse live
  • Aggiornamenti - aggiornamenti del launcher con un singolo comando

:inbox_tray: Installazione

Installazione Rapida

# Scarica e installa
curl -o disco https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/disco
chmod +x disco
sudo mv disco /usr/local/bin/

# Verifica l'installazione
disco version

# Avvia il menu interattivo
disco

:gear: Configurazione

Impostazione Base

Crea un file di configurazione in una di queste posizioni:

  • ~/.disco.env (consigliato)
  • /etc/disco/.env
  • Accanto allo script
# Copia la configurazione di esempio
curl -o ~/.disco.env https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/.env.example

# Modifica le impostazioni
nano ~/.disco.env

Esempio di Configurazione

# Impostazioni di base
DISCOURSE_PATH=/var/discourse
CONFIG_NAME=app

# Notifiche Telegram (opzionale)
TELEGRAM_BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_CHAT_ID=-1001234567890
TELEGRAM_THREAD_ID=1

Configurazione delle Notifiche Telegram

1. Crea un bot:

  • Invia un messaggio a @BotFather su Telegram
  • Invia il comando /newbot
  • Segui le istruzioni
  • Salva il token del bot

2. Ottieni l’ID Chat:

  • Invia un messaggio qualsiasi al tuo bot
  • Visita: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  • Trova "chat":{"id":...} nella risposta

3. Ottieni l’ID Thread (per gruppi con argomenti):

  • Invia un messaggio all’argomento desiderato nel tuo gruppo
  • Nella risposta di getUpdates, cerca message_thread_id

4. Testa le notifiche:

disco test-telegram

:rocket: Utilizzo

Menu Interattivo (Consigliato)

# Avvia il menu interattivo
disco

# Con sudo per azioni amministrative
sudo disco

Digita semplicemente il numero dell’azione che vuoi eseguire!

ModalitΓ  Rigda di Comando

Per automazione o operazioni rapide:

# Stato e monitoraggio
disco status                    # Mostra stato del container
disco logs                      # Visualizza ultime 100 righe
disco logs 500                  # Visualizza ultime 500 righe
disco monitor                   # Monitoraggio risorse in tempo reale

# Gestione container
sudo disco start                # Avvia container
sudo disco stop                 # Ferma container
sudo disco restart              # Riavvia container
disco enter                     # Entra nella shell del container

# Manutenzione
sudo disco rebuild              # Ricostruzione completa con aggiornamenti
sudo disco fast-rebuild         # Ricostruzione rapida (senza aggiornamento launcher)
sudo disco backup               # Crea backup (nome automatico)
sudo disco backup my-name       # Crea backup (nome personalizzato)
sudo disco cleanup              # Pulisci risorse Docker

# UtilitΓ 
sudo disco update-launcher      # Aggiorna launcher Discourse
disco test-telegram             # Testa notifiche Telegram
disco show-config               # Mostra configurazione disco
disco version                   # Mostra versione
disco help                      # Mostra aiuto

:page_facing_up: Impostazioni

Nome Descrizione Predefinito Richiesto
DISCOURSE_PATH Percorso della directory di installazione di Discourse /var/discourse No
CONFIG_NAME Nome della configurazione del container app No
TELEGRAM_BOT_TOKEN Token del bot Telegram da @BotFather - No (per le notifiche)
TELEGRAM_CHAT_ID ID chat o gruppo Telegram per le notifiche - No (per le notifiche)
TELEGRAM_THREAD_ID ID thread nel gruppo con argomenti - No (opzionale)

:bulb: Casi d’Uso

Gestore della Community

  • Mantieni la community informata automaticamente durante la manutenzione
  • Niente piΓΉ domande β€œil forum Γ¨ giΓΉ?”
  • Notifiche di manutenzione professionali

Amministratore di Sistema

  • Menu interattivo per compiti di gestione occasionali
  • Conferme di sicurezza prevengono incidenti
  • Accesso rapido a log e stato

Team DevOps

  • ModalitΓ  CLI per automazione e script
  • Operazioni coerenti tra i membri del team
  • Integrazione semplice con sistemi di monitoraggio

:chart_with_upwards_trend: Impatto nel Mondo Reale

Dopo aver distribuito questo strumento:

  • :white_check_mark: Zero domande β€œil forum Γ¨ giΓΉ?” nel nostro gruppo Telegram
  • :white_check_mark: Operazioni di manutenzione piΓΉ rapide - niente piΓΉ cambio di contesto tra terminale e messaggistica
  • :white_check_mark: Meno errori durante gli aggiornamenti - le conferme di sicurezza funzionano!
  • :white_check_mark: Miglior monitoraggio - accesso rapido a log e utilizzo risorse

:books: Documentazione


:heart: PerchΓ© l’Ho Creato

Gestire Discourse tramite il launcher standard Γ¨ potente, ma:

  • I comandi sono difficili da ricordare
  • Nessun sistema di notifica integrato per la community
  • Facile commettere errori con le operazioni critiche
  • I membri della community chiedono sempre informazioni sui tempi di inattivitΓ 

disco avvolge il launcher con un’interfaccia user-friendly e mantiene tutti informati automaticamente.


:handshake: Contributi

I contributi sono benvenuti! Se hai idee o suggerimenti:

  1. Forka il repository
  2. Crea un branch per la funzionalitΓ 
  3. Apporta le tue modifiche
  4. Invia una Pull Request

Oppure semplicemente apri un issue con il tuo feedback!


:page_with_curl: Licenza

Licenza MIT - completamente gratuita da usare e modificare.



Repository GitHub: GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild Β· GitHub

2 Mi Piace