anima 97b0bebfac
All checks were successful
build container icingaweb2 / build (push) Successful in 4m4s
add the option for variable delimiter
2025-02-01 15:17:04 +01:00
2025-02-01 11:17:55 +01:00
2025-02-01 14:07:52 +01:00
2025-02-01 14:59:43 +01:00
2025-02-01 11:16:41 +01:00
2025-02-01 14:59:43 +01:00
2025-01-29 22:54:26 +01:00
2025-02-01 14:59:43 +01:00
2025-02-01 11:16:41 +01:00

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 ...

If you run the setup without any environment vars the setup token will be printet in docker log!

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 no (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.
  • As long as you don't need . in Section's or Key's you can use both spellings of docker compose environment

So will this:

ICINGAWEB2_CONF__global__config_backend=db

or

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 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

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.

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