### Database Resource Configuration Examples Source: https://github.com/icinga/icingaweb2/blob/main/doc/04-Resources.md These examples demonstrate how to configure different database resources. They cover TCP/IP connections for MySQL and Unix domain socket connections for both MySQL and PostgreSQL. ```ini [icingaweb-mysql-tcp] type = db db = mysql host = 127.0.0.1 port = 3306 username = icingaweb password = icingaweb dbname = icingaweb ``` ```ini [icingaweb-mysql-socket] type = db db = mysql host = localhost username = icingaweb password = icingaweb dbname = icingaweb ``` ```ini [icingaweb-pgsql-socket] type = db db = pgsql host = /var/run/postgresql port = 5432 username = icingaweb password = icingaweb dbname = icingaweb ``` -------------------------------- ### Create Icinga Web Setup Token Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Generates a token required for authenticating with the Icinga Web setup wizard. Use this command before starting the web setup. ```bash icingacli setup token create ``` -------------------------------- ### Example .po File Structure Source: https://github.com/icinga/icingaweb2/blob/main/modules/translation/doc/03-Translation.md This is an example of the structure of a .po file after strings have been refreshed. You can manually edit the `msgstr` fields to provide translations. ```po # Icinga Web 2 - Head for multiple monitoring backends. # Copyright (C) 2014 Icinga Development Team # This file is distributed under the same license as Development Module. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Development Module (0.0.1)\n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2014-09-09 10:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ll_CC\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: /modules/yourmodule/configuration.php:6 msgid "yourmodule" msgstr "" ``` -------------------------------- ### Show Icinga Web Setup Token Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Displays the existing Icinga Web setup token if you have forgotten it. This command is useful for retrieving a previously generated token. ```bash icingacli setup token show ``` -------------------------------- ### Theme Configuration Example Source: https://github.com/icinga/icingaweb2/blob/main/doc/03-Configuration.md Define theme settings, including the default theme and whether users can change it. Theme names are case-sensitive. ```ini [themes] disabled = "1" default = "high-contrast" ``` -------------------------------- ### Global Configuration Example Source: https://github.com/icinga/icingaweb2/blob/main/doc/03-Configuration.md Configure global application settings such as stack trace visibility, module paths, and resource definitions. Ensure 'config_resource' points to a valid resource. ```ini [global] show_stacktraces = "0" config_resource = "icingaweb_db" module_path = "/usr/share/icingaweb2/modules" ``` -------------------------------- ### Start New PHP-FPM Service Source: https://github.com/icinga/icingaweb2/blob/main/doc/80-Upgrading.md Start the new PHP-FPM service after upgrading to PHP 7.3 on RHEL/CentOS 7. ```bash systemctl start rh-php73-php-fpm.service ``` -------------------------------- ### Logging Configuration Example Source: https://github.com/icinga/icingaweb2/blob/main/doc/03-Configuration.md Set up logging behavior, specifying the log destination (file, syslog, etc.), level, and associated parameters. For file logging, ensure the path is writable. ```ini [logging] log = "file" level = "DEBUG" file = "/usr/share/icingaweb2/log/icingaweb2.log" ``` -------------------------------- ### Configure Icinga Web 2 Authentication Backend Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Example configuration for authentication.ini to use the database backend for authentication. ```ini vim /etc/icingaweb2/authentication.ini [icingaweb2] backend = "db" resource = "icingaweb2" ``` -------------------------------- ### Install Icinga Web 2 on CentOS Source: https://github.com/icinga/icingaweb2/blob/main/RELEASE.md Install Icinga Web 2 and icingacli on a CentOS system using yum. This includes setting up the EPEL repository and enabling SCL. ```bash docker run -ti centos:latest bash yum -y install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm yum -y install centos-release-scl yum -y install icingaweb2 icingacli icingacli ``` -------------------------------- ### Configure Icinga Web 2 Roles and Permissions Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Example configuration for roles.ini to grant all permissions to the 'icingaadmin' user. ```ini vim /etc/icingaweb2/roles.ini [admins] users = "icingaadmin" permissions = "*" ``` -------------------------------- ### Configure Icinga Web 2 General Settings Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Example configuration for config.ini to set logging and preferences for Icinga Web 2. ```ini vim /etc/icingaweb2/config.ini [logging] log = "syslog" level = "ERROR" application = "icingaweb2" [preferences] type = "db" resource = "icingaweb2" ``` -------------------------------- ### Install Icinga Web 2 on Debian Source: https://github.com/icinga/icingaweb2/blob/main/RELEASE.md Installs Icinga Web 2 and its CLI tool on a Debian system. Ensure you have the correct distribution codename for the package repository. ```bash docker run -ti debian:stretch bash apt-get update && apt-get install -y wget curl gnupg apt-transport-https DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \ echo "deb https://packages.icinga.com/debian icinga-${DIST} main" > \ /etc/apt/sources.list.d/${DIST}-icinga.list echo "deb-src https://packages.icinga.com/debian icinga-${DIST} main" >> \ /etc/apt/sources.list.d/${DIST}-icinga.list curl https://packages.icinga.com/icinga.key | apt-key add - apt-get -y install icingaweb2 icingacli ictingacli ``` -------------------------------- ### Configure Icinga Web 2 Database Resources Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Example configuration for resources.ini to connect Icinga Web 2 to MySQL/MariaDB databases for Icinga Web 2 and Icinga 2 IDO. ```ini vim /etc/icingaweb2/resources.ini [icingaweb2] type = "db" db = "mysql" host = "localhost" port = "3306" dbname = "icingaweb2" username = "icingaweb2" password = "icingaweb2" [icinga2] type = "db" db = "mysql" host = "localhost" port = "3306" dbname = "icinga" username = "icinga" password = "icinga" ``` -------------------------------- ### Install Module from Git Repository Source: https://github.com/icinga/icingaweb2/blob/main/doc/08-Modules.md This script clones a module from a Git repository to the specified modules path and then enables the module. Ensure MODULE_NAME, MODULE_VERSION, and MODULE_AUTHOR are correctly set. ```sh MODULE_NAME="map" MODULE_VERSION="v1.1.0" MODULE_AUTHOR="nbuchwitz" REPO="https://github.com/${MODULE_AUTHOR}/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icyngacli module enable "${MODULE_NAME}" ``` -------------------------------- ### Configure Content Security Policy Source: https://github.com/icinga/icingaweb2/blob/main/doc/03-Configuration.md Example of how to configure Content Security Policy settings in the config.ini file. This includes enabling strict CSP, custom CSP, and specifying module, dashboard, and navigation inclusion. ```ini [security] use_strict_csp = "1" use_custom_csp = "0" custom_csp = "frame-src https://example.com" csp_enable_modules = "1" csp_enable_dashboards = "1" csp_enable_navigation = "1" ``` -------------------------------- ### Create Icinga Web 2 Configuration Directory Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Creates the necessary configuration directory for Icinga Web 2, ensuring correct ownership and permissions. This command automates the setup of the configuration structure. ```bash icingacli setup config directory ``` -------------------------------- ### Install Module from Tarball Source: https://github.com/icinga/icingaweb2/blob/main/doc/08-Modules.md This script downloads a module tarball, extracts it to the specified modules path, and then enables the module. Adjust MODULE_NAME, MODULE_VERSION, and MODULE_AUTHOR variables as needed. ```sh MODULE_NAME="map" MODULE_VERSION="v1.1.0" MODULE_AUTHOR="nbuchwitz" MODULES_PATH="/usr/share/icingaweb2/modules" MODULE_PATH="${MODULES_PATH}/${MODULE_NAME}" RELEASES="https://github.com/${MODULE_AUTHOR}/icingaweb2-module-${MODULE_NAME}/archive" mkdir "$MODULE_PATH" \ && wget -q $RELEASES/${MODULE_VERSION}.tar.gz -O - \ | tar xfz - -C "$MODULE_PATH" --strip-components 1 icyngacli module enable "${MODULE_NAME}" ``` -------------------------------- ### Define a Role in roles.ini Source: https://github.com/icinga/icingaweb2/blob/main/doc/06-Security.md Example of a role definition in the `/etc/icingaweb2/roles.ini` file. This role grants broad configuration access but restricts access to the icingadb module based on host names. ```ini [winadmin] users = "jdoe, janedoe" groups = "admin" permissions = "config/*, module/icingadb, icingadb/command/schedule-check" refusals = "config/authentication" icyngadb/filter/objects = "host.name=*win*" ``` -------------------------------- ### Create Default User in Puppet Manifest Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Example of creating a default user with a password hash in Puppet, ensuring the '$' character is escaped. ```puppet exec { 'create default user': command => "mysql -h '${db_host}' -P '${db_port}' -u '${db_username}' -p'${db_password}' '${db_name}' -Ns -e 'INSERT INTO icingaweb_user (name, active, password_hash) VALUES ("icingaadmin", 1, "$2y$10$QnXfBjl1RE6TqJcY85ZKJuP9AvAV3ont9QihMTFQ/D/vHmAWaz.lG")'", refreshonly => true, } ``` -------------------------------- ### List PostgreSQL Upgrade Scripts Source: https://github.com/icinga/icingaweb2/blob/main/doc/80-Upgrading.md List available PostgreSQL upgrade scripts to identify the correct file for your version upgrade. The path may vary based on installation method. ```bash $ ls /usr/share/doc/icingaweb2/schema/pgsql-upgrades/ 2.0.0beta3-2.0.0rc1.sql 2.5.0.sql ``` -------------------------------- ### List MySQL Upgrade Scripts Source: https://github.com/icinga/icingaweb2/blob/main/doc/80-Upgrading.md List available MySQL upgrade scripts to identify the correct file for your version upgrade. The path may vary based on installation method. ```bash $ ls /usr/share/doc/icingaweb2/schema/mysql-upgrades/ 2.0.0beta3-2.0.0rc1.sql 2.5.0.sql ``` -------------------------------- ### LDAP Active Directory Groups Configuration Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Configure Active Directory groups by specifying the backend, resource, and relevant LDAP attributes. This example uses `msldap` for Active Directory. ```ini # vim /etc/icingaweb2/groups.ini [active directory] backend = "msldap" resource = "auth_ad" group_class = "group" user_class = "user" user_name_attribute = "userPrincipalName" ``` -------------------------------- ### Apache Configuration for Kiosk Mode Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Configure Apache to automatically start Icinga Web 2 in kiosk mode for specific IP addresses. Replace 'X.X.X.X' with the actual IP address of the kiosk. ```apache # Apache 2.4 SetEnvIf Remote_Addr "X.X.X.X" REMOTE_USER=kiosk Require all granted ``` -------------------------------- ### Clone and Set Up Remote Repository Source: https://github.com/icinga/icingaweb2/blob/main/CONTRIBUTING.md Clone the Icinga Web 2 repository and set up the 'upstream' remote to track the main project. This is the initial step for contributing. ```bash git clone git@github.com:dnsmichi/icingaweb2.git cd icingaweb2 ``` ```bash git remote add upstream https://github.com/icinga/icingaweb2.git ``` ```bash git fetch --all git pull upstream HEAD ``` -------------------------------- ### Create Module Structure for Custom Password Policy Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Set up the directory structure for a custom password policy module. This includes creating the necessary directories and the `module.info` file. ```bash mkdir -p /usr/share/icingaweb2/modules/mypasswordpolicy/library/Mypasswordpolicy/ProvidedHook cd /usr/share/icingaweb2/modules/mypasswordpolicy ``` ```ini Module: mypasswordpolicy Name: My Password Policy Version: 1.0.0 Description: Custom password policy implementation ``` -------------------------------- ### Create PostgreSQL User and Database Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Commands to create the 'icingaweb' user and database in PostgreSQL, specifying locale and template. ```bash # su -l postgres createuser -P icingaweb createdb -E UTF8 --locale en_US.UTF-8 -T template0 -O icingaweb icingaweb ``` -------------------------------- ### Configure PostgreSQL Remote Authentication Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Example entry for pg_hba.conf to allow remote connections from a specific Icinga Web server IP address. ```postgresql host icingaweb icingaweb 192.0.2.43/32 scram-sha-256 ``` -------------------------------- ### Create Release Commit Source: https://github.com/icinga/icingaweb2/blob/main/RELEASE.md Create a commit with the release version. This is a preparatory step before tagging the release. ```bash git commit -v -a -m "Release version $VERSION" ``` -------------------------------- ### Manually Add Translation String Source: https://github.com/icinga/icingaweb2/blob/main/modules/translation/doc/03-Translation.md After refreshing, you can manually add or modify translation strings within the .po file. This example shows how to provide a German translation for 'Dummy'. ```po #: /modules/yourmodule/configuration.php:6 msgid "Dummy" msgstr "Attrappe" ``` -------------------------------- ### Enable Fullscreen View Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Use the `showFullscreen` parameter to hide the left menu and optimize the layout for full-screen resolution. This is useful for dedicated dashboard displays. ```URL http://localhost/icingaweb2/dashboard?showFullscreen ``` -------------------------------- ### Configure Database Authentication Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Define a database resource in `authentication.ini` to enable database authentication. Ensure the `backend` is set to `db` and `resource` points to your defined database resource. ```ini # vim /etc/icingaweb2/authentication.ini [auth_db] backend = db resource = icingaweb-mysql ``` -------------------------------- ### Upgrade MySQL Database Schema Source: https://github.com/icinga/icingaweb2/blob/main/doc/80-Upgrading.md Apply incremental database schema upgrade files for MySQL. Ensure you use the correct path to the upgrade scripts based on your installation method. ```bash # mysql -u root -p icingaweb2 < /usr/share/doc/icingaweb2/schema/mysql-upgrades/.sql ``` ```bash # mysql -u root -p icinga < /usr/share/doc/icingaweb2/schema/mysql-upgrades/2.5.0.sql ``` -------------------------------- ### Create Icinga Web 2 Database and User for MySQL/MariaDB Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Commands to create the icingaweb2 database and grant necessary privileges to a user for MySQL/MariaDB. ```bash sudo mysql -p CREATE DATABASE icingaweb2; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, ALTER, CREATE VIEW, INDEX, EXECUTE ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'icingaweb2'; quit mysql -p icingaweb2 < /usr/share/icingaweb2/schema/mysql.schema.sql ``` -------------------------------- ### Create Icinga Web System Group and Add Web Server User Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md.d/From-Source.md Create the 'icingaweb2' system group and add your web server's user to this group. This is a crucial step for file permissions and web server integration. ```bash groupadd -r icingaweb2 usermod -a -G icingaweb2 ``` -------------------------------- ### Build Icinga Web 2 Documentation Source: https://github.com/icinga/icingaweb2/blob/main/RELEASE.md Manually updates the Icinga Web 2 documentation. This command should be run on the webserver. ```bash cd /usr/local/icinga-docs-tools && ./build-docs.rb -c /var/www/docs/config/icingaweb2-latest.yml ``` -------------------------------- ### Refresh Translation Strings for a Module Source: https://github.com/icinga/icingaweb2/blob/main/modules/translation/doc/03-Translation.md Use this command to scan module files for translatable strings and update the .po file. Ensure the gettext package is installed and the translation module is activated. ```bash icingacli translation refresh module yourmodule de_DE ``` -------------------------------- ### Create MySQL/MariaDB Database and User Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Use these SQL commands to create the necessary database and user for Icinga Web in MySQL or MariaDB. ```sql CREATE DATABASE icingaweb; CREATE USER 'icingaweb'@'localhost' IDENTIFIED BY 'CHANGEME'; GRANT ALL ON icingaweb.* TO 'icingaweb'@'localhost'; ``` -------------------------------- ### Database Groups Configuration Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Configure database-backed groups by specifying the backend type as 'db' and the corresponding database resource name. ```ini # vim /etc/icingaweb2/groups.ini [icingaweb2] backend = "db" resource = "icingaweb_db" ``` -------------------------------- ### Enable Doc Module via CLI Source: https://github.com/icinga/icingaweb2/blob/main/modules/doc/doc/02-Installation.md Use this command to enable the Doc module from the command line interface. ```bash icingacli module enable doc ``` -------------------------------- ### Create Release Branch Source: https://github.com/icinga/icingaweb2/blob/main/RELEASE.md Create a new Git branch for the release. Use 'x.x[.x]' for standard releases and 'x.x.x-n' for releases with revisions. ```bash git checkout -b $VERSION ``` ```bash git checkout -b $VERSION-1 ``` -------------------------------- ### LDAP Active Directory Nested Groups Configuration Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Configure Active Directory groups with nested group search enabled. This example specifies a group resource, a user resource, and a base DN for group searching. ```ini # vim /etc/icingaweb2/groups.ini [ad_groups_company] backend = "msldap" resource = "ad_company" user_backend = "ad_users_company" nested_group_search = "1" base_dn = "ou=Icinga,ou=Groups,dc=company,dc=com" ``` -------------------------------- ### Customize Icinga Web 2 Landing Page Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Set the `ICINGAWEB_LANDING_PAGE` environment variable within your Apache configuration to define a custom landing page. This example sets the landing page to the 'icingadb/services/grid' view, filtered for problems. ```apache SetEnv ICINGAWEB_LANDING_PAGE "icingadb/services/grid?problems" ``` -------------------------------- ### Create Basic Auth User with htpasswd Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Use the `htpasswd` command to create or update the user credential file for basic authentication. The `-c` flag creates a new file, while omitting it adds users to an existing file. ```bash sudo htpasswd -c /etc/icingaweb2/.http-users icingaadmin ``` -------------------------------- ### Enable Module using icingacli Source: https://github.com/icinga/icingaweb2/blob/main/doc/08-Modules.md Use this command to enable a module after its files have been placed in the modules directory. Ensure the module name is correct. ```sh icingacli module enable map ``` -------------------------------- ### Configure Preferences Storage in config.ini Source: https://github.com/icinga/icingaweb2/blob/main/doc/07-Preferences.md Define the database resource for preferences storage in the global config.ini file. This section must be present to enable database-backed preferences. ```ini [global] config_resource = "icingaweb_db" ``` -------------------------------- ### Configure LDAP/AD Backends with Domains Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Define distinct domains for different LDAP/AD authentication backends in `authentication.ini`. This allows users to log in using their domain-specific credentials. ```ini # vim /etc/icingaweb2/authentication.ini [auth_icinga] backend = ldap resource = icinga_ldap user_class = inetOrgPerson user_name_attribute = uid filter = "memberOf=cn=icinga_users,cn=groups,cn=accounts,dc=icinga,dc=com" domain = "icinga.com" [auth_example] backend = msldap resource = example_ad domain = EXAMPLE ``` -------------------------------- ### Add Remote and Fetch Changes Source: https://github.com/icinga/icingaweb2/blob/main/CONTRIBUTING.md Add the contributor's repository as a remote and fetch its content to prepare for local changes. ```bash git remote add theflyingcorpse https://github.com/TheFlyingCorpse/icinga2 git fetch --all ``` -------------------------------- ### Configure Nginx Web Server Source: https://github.com/icinga/icingaweb2/blob/main/doc/02-Installation.md Generates an Nginx configuration file for Icinga Web 2. Save the output to your web server's configuration directory. ```bash icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public ``` -------------------------------- ### Configure LDAP Resource Source: https://github.com/icinga/icingaweb2/blob/main/doc/04-Resources.md Use this configuration to connect to an LDAP directory for authentication and authorization. Ensure all required fields like hostname, port, root_dn, bind_dn, and bind_pw are correctly set. ```ini [ad] type = ldap hostname = localhost port = 389 root_dn = "ou=people,dc=icinga,dc=org" bind_dn = "cn=admin,ou=people,dc=icinga,dc=org" bind_pw = admin ``` -------------------------------- ### Configure SSH Resource Source: https://github.com/icinga/icingaweb2/blob/main/doc/04-Resources.md Configure an SSH resource to enable key-based SSH authentication. Specify the username and the path to the private key file. ```ini [ssh] type = "ssh" user = "ssh-user" private_key = "/etc/icingaweb2/ssh/ssh-user" ``` -------------------------------- ### Compile .po File to .mo Source: https://github.com/icinga/icingaweb2/blob/main/modules/translation/doc/03-Translation.md After editing your .po file, compile it into a .mo file using this command. Restart the web server for the new translations to take effect. ```bash icingacli translation compile module yourmodule de_DE ``` -------------------------------- ### Set Default Domain in Configuration Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Configure a default domain in `config.ini` to simplify user logins. Users can then omit their domain when logging in if it matches the default. ```ini # vim /etc/icingaweb2/config.ini [authentication] default_domain = "icinga.com" ``` -------------------------------- ### Configure External Authentication Backend Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Use the `autologin` section in `authentication.ini` to specify an external backend for authentication. The `backend` must be set to `external`. Optionally, `strip_username_regexp` can be used to modify the username. ```ini [autologin] backend = external ``` -------------------------------- ### Enable Icinga 2 Features Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Enables the 'ido-mysql' and 'api' features for Icinga 2, which are required for Icinga Web 2 integration. Run these commands on your Icinga 2 server. ```bash icinga2 feature enable ido-mysql ``` ```bash icinga2 feature enable api ``` -------------------------------- ### Configure LDAP Authentication Source: https://github.com/icinga/icingaweb2/blob/main/doc/05-Authentication.md Use this configuration to authenticate users against an LDAP server. Ensure an LDAP resource is defined in `resources.ini`. ```ini # vim /etc/icingaweb2/authentication.ini [auth_ldap] backend = ldap resource = my_ldap user_class = inetOrgPerson user_name_attribute = uid filter = "memberOf=cn=icinga_users,cn=groups,cn=accounts,dc=icinga,dc=org" ``` -------------------------------- ### Generate Apache Configuration for Icinga Web 2 Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Generates an Apache web server configuration for Icinga Web 2. The output is printed to standard output and should be saved to the appropriate Apache configuration directory. ```bash icingacli setup config webserver apache ``` -------------------------------- ### Configure Kiosk Users in roles.ini Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Define users who will have access to kiosk mode by listing them in the `roles.ini` file. Ensure these users have appropriate permissions assigned via the admin account. ```ini [kioskusers] users = "kiosk" ``` -------------------------------- ### Enable Compact and Fullscreen View Source: https://github.com/icinga/icingaweb2/blob/main/doc/20-Advanced-Topics.md Combine `showCompact` and `showFullscreen` parameters for a compact view that hides the title and upper menu, optimized for full-screen display. This is helpful for embedding dashboards into external iframes. ```URL http://localhost/icingaweb2/dashboard?showCompact&showFullscreen ```