#!/command/with-contenv bashio # shellcheck disable=SC2191 # ============================================================================== # Home Assistant Community Add-on: Prometheus # Runs the Prometheus Server # ============================================================================== declare -a options declare name declare value bashio::log.info 'Starting prometheus...' options+=(--config.file="/etc/prometheus/prometheus.yml" ) options+=(--storage.tsdb.path="/data/prometheus" ) options+=(--web.console.libraries="/usr/share/prometheus/console_libraries" ) options+=(--web.console.templates="/usr/share/prometheus/consoles" ) options+=(--web.route-prefix="/" ) options+=(--web.external-url="http://localhost:9090$(bashio::addon.ingress_entry)/" ) options+=(--web.enable-lifecycle ) # Load custom environment variables for var in $(bashio::config 'env_vars|keys'); do name=$(bashio::config "env_vars[${var}].name") value=$(bashio::config "env_vars[${var}].value") bashio::log.info "Setting ${name} to ${value}" export "${name}=${value}" done if ! bashio::fs.directory_exists /data/prometheus; then mkdir -p /data/prometheus chown prometheus:prometheus /data/prometheus fi if ! bashio::fs.directory_exists /share/prometheus/rules; then mkdir -p /share/prometheus/rules chown -R prometheus:prometheus /share/prometheus/rules fi if ! bashio::fs.directory_exists /share/prometheus/targets; then mkdir -p /share/prometheus/targets chown -R prometheus:prometheus /share/prometheus/targets fi yq -i eval-all '. as $item ireduce ({}; . * $item)' /etc/prometheus/prometheus.yml /share/prometheus/prometheus.yaml # Run Prometheus exec s6-setuidgid prometheus /usr/local/bin/prometheus "${options[@]}"