Files
icingaweb2/README.md
anima 094d29b180
All checks were successful
build container icingaweb2 / build (push) Successful in 4m18s
change delemiter from . to __
2025-02-01 14:07:52 +01:00

7.4 KiB
Raw Blame History

Docker IcingaWeb2

Build Status

Designed with https://git.ao-it.net/docker/icinga2

quick start

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
nano .env     # edit your settings
docker compose up -d

For a full deployment see: comming soon ...

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.
  • 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_AUTH grafana /etc/icingaweb2/modules/grafana/grafana.ini Grafana Preparations
ICINGAWEB2_GRAFANA_GRAPH grafana /etc/icingaweb2/modules/grafana/graphs.ini Graph Configuration

static vars

var description
ICINGAWEB2_CONF_ONCE if true: all configuration setups (above) run only on fist setup.
ICINGAWEB2_DB_RESOURCE_NAME needed for setup scrip to know witch database is used for users
ICINGAWEB2_DEFAULT_ADMIN_USER default admin username
ICINGAWEB2_DEFAULT_ADMIN_PASS default admin password

easy setup

If you use the example, than you kan 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 icinga. Vars for the container have the 2

example

See compose.yml.
This is for environment priview

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_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__type=db
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__db=mysql
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__host=${ICINGA_DB_HOST:-db_icinga}
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__dbname=${ICINGA_DB:-icingadb}
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__username=${ICINGA_DB_USER:-icingadb}
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__password=${ICINGA_DB_PASS:-icingadb}
      - ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__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_ICINGADB_CONF__icingadb__resource=icingadb
      - ICINGAWEB2_ICINGADB_REDIS__redis1__host=redis
      - ICINGAWEB2_ICINGADB_REDIS__redis1__port=6379
      - ICINGAWEB2_ICINGADB_API__icinga2__transport=api
      - ICINGAWEB2_ICINGADB_API__icinga2__host=icinga2
      - ICINGAWEB2_ICINGADB_API__icinga2__port=5665
      - ICINGAWEB2_ICINGADB_API__icinga2__username=icingaweb
      - ICINGAWEB2_ICINGADB_API__icinga2__password=icingaweb
      - 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}

If you ask why the hell vars with . :

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 tested and i am not sure i will recommend this...
For now be save and use it only for inital setup.