How grafana/grafana-kiosk works
Grafana Kiosk is a command-line application that configures a browser kiosk for Grafana dashboards or playlists. Its main workflow is to load settings, select a login method, automate authentication and navigation, then keep the display running with reload handling. The README also documents multi-monitor/window settings and optional LXDE setup. The entry point and several login implementations are sampled; links for other documented login methods reflect the package structure and documented capabilities, not inspected call sites.
Main entry points: main.go CLI entry point · browser.go Browser interface · browser_events.go Browser session helpers · goauth.go Generic OAuth login
Components 19
Startup and settings
- CLI entry point
pkg/cmd/grafana-kiosk/main.go - Configuration
pkg/kiosk/config/config.go
Login methods
- Anonymous login
pkg/kiosk/login/anonymous/anonymous.go - Local login
pkg/kiosk/login/local/local.go - Grafana Cloud login
pkg/kiosk/login/gcom/gcom.go - Generic OAuth login
pkg/kiosk/login/goauth/goauth.go - ID token login
pkg/kiosk/login/idtoken/idtoken.go - API key login
pkg/kiosk/login/apikey/apikey.go - AWS login
pkg/kiosk/login/aws/aws.go - Azure AD login
pkg/kiosk/login/azuread/azuread.go
Browser runtime
- Browser session helpers
pkg/kiosk/login/shared/browser_events.go - Browser interface
pkg/browser/browser.go - Chrome automation
pkg/browser/chromedp.go
Desktop setup
- LXDE initialization
pkg/initialize/lxde.go
Other components
- Kiosk operator
- Chromium browser
- Grafana dashboards and playlists
- External identity providers
- Linux desktop
Connections 34
- Kiosk operator → CLI entry point: starts
- CLI entry point → Configuration: loads settings
- CLI entry point → Anonymous login: dispatches login
- CLI entry point → Local login: dispatches login
- CLI entry point → Grafana Cloud login: dispatches login
- CLI entry point → Generic OAuth login: dispatches login
- CLI entry point → ID token login: dispatches login
- CLI entry point → API key login: dispatches login
- CLI entry point → AWS login: dispatches login
- CLI entry point → Azure AD login: dispatches login
- CLI entry point → LXDE initialization: initializes optionally
- Anonymous login → Browser session helpers: creates session
- Local login → Browser session helpers: creates session
- Grafana Cloud login → Browser session helpers: creates session
- Generic OAuth login → Browser session helpers: creates session
- ID token login → Browser session helpers: creates session
- API key login → Browser session helpers: creates session
- AWS login → Browser session helpers: creates session
- Azure AD login → Browser session helpers: creates session
- Anonymous login → Browser interface: drives browser
- Local login → Browser interface: drives browser
- Grafana Cloud login → Browser interface: drives browser
- Generic OAuth login → Browser interface: drives browser
- ID token login → Browser interface: drives browser
- API key login → Browser interface: drives browser
- AWS login → Browser interface: drives browser
- Azure AD login → Browser interface: drives browser
- Browser interface → Chrome automation: implemented by
- Chrome automation → Chromium browser: automates
- Chromium browser → Grafana dashboards and playlists: navigates to
- Generic OAuth login → External identity providers: authenticates with
- AWS login → External identity providers: authenticates with
- Azure AD login → External identity providers: authenticates with
- LXDE initialization → Linux desktop: configures