Compare commits

...

6 Commits

Author SHA1 Message Date
dd93ea5cca fix oidc module db schema 2025-10-01 18:07:34 +02:00
14256ac816 add oidc module sql sheme 2025-10-01 18:00:06 +02:00
bcc275236e add caddy reverse proxy 2025-10-01 17:54:08 +02:00
b192ecd51c fix persistend file volume mount for influx 2025-10-01 17:46:32 +02:00
b9e1bf4b06 remove grafana expose 2025-10-01 17:45:41 +02:00
8f56b53b88 add grafana https 2025-10-01 17:45:18 +02:00
3 changed files with 126 additions and 5 deletions

View File

@@ -37,6 +37,21 @@ mv env.sample .env
# - API_ROOT_PASS # - API_ROOT_PASS
# - ICINGA_API_ICINGAWEB_PASS # - ICINGA_API_ICINGAWEB_PASS
nano .env # set your env nano .env # set your env
```
setup reverse proxy here caddy
create a file `./files/Caddyfile` with content:
```
mon.example.com {
reverse_proxy icingaweb2:8080
}
graph.example.com {
reverse_proxy grafana:3000
}
```
... or unkomment port expose on grafana and icingaweb2
... or use own reverse proxy
```
docker compose up docker compose up
``` ```

View File

@@ -1,4 +1,18 @@
services: services:
##### Reverse Proxy (remove if run own)
caddy:
image: caddy:latest
restart: always
volumes:
- ./files/Caddyfile:/etc/caddy/Caddyfile
- ./files/caddy/data:/data
- ./files/caddy/config:/config
ports:
- 80:80
- 443:443
networks:
- icinga
##### ICINGAWEB2 ##### ##### ICINGAWEB2 #####
icingaweb2: icingaweb2:
image: git.ao-it.net/docker/icingaweb2:latest image: git.ao-it.net/docker/icingaweb2:latest
@@ -8,8 +22,8 @@ services:
restart: always restart: always
volumes: volumes:
- ./files/icingaweb2:/data - ./files/icingaweb2:/data
ports: #ports:
- 8080:8080 # - 8080:8080
networks: networks:
- icinga - icinga
environment: environment:
@@ -80,6 +94,7 @@ services:
- ICINGAWEB2_GRAFANA_CONF__grafana__timerange=12h - ICINGAWEB2_GRAFANA_CONF__grafana__timerange=12h
- ICINGAWEB2_GRAFANA_CONF__grafana__shadows="1" - ICINGAWEB2_GRAFANA_CONF__grafana__shadows="1"
- ICINGAWEB2_GRAFANA_CONF__grafana__accessmode=iframe - ICINGAWEB2_GRAFANA_CONF__grafana__accessmode=iframe
- ICINGAWEB2_GRAFANA_CONF__grafana__protocol=https
db_icingaweb: db_icingaweb:
image: mariadb:latest image: mariadb:latest
@@ -103,6 +118,7 @@ services:
volumes: volumes:
- ./files/dbs/icingaweb_oidc:/var/lib/mysql - ./files/dbs/icingaweb_oidc:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
- ./modules/oidc/:/docker-entrypoint-initdb.d
networks: networks:
- icinga - icinga
environment: environment:
@@ -118,8 +134,8 @@ services:
- icingaweb2 - icingaweb2
restart: always restart: always
#user: '0' #user: '0'
ports: #ports:
- ${GRAFANA_PORT:-3000}:3000 # - ${GRAFANA_PORT:-3000}:3000
networks: networks:
- icinga - icinga
volumes: volumes:
@@ -194,7 +210,7 @@ services:
networks: networks:
- icinga - icinga
volumes: volumes:
- ./files/dbs/influx:/vol01/Docker/monitoring - ./files/dbs/influx:/var/lib/influxdb
environment: environment:
- INFLUXDB_DB=${ICINGA_INFLUX_DB:-icinga} - INFLUXDB_DB=${ICINGA_INFLUX_DB:-icinga}
- INFLUXDB_USER=${ICINGA_INFLUX_USER:-icinga} - INFLUXDB_USER=${ICINGA_INFLUX_USER:-icinga}

View File

@@ -0,0 +1,90 @@
DROP TABLE IF EXISTS tbl_group_membership;
DROP TABLE IF EXISTS tbl_group;
DROP TABLE IF EXISTS tbl_user;
DROP TABLE IF EXISTS tbl_provider;
DROP TABLE IF EXISTS tbl_schema;
CREATE TABLE tbl_provider (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
url varchar(255) NOT NULL,
secret varchar(255) NOT NULL,
appname varchar(255) NOT NULL,
logo varchar(255) NOT NULL,
syncgroups LONGTEXT DEFAULT NULL,
defaultgroup TEXT DEFAULT NULL,
required_groups TEXT DEFAULT NULL,
nooidcgroups enum ('y', 'n') DEFAULT 'n' NOT NULL,
usernameblacklist TEXT DEFAULT NULL,
buttoncolor varchar(255) NOT NULL,
textcolor varchar(255) NOT NULL,
caption varchar(255) NOT NULL,
enforce_scheme_https enum ('y', 'n') DEFAULT 'n' NOT NULL,
enabled enum ('y', 'n') DEFAULT 'n' NOT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_provider_name (name) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_user (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
email varchar(255) DEFAULT NULL,
provider_id int(10) unsigned NOT NULL,
mapped_local_user varchar(255) DEFAULT NULL,
mapped_backend varchar(255) DEFAULT NULL,
active int(10) unsigned NOT NULL,
lastlogin bigint unsigned DEFAULT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_user_name (name) USING BTREE,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_group (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
provider_id int(10) unsigned NOT NULL,
parent int(10) DEFAULT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_group_name (name) USING BTREE,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_group_membership (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
group_id int(10) unsigned NOT NULL,
provider_id int(10) unsigned NOT NULL,
username varchar(255) NOT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE,
FOREIGN KEY (group_id)
REFERENCES tbl_group (id)
ON DELETE CASCADE,
FOREIGN KEY (username)
REFERENCES tbl_user (name)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_schema (
id int unsigned NOT NULL AUTO_INCREMENT,
version varchar(64) NOT NULL,
timestamp bigint unsigned NOT NULL,
success enum ('n', 'y') DEFAULT NULL,
reason text DEFAULT NULL,
PRIMARY KEY (id),
CONSTRAINT idx_tbl_schema_version UNIQUE (version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
INSERT INTO tbl_schema (version, timestamp, success, reason)
VALUES ('0.5.8', UNIX_TIMESTAMP() * 1000, 'y', NULL);