anima 76d1e65fed
build container icingaweb2 / build (push) Successful in 4m42s
update oidc module
2026-02-28 11:46:28 +01:00
2025-02-01 11:17:55 +01:00
2025-02-01 19:49:29 +01:00
2026-02-28 11:46:28 +01:00
2025-02-02 01:47:52 +01:00
2025-01-29 22:54:26 +01:00
2025-02-01 11:16:41 +01:00

Docker IcingaWeb2

Build Status

If you need a full stack:

Or a additional satellite:

usage

If you have a functional icinga2 instance only without icingaweb2:

git clone https://git.ao-it.net/docker/icingaweb2
cd icingaweb2 
cp env.sample .env
# must edit: GRAFANA_HOST with local IP or FQDN
nano .env     # edit your env
docker compose up -d

Hints:

  • If you run the setup without any environment vars the setup token will be printet in docker log!
  • If you deploy IcingaDB ENV but it can't be reach, icingaweb looks like broken but it isn't
  • You can remove the environment var ICINGAWEB2_CONF_ONCE whan will changes in compose.yml environment deploy every time if the container starts.
    • You can use this for future config changes, but this isn't good tested and i am not sure i will recommend this...

understand environment

For the configuration (primarily the initial setup) I use a similar method as: https://hub.docker.com/r/icinga/icingaweb2

  • In my case a prefix like ICINGAWEB2_CONF refers a configuration file.
  • As a separator I not (longer) use . rather __ (2x _)
  • After the first __ it follows the Section from this ini file.
  • After the second __ it follows the Key from this Section before.
  • And after the = is comes the value.

So will this:

ICINGAWEB2_CONF__global__config_backend=db

create this:

[global]
config_backend = db

vars icingaweb2

prefix file ref
ICINGAWEB2_CONF /etc/icingaweb2/config.ini General Configuration
ICINGAWEB2_RESOURCES /etc/icingaweb2/resources.ini Resources
ICINGAWEB2_AUTH /etc/icingaweb2/authentication.ini Authentication
ICINGAWEB2_GROUPS /etc/icingaweb2/groups.ini Groups
ICINGAWEB2_ROLES /etc/icingaweb2/roles.ini Roles

vars modules

prefix module file ref
ICINGAWEB2_ICINGADB_CONF icingadb /etc/icingaweb2/modules/icingadb/config.ini General Configuration
ICINGAWEB2_ICINGADB_REDIS icingadb /etc/icingaweb2/modules/icingadb/redis.ini Redis® Configuration
ICINGAWEB2_ICINGADB_API icingadb /etc/icingaweb2/modules/icingadb/commandtransports.ini Command Transport Configuration
ICINGAWEB2_GRAFANA_CONF grafana /etc/icingaweb2/modules/grafana/config.ini General Configuration
ICINGAWEB2_GRAFANA_GRAPH grafana /etc/icingaweb2/modules/grafana/graphs.ini Graph Configuration

external vars

See sources below

static vars

var description
ICINGAWEB2_CONF_ONCE if var exists: all configuration setups (above) run only on fist setup.
ICINGAWEB2_DB_RESOURCE_NAME needed for setup script to know witch database is used for users
ICINGAWEB2_DEFAULT_ADMIN_USER default admin username addidional this var is primary identifier to run auto config
ICINGAWEB2_DEFAULT_ADMIN_PASS default admin password

easy setup

If you use the example, than you can setup the env.sample.
All required variables are included and insert the values ​​in the correct places.

Hint: in this file all vars dont have the 2 behind icingaweb2 or icinga2.
Vars for the container have the 2

example

See compose.yml.
This is for environment priview (minimal setup)

services:
  icingaweb2:
    image: git.ao-it.net/docker/icingaweb2
    environment:
      - ICINGAWEB2_CONF_ONCE=true
      - ICINGAWEB2_CONF__logging__log=php
      - ICINGAWEB2_CONF__logging__level=ERROR
      - ICINGAWEB2_CONF__logging__application=icingaweb2
      - ICINGAWEB2_CONF__global__config_backend=db
      - ICINGAWEB2_CONF__global__config_resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__type=db
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__db=mysql
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__host=${ICINGAWEB_DB_HOST:-db_icingaweb}
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__dbname=${ICINGAWEB_DB:-icingaweb}
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__username=${ICINGAWEB_DB_USER:-icingaweb}
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__password=${ICINGAWEB_DB_PASS:-icingaweb}
      - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__charset=utf8mb4
      - ICINGAWEB2_AUTH__icingaweb2__backend=db
      - ICINGAWEB2_AUTH__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
      - ICINGAWEB2_GROUPS__icingaweb2__backend=db
      - ICINGAWEB2_GROUPS__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
      - ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__groups=${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}
      - ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__permissions="*"
      - ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
      - ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
      - ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
      - ICINGAWEB2_DEFAULT_ADMIN_PASS=${ICINGAWEB_DEFAULT_ADMIN_PASS:-icingaadmin}
      - ICINGAWEB2_GRAFANA_CONF__grafana__host=grafana
      - ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboard=
      - ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboarduid=
      - ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboardpanelid=1
      - ICINGAWEB2_GRAFANA_CONF__grafana__defaultorgid=1
      - ICINGAWEB2_GRAFANA_CONF__grafana__timerange=12h
      - ICINGAWEB2_GRAFANA_GRAPH__check_command__name=
      - ICINGAWEB2_GRAFANA_GRAPH__check_command__dashboard=
      - ICINGAWEB2_GRAFANA_GRAPH__check_command__dashboarduid=
      - ICINGAWEB2_GRAFANA_GRAPH__check_command__panelId=

Sources

Icingaweb2

Grafana

S
Description
No description provided
Readme MIT
96 KiB
Languages
Python 56.2%
Dockerfile 30.3%
Shell 13.5%