Supporto di Bouteiller
Bouteiller è un’app gratuita per iPhone e iPad per seguire e gestire i tuoi server Jenkins: stato dei job, console log, avvio e interruzione delle build, approvazione degli input delle pipeline, widget e Comandi Rapidi.
Requisiti
- iPhone o iPad con iOS 26 o iPadOS 26 o versioni successive.
- Un server Jenkins 2.580.1 LTS o una release weekly 2.580 o successiva. Le versioni precedenti vengono rifiutate quando si aggiunge il server, con un messaggio esplicito.
- Nessun plugin richiesto sul server. Bouteiller usa solo l’API REST standard di Jenkins. Quando sono presenti alcuni plugin diffusi (Pipeline, Pipeline Stage View o Pipeline Graph View, JUnit), l’app mostra di più: stage delle pipeline, input in attesa, risultati dei test.
- Un account utente Jenkins e un API token (vedi sotto). Non serve essere amministratori: nell’app vedi e fai ciò che il tuo account può vedere e fare in Jenkins.
- Un accesso di rete dal dispositivo al server (diretto, o tramite la VPN della tua organizzazione).
Creare un API token
Bouteiller accede con il tuo nome utente Jenkins e un API token, mai con la tua password.
- Accedi all’interfaccia web di Jenkins.
- Apri la pagina Security delle impostazioni del tuo utente: vai a
https://il-tuo-jenkins/me/security(nel modulo del server dell’app, il pulsante Apri la pagina del token lo fa per te), oppure fai clic sul tuo nome in alto a destra, poi su Security. Lì trovi la sezione API Token. - Nella sezione API Token, scegli Add new Token, dagli un nome (ad esempio “Bouteiller iPhone”) e generalo.
- Copia subito il token: Jenkins lo mostra una sola volta.
- In Bouteiller, aggiungi un server e inserisci l’indirizzo del server, il tuo nome utente e il token. L’app verifica la connessione e la versione di Jenkins prima di salvare.
Puoi revocare il token in qualsiasi momento dalla stessa pagina di Jenkins; l’app segnalerà allora che le credenziali sono rifiutate.
VPN e autorità di certificazione interne
Server raggiungibili solo tramite VPN
Bouteiller non controlla la tua VPN. Quando aggiungi o modifichi un server, attiva Raggiungibile solo tramite VPN: se il server non risponde, l’app ti suggerirà di connetterti alla VPN invece di mostrare un errore generico.
- Senza VPN, l’app mostra gli ultimi dati noti con un banner “Offline” e la data di quei dati. Le azioni (avvio, interruzione, approvazione…) sono disattivate.
- Non appena il server risponde di nuovo (VPN connessa, app tornata in primo piano), il banner scompare e le schermate vengono aggiornate.
- Un’azione non viene mai messa in coda per essere eseguita più tardi: se il server non è raggiungibile, te lo segnala e puoi riprovare una volta connesso.
Certificati di un’autorità interna
Se il tuo server Jenkins usa un certificato emesso dall’autorità di certificazione della tua organizzazione, iOS non lo considera affidabile per impostazione predefinita. Due possibilità:
- Installare l’autorità sul dispositivo e considerarla attendibile (profilo di configurazione fornito dal tuo reparto IT, poi Impostazioni › Generali › Info › Impostazioni certificati attendibili). Bouteiller funziona allora come con qualsiasi certificato pubblico.
- Approvare il certificato in Bouteiller: quando il certificato non è affidabile, l’app mostra i certificati inviati dal server (soggetto e impronta SHA-256) e ti permette di approvarne uno, solo per questo server. Per impostazione predefinita viene suggerito di approvare l’autorità di certificazione radice, perché sopravvive al rinnovo del certificato del server. Il nome host e le date di validità vengono comunque verificati.
Approva solo un certificato di cui hai verificato l’impronta con il tuo reparto IT. Altrimenti chiunque possa intercettare la connessione potrebbe leggere il tuo API token.
HTTP non cifrato
È previsto l’uso di HTTPS. L’HTTP non cifrato è accettato solo per un server della rete locale, dopo averlo consentito esplicitamente nel modulo del server: l’API token viene allora inviato in chiaro.
Notifiche
In questa versione, le notifiche funzionano in modalità locale: l’app controlla i tuoi job preferiti in background e mostra una notifica sul dispositivo quando succede qualcosa. Nessun server dello sviluppatore è coinvolto.
Configurazione
- Aggiungi il job ai preferiti.
- Tocca la campanella del job preferito e scegli gli eventi: build avviata, successo, errore, instabile, di nuovo riuscita, annullata, input in attesa. La scelta predefinita (“Avvisami dei problemi”) copre errore, instabile, di nuovo riuscita e input in attesa.
- Consenti le notifiche quando iOS te lo chiede. Lo stato del job in quel momento fa da riferimento: vengono notificati solo gli eventi successivi.
Limiti della modalità locale
- I tempi li decide iOS. I controlli in background vengono eseguiti quando iOS lo consente, spesso ogni qualche decina di minuti, a volte meno spesso (batteria, uso dell’app). Una notifica può quindi arrivare parecchio dopo l’evento.
- Solo i preferiti. Vengono controllati solo i job preferiti per cui hai attivato le notifiche.
- Solo l’ultima build di ogni preferito viene vista: se tra due controlli sono state eseguite più build, viene notificato solo il risultato dell’ultima.
- Raggiungibilità del server. Non si può controllare nulla mentre il server non è raggiungibile (ad esempio senza VPN).
- Aggiorna app in background deve essere attivo per Bouteiller (Impostazioni › Generali › Aggiorna app in background). La modalità Risparmio energetico lo sospende, e in genere iOS non aggiorna un’app che hai chiuso forzatamente dall’App Switcher finché non la riapri.
- Le azioni delle notifiche (Riavvia, Approva, Rifiuta) richiedono che il dispositivo sia sbloccato e il server raggiungibile; il risultato dell’azione viene notificato. Un input con parametri apre l’app per rispondere.
La sezione Notifiche delle impostazioni dell’app mostra se le notifiche e l’aggiornamento in background sono consentiti, e ti permette di avviare subito un controllo.
Le notifiche push, che funzioneranno anche fuori dalla VPN, sono previste in una versione futura, tramite un plugin Jenkins facoltativo.
Domande frequenti
- Bouteiller è un’app ufficiale di Jenkins?
- No. Bouteiller è un’app indipendente, sviluppata da una singola persona. Non è affiliata al progetto Jenkins, né approvata da esso.
- Devo installare un plugin sul mio server?
- No. L’app funziona con un server Jenkins senza alcun plugin. I job freestyle possono essere consultati, avviati, interrotti e riavviati; stage delle pipeline, input e risultati dei test vengono mostrati quando i plugin corrispondenti sono installati.
- L’app dice che la mia versione di Jenkins non è supportata.
- Bouteiller richiede Jenkins 2.580.1 LTS o una release weekly 2.580 o successiva. Chiedi al tuo amministratore di aggiornarlo.
- L’app dice che le credenziali sono rifiutate.
- Controlla il nome utente (il tuo ID utente Jenkins, non necessariamente il nome visualizzato) e l’API token. Se il server si trova dietro un reverse proxy o un portale di single sign-on, assicurati che l’header
Authorizationarrivi fino a Jenkins. - Il server non è raggiungibile, eppure funziona in Safari.
- Verifica di aver inserito lo stesso indirizzo usato in Safari, percorso compreso (ad esempio
https://ci.example.com/jenkins). Se Safari funziona solo con la VPN, attiva l’opzione VPN del server. Se il certificato non è affidabile, consulta la sezione autorità di certificazione interne. - Posso proteggere le azioni sensibili?
- Sì. Nelle impostazioni puoi richiedere Face ID, Touch ID o il codice del dispositivo prima di interrompere una build e prima di approvare o rifiutare un input. L’autenticazione è gestita da iOS; l’app non vede mai i dati biometrici.
- Posso usare più server?
- Sì, quanti ne vuoi. La scheda Preferiti mostra i job preferiti di tutti i server.
- Quali widget e comandi rapidi sono disponibili?
- Widget: stato di un job (schermata Home e schermata di blocco), preferiti, build fallite di un server, con un pulsante di avvio per i job senza parametri. Comandi Rapidi e Siri: avviare un job, stato di un job, build fallite, aprire un job. Un controllo del Centro di Controllo avvia un job preferito. I widget mostrano l’ora del loro ultimo aggiornamento e indicano quando il server non è raggiungibile.
- Perché i widget mostrano dati vecchi?
- I widget vengono aggiornati quando iOS lo consente e solo quando il server è raggiungibile. Altrimenti mantengono l’ultimo stato noto, con l’ora dell’ultimo aggiornamento e un’indicazione “non raggiungibile”.
- Come elimino i miei dati?
- Elimina il server nell’app: il suo API token viene rimosso dal portachiavi, insieme ai preferiti, alle iscrizioni alle notifiche e ai dati in cache. La sola cache può essere svuotata nelle impostazioni. Eliminare l’app ne rimuove i dati; poiché iOS può conservare gli elementi del portachiavi dopo l’eliminazione di un’app, elimina prima i tuoi server se vuoi essere sicuro che i token vengano cancellati, e revoca i token in Jenkins.
- L’app raccoglie dati?
- No. Consulta la privacy policy.
Contatti
Per una domanda, un problema o un suggerimento, scrivi a: nicolas.mannocci@gmail.com.
Per aiutarci a risolvere un problema, indica la versione dell’app (mostrata nelle sue impostazioni), il tuo dispositivo e la versione di iOS, la tua versione di Jenkins e, se pertinente, se sono coinvolti una VPN o un’autorità di certificazione interna. Non inviare mai il tuo API token.