52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
#!/usr/bin/with-contenv bashio
|
|
# shellcheck shell=bash
|
|
# ==============================================================================
|
|
# Home Assistant Add-on: Loki
|
|
# Runs Loki
|
|
# ==============================================================================
|
|
|
|
readonly BIND_ADDR=127.0.0.1
|
|
readonly HTTP_PORT=8080
|
|
declare log_level
|
|
loki_config='/etc/loki/default-config.yaml'
|
|
|
|
bashio::log.info 'Starting Loki...'
|
|
|
|
if bashio::config.exists 'config_path'; then
|
|
loki_config=$(bashio::config 'config_path')
|
|
bashio::log.info "Using config at ${loki_config}"
|
|
else
|
|
bashio::log.info "Using default config"
|
|
fi
|
|
|
|
retention_period="$(bashio::config 'days_to_keep' 1)d"
|
|
bashio::log.info "Retention period set to ${retention_period}"
|
|
export "RETENTION_PERIOD=${retention_period}"
|
|
|
|
case "$(bashio::config 'log_level')" in \
|
|
trace) ;& \
|
|
debug) log_level='debug' ;; \
|
|
notice) ;& \
|
|
warning) log_level='warn' ;; \
|
|
error) ;& \
|
|
fatal) log_level='error' ;; \
|
|
*) log_level='info' ;; \
|
|
esac;
|
|
bashio::log.info "Loki log level set to ${log_level}"
|
|
|
|
loki_args=(
|
|
"-config.expand-env=true"
|
|
"-config.file=${loki_config}"
|
|
"-server.http-listen-address=${BIND_ADDR}"
|
|
"-server.http-listen-port=${HTTP_PORT}"
|
|
"-log.level=${log_level}"
|
|
)
|
|
if [ "${log_level}" == "debug" ]; then
|
|
bashio::log.debug "Logging full config on startup for debugging..."
|
|
loki_args+=("-print-config-stderr=true")
|
|
fi
|
|
|
|
bashio::log.info "Handing over control to Loki..."
|
|
exec s6-setuidgid abc \
|
|
/usr/bin/loki "${loki_args[@]}"
|