Support voor Bouteiller
Bouteiller is een gratis app voor iPhone en iPad om je Jenkins-servers te volgen en te bedienen: status van jobs, consolelogs, builds starten en stoppen, inputs van pipelines goedkeuren, widgets en Opdrachten.
Vereisten
- iPhone of iPad met iOS 26 of iPadOS 26 of nieuwer.
- Een Jenkins-server met 2.580.1 LTS of een weekly release 2.580 of nieuwer. Oudere versies worden bij het toevoegen van de server geweigerd, met een duidelijke melding.
- Er is geen plug-in nodig op de server. Bouteiller gebruikt alleen de standaard REST API van Jenkins. Als bepaalde veelgebruikte plug-ins aanwezig zijn (Pipeline, Pipeline Stage View of Pipeline Graph View, JUnit), toont de app meer: stages van pipelines, wachtende inputs, testresultaten.
- Een Jenkins-gebruikersaccount en een API-token (zie hieronder). Je hoeft geen beheerder te zijn: in de app zie en doe je wat je account in Jenkins mag zien en doen.
- Netwerktoegang van het apparaat naar de server (direct, of via de VPN van je organisatie).
Een API-token aanmaken
Bouteiller logt in met je Jenkins-gebruikersnaam en een API-token, nooit met je wachtwoord.
- Log in op de webinterface van Jenkins.
- Open de pagina Security van je gebruikersinstellingen: ga naar
https://jouw-jenkins/me/security(het serverformulier in de app heeft een knop Open de tokenpagina die dit voor je doet), of klik rechtsboven op je naam en daarna op Security. Daar vind je het onderdeel API Token. - Kies in het onderdeel API Token voor Add new Token, geef het een naam (bijvoorbeeld ‘Bouteiller iPhone’) en genereer het.
- Kopieer het token meteen: Jenkins toont het maar één keer.
- Voeg in Bouteiller een server toe en vul het adres van de server, je gebruikersnaam en het token in. De app controleert de verbinding en de Jenkins-versie voordat de server wordt bewaard.
Je kunt het token op elk moment intrekken op dezelfde Jenkins-pagina; de app meldt dan dat de inloggegevens worden geweigerd.
VPN en interne certificaatautoriteiten
Servers die alleen via een VPN bereikbaar zijn
Bouteiller bestuurt je VPN niet. Schakel bij het toevoegen of wijzigen van een server Alleen bereikbaar via een VPN in: als de server niet antwoordt, stelt de app dan voor om verbinding te maken met de VPN in plaats van een algemene fout te tonen.
- Zonder VPN toont de app de laatst bekende gegevens met een banner ‘Offline’ en de datum van die gegevens. Acties (starten, stoppen, goedkeuren…) zijn uitgeschakeld.
- Zodra de server weer antwoordt (VPN verbonden, app weer op de voorgrond), verdwijnt de banner en worden de schermen vernieuwd.
- Een actie wordt nooit in een wachtrij gezet om later uit te voeren: als de server onbereikbaar is, krijg je dat te horen en kun je het opnieuw proberen zodra je verbonden bent.
Certificaten van een interne autoriteit
Als je Jenkins-server een certificaat gebruikt dat is uitgegeven door de eigen certificaatautoriteit van je organisatie, vertrouwt iOS het standaard niet. Er zijn twee mogelijkheden:
- Installeer en vertrouw de autoriteit op het apparaat (configuratieprofiel van je IT-afdeling, daarna Instellingen › Algemeen › Info › Certificaatvertrouwen). Bouteiller werkt dan net als met elk openbaar certificaat.
- Keur het certificaat goed in Bouteiller: als het certificaat niet wordt vertrouwd, toont de app de certificaten die de server stuurt (onderwerp en SHA-256-vingerafdruk) en kun je er een goedkeuren, alleen voor deze server. Standaard wordt voorgesteld de basiscertificaatautoriteit goed te keuren, omdat die blijft gelden als het servercertificaat wordt vernieuwd. De hostnaam en de geldigheidsdatums worden nog steeds gecontroleerd.
Keur alleen een certificaat goed waarvan je de vingerafdruk met je IT-afdeling hebt gecontroleerd. Anders kan iedereen die de verbinding kan onderscheppen je API-token lezen.
Onversleutelde HTTP
HTTPS is de norm. Onversleutelde HTTP wordt alleen geaccepteerd voor een server op het lokale netwerk, nadat je dit uitdrukkelijk hebt toegestaan in het serverformulier: het API-token wordt dan onversleuteld verstuurd.
Meldingen
In deze versie werken meldingen in lokale modus: de app controleert je favoriete jobs op de achtergrond en toont een melding op het apparaat als er iets gebeurt. Er komt geen server van de ontwikkelaar aan te pas.
Instellen
- Voeg de job toe aan je favorieten.
- Tik op de bel van de favoriete job en kies de gebeurtenissen: build gestart, geslaagd, mislukt, instabiel, weer groen, afgebroken, wachtende input. De standaardkeuze (‘Meld problemen’) omvat mislukt, instabiel, weer groen en wachtende input.
- Sta meldingen toe als iOS erom vraagt. De toestand van de job op dat moment is het uitgangspunt: alleen latere gebeurtenissen worden gemeld.
Beperkingen van de lokale modus
- iOS bepaalt het moment. Controles op de achtergrond worden uitgevoerd wanneer iOS dat toestaat, vaak om de paar tientallen minuten, soms minder vaak (batterij, gebruik van de app). Een melding kan dus ruim na de gebeurtenis binnenkomen.
- Alleen favorieten. Alleen de favoriete jobs waarvoor je meldingen hebt ingesteld, worden gecontroleerd.
- Alleen de laatste build van elke favoriet wordt gezien: als er tussen twee controles meerdere builds zijn uitgevoerd, wordt alleen het resultaat van de laatste gemeld.
- Bereikbaarheid van de server. Zolang de server onbereikbaar is (bijvoorbeeld zonder VPN), kan er niets worden gecontroleerd.
- Ververs op achtergrond moet ingeschakeld zijn voor Bouteiller (Instellingen › Algemeen › Ververs op achtergrond). De energiebesparingsmodus schort dit op, en iOS vernieuwt een app die je via de appkiezer hebt geforceerd gestopt meestal pas weer als je hem opnieuw opent.
- Acties in meldingen (Bouw opnieuw, Keur goed, Wijs af) vereisen dat het apparaat ontgrendeld is en de server bereikbaar is; het resultaat van de actie wordt gemeld. Een input met parameters opent de app om hem te beantwoorden.
Het onderdeel Meldingen in de instellingen van de app toont of meldingen en Ververs op achtergrond zijn toegestaan, en laat je direct een controle uitvoeren.
Pushmeldingen die ook buiten de VPN werken, staan gepland voor een toekomstige versie, via een optionele Jenkins-plug-in.
Veelgestelde vragen
- Is Bouteiller een officiële Jenkins-app?
- Nee. Bouteiller is een onafhankelijke app, ontwikkeld door een particulier. De app is niet verbonden aan en wordt niet onderschreven door het Jenkins-project.
- Moet ik een plug-in op mijn server installeren?
- Nee. De app werkt met een Jenkins-server zonder enige plug-in. Freestyle-jobs kun je doorbladeren, starten, stoppen en opnieuw bouwen; stages van pipelines, inputs en testresultaten worden getoond als de bijbehorende plug-ins zijn geïnstalleerd.
- De app zegt dat mijn Jenkins-versie niet wordt ondersteund.
- Bouteiller vereist Jenkins 2.580.1 LTS of een weekly release 2.580 of nieuwer. Vraag je beheerder naar een upgrade.
- De app zegt dat de inloggegevens worden geweigerd.
- Controleer de gebruikersnaam (je Jenkins-gebruikers-ID, niet per se je weergavenaam) en het API-token. Als de server achter een reverse proxy of een single sign-on-portal staat, zorg dan dat de header
AuthorizationJenkins bereikt. - De server is onbereikbaar, hoewel hij in Safari werkt.
- Controleer of je hetzelfde adres hebt ingevuld als in Safari, inclusief het contextpad (bijvoorbeeld
https://ci.example.com/jenkins). Werkt Safari alleen via de VPN, schakel dan de VPN-optie van de server in. Wordt het certificaat niet vertrouwd, zie dan interne certificaatautoriteiten. - Kan ik gevoelige acties beveiligen?
- Ja. In de instellingen kun je Face ID, Touch ID of de toegangscode van het apparaat vereisen voordat een build wordt gestopt en voordat een input wordt goedgekeurd of afgewezen. De authenticatie wordt door iOS afgehandeld; de app ziet nooit biometrische gegevens.
- Kan ik meerdere servers gebruiken?
- Ja, zoveel als je wilt. Het tabblad Favorieten toont de favoriete jobs van alle servers.
- Welke widgets en opdrachten zijn er?
- Widgets: status van een job (beginscherm en toegangsscherm), favorieten, mislukte builds van een server, met een startknop voor jobs zonder parameters. Opdrachten en Siri: start een job, status van een job, mislukte builds, open een job. Een regelaar in het bedieningspaneel start een favoriete job. Widgets tonen het tijdstip van hun laatste update en geven aan wanneer de server onbereikbaar is.
- Waarom tonen de widgets oude gegevens?
- Widgets worden vernieuwd wanneer iOS dat toestaat en alleen zolang de server bereikbaar is. Anders behouden ze de laatst bekende status, met het tijdstip van de laatste update en de aanduiding ‘onbereikbaar’.
- Hoe verwijder ik mijn gegevens?
- Verwijder de server in de app: het API-token wordt uit de sleutelhanger verwijderd, samen met de favorieten, meldingsinstellingen en gegevens in cache. Alleen de cache wissen kan in de instellingen. Als je de app verwijdert, worden de gegevens ervan verwijderd; omdat iOS onderdelen van de sleutelhanger kan bewaren nadat een app is verwijderd, verwijder je eerst je servers als je zeker wilt weten dat de tokens zijn gewist, en trek je de tokens in Jenkins in.
- Verzamelt de app gegevens?
- Nee. Zie het privacybeleid.
Contact
Voor een vraag, een probleem of een suggestie kun je mailen naar: nicolas.mannocci@gmail.com.
Vermeld bij een probleem de versie van de app (te zien in de instellingen van de app), je apparaat en iOS-versie, je Jenkins-versie en, indien van toepassing, of er een VPN of een interne certificaatautoriteit in het spel is. Stuur nooit je API-token mee.