Bouteiller

Bouteiller support

Bouteiller is a free iPhone and iPad app to follow and drive your Jenkins servers: job status, console logs, launching and stopping builds, approving pipeline inputs, widgets and Shortcuts.

Requirements

Creating an API token

Bouteiller signs in with your Jenkins user name and an API token, never with your password.

  1. Sign in to the Jenkins web interface.
  2. Open the Security page of your user settings: go to https://your-jenkins/me/security (the server form in the app has an Open the token page button that does this for you), or click your name at the top right, then Security. The API Token section is there.
  3. In the API Token section, choose Add new Token, give it a name (for example “Bouteiller iPhone”) and generate it.
  4. Copy the token right away: Jenkins shows it only once.
  5. In Bouteiller, add a server and enter the server address, your user name and the token. The app checks the connection and the Jenkins version before saving.

You can revoke the token at any time from the same Jenkins page; the app then reports that the credentials are refused.

VPN and internal certificate authorities

Servers reachable only through a VPN

Bouteiller does not control your VPN. When adding or editing a server, turn on Reachable only through a VPN: when the server does not answer, the app then suggests connecting to the VPN instead of showing a generic error.

Certificates from an internal authority

If your Jenkins server uses a certificate issued by your organization’s own certificate authority, iOS does not trust it by default. Two options:

Only approve a certificate whose fingerprint you have checked with your IT department. Anyone able to intercept the connection could otherwise read your API token.

Plain HTTP

HTTPS is expected. Plain HTTP is only accepted for a server on the local network, after you explicitly allow it in the server form: the API token is then sent unencrypted.

Notifications

In this version, notifications work in local mode: the app checks your favorite jobs in the background and posts a notification on the device when something happens. No server of the developer is involved.

Setting up

  1. Add the job to your favorites.
  2. Tap the bell of the favorite job and choose the events: build started, success, failure, unstable, back to success, aborted, input waiting. The default choice (“Notify Me of Problems”) covers failure, unstable, back to success and input waiting.
  3. Allow notifications when iOS asks. The state of the job at that moment is the reference: only later events are notified.

Limits of local mode

The Notifications section of the app settings shows whether notifications and Background App Refresh are allowed, and lets you run a check immediately.

Push notifications that also work outside the VPN are planned for a future version, through an optional Jenkins plugin.

Frequently asked questions

Is Bouteiller an official Jenkins app?
No. Bouteiller is an independent app, developed by an individual. It is not affiliated with, nor endorsed by, the Jenkins project.
Do I need to install a plugin on my server?
No. The app works with a Jenkins server without any plugin. Freestyle jobs can be browsed, launched, stopped and rebuilt; pipeline stages, inputs and test results are shown when the corresponding plugins are installed.
The app says my Jenkins version is not supported.
Bouteiller requires Jenkins 2.580.1 LTS or a weekly release 2.580 or later. Ask your administrator about upgrading.
The app says the credentials are refused.
Check the user name (your Jenkins user ID, not necessarily your display name) and the API token. If the server is behind a reverse proxy or a single sign-on portal, make sure the Authorization header reaches Jenkins.
The server is unreachable although it works in Safari.
Check that you entered the same address as in Safari, including the context path (for example https://ci.example.com/jenkins). If Safari works only through the VPN, turn on the VPN option of the server. If the certificate is not trusted, see internal certificate authorities.
Can I protect sensitive actions?
Yes. In the settings, you can require Face ID, Touch ID or the device passcode before stopping a build and before approving or rejecting an input. Authentication is handled by iOS; the app never sees biometric data.
Can I use several servers?
Yes, as many as you want. The Favorites tab shows the favorite jobs of all servers.
Which widgets and shortcuts are available?
Widgets: status of a job (Home Screen and Lock Screen), favorites, failed builds of a server, with a Launch button for jobs without parameters. Shortcuts and Siri: launch a job, status of a job, failed builds, open a job. A Control Center control launches a favorite job. Widgets show the time of their last update and indicate when the server is unreachable.
Why do the widgets show old data?
Widgets are refreshed when iOS allows it and only while the server is reachable. Otherwise they keep the last known state, with the time of the last update and an “unreachable” indicator.
How do I remove my data?
Delete the server in the app: its API token is removed from the Keychain, along with its favorites, notification subscriptions and cached data. The cache alone can be cleared in the settings. Deleting the app removes its data; since iOS may keep Keychain items after an app is deleted, delete your servers first if you want to be sure the tokens are erased, and revoke the tokens in Jenkins.
Does the app collect data?
No. See the privacy policy.

Contact

For a question, a problem or a suggestion, write to: nicolas.mannocci@gmail.com.

To help with a problem, please mention the app version (shown in the app settings), your device and iOS version, your Jenkins version and, if relevant, whether a VPN or an internal certificate authority is involved. Never send your API token.