From a07e27bff6502c8504d96d6e7262993fee1bf4ab Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 7 Dec 2025 02:44:12 +0100 Subject: [PATCH 01/10] feat: checkmk service --- checkmk/compose.yaml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 checkmk/compose.yaml diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml new file mode 100644 index 0000000..b4d562d --- /dev/null +++ b/checkmk/compose.yaml @@ -0,0 +1,41 @@ +services: + checkmk: + image: checkmk/check-mk-raw:2.3.0-latest + container_name: checkmk + restart: unless-stopped + ports: + - "5000:5000" # UI + - "6556:6556" # AGENT + + volumes: + - ./checkmk:/omd/sites + + environment: + CMK_SITE_ID: "cmk" + + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik-proxy" + + # Prod Router + - "traefik.http.routers.checkmk.rule=Host(`checkmk.forust.xyz`)" + - "traefik.http.routers.checkmk.entrypoints=websecure" + - "traefik.http.routers.checkmk.tls=true" + - "traefik.http.services.checkmk.loadbalancer.server.port=5000" + + # Local Router + - "traefik.http.routers.checkmk-local.rule=Host(`checkmk.workstation.internal`) || Host(`checkmk.internal`)" + - "traefik.http.routers.checkmk-local.entrypoints=websecure" + - "traefik.http.routers.checkmk-local.tls=true" + + # Dev Router + - "traefik.http.routers.checkmk-dev.rule=Host(`checkmk.gigaforust.internal`)" + - "traefik.http.routers.checkmk-dev.entrypoints=websecure" + - "traefik.http.routers.checkmk-dev.tls=true" + + networks: + - traefik-proxy + +networks: + traefik-proxy: + external: true -- 2.52.0 From 9f784d2c316ae1dc9c8d2eed864f4e3b3266b880 Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 7 Dec 2025 02:59:18 +0100 Subject: [PATCH 02/10] chore: gitignore checkmk's files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3de6b68..592cc49 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ metube/MeTube_downloads uptime-kuma/data/ termix/termix-data/* cfddns/config.json +checkmk/checkmk/* # Steaming services files streaming/jellyfin/* -- 2.52.0 From 9c5e037567e3789d1938c0d6e55d903a8abee4fe Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 7 Dec 2025 04:10:32 +0100 Subject: [PATCH 03/10] refactor: switch to official checkmk dockercompose --- checkmk/.env.example | 2 ++ checkmk/compose.yaml | 29 +++++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 checkmk/.env.example diff --git a/checkmk/.env.example b/checkmk/.env.example new file mode 100644 index 0000000..a57b7d2 --- /dev/null +++ b/checkmk/.env.example @@ -0,0 +1,2 @@ +CMK_PASSWORD=password +TZ=Europe/Berlin \ No newline at end of file diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index b4d562d..4d8e69d 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -1,18 +1,21 @@ services: checkmk: - image: checkmk/check-mk-raw:2.3.0-latest - container_name: checkmk - restart: unless-stopped - ports: - - "5000:5000" # UI - - "6556:6556" # AGENT + image: "checkmk/check-mk-raw:2.4.0-latest" + container_name: "monitoring" + environment: + - CMK_PASSWORD=${CMK_PASSWORD:-password} + - TZ=${TZ:-Europe/Moscow} + - CMK_SITE_ID=cmk volumes: - - ./checkmk:/omd/sites - - environment: - CMK_SITE_ID: "cmk" - + - checkmk:/omd/sites + tmpfs: + - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 + ports: + - 5000:5000 + - 6776:8000 + - 6556:6556 + restart: always labels: - "traefik.enable=true" - "traefik.docker.network=traefik-proxy" @@ -36,6 +39,8 @@ services: networks: - traefik-proxy +volumes: + checkmk: networks: traefik-proxy: - external: true + external: true \ No newline at end of file -- 2.52.0 From 1c75382a6eacfc6bf15617d565f3565915d07ad0 Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 7 Dec 2025 04:14:56 +0100 Subject: [PATCH 04/10] fix: replace container_name to avoid misunderstandings --- checkmk/compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index 4d8e69d..da2c8bd 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -1,7 +1,7 @@ services: checkmk: image: "checkmk/check-mk-raw:2.4.0-latest" - container_name: "monitoring" + container_name: "checkmk" environment: - CMK_PASSWORD=${CMK_PASSWORD:-password} - TZ=${TZ:-Europe/Moscow} -- 2.52.0 From bfb21adff74a085623af6ccacfb95e6b7f7816ae Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 7 Dec 2025 22:06:30 +0100 Subject: [PATCH 05/10] using local directory for storing chkmk data --- checkmk/compose.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index da2c8bd..512474f 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -8,11 +8,11 @@ services: - CMK_SITE_ID=cmk volumes: - - checkmk:/omd/sites + - ./checkmk:/omd/sites tmpfs: - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 ports: - - 5000:5000 + - 5555:5000 - 6776:8000 - 6556:6556 restart: always @@ -39,8 +39,6 @@ services: networks: - traefik-proxy -volumes: - checkmk: networks: traefik-proxy: external: true \ No newline at end of file -- 2.52.0 From 1f1e13ff39cbf0a9a8f13400d42e3188f99385ae Mon Sep 17 00:00:00 2001 From: mr-forust Date: Thu, 1 Jan 2026 00:25:17 +0100 Subject: [PATCH 06/10] WIP: fix: update checkmk configuration for correct routing --- checkmk/compose.yaml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index 512474f..40a89a6 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -4,7 +4,6 @@ services: container_name: "checkmk" environment: - CMK_PASSWORD=${CMK_PASSWORD:-password} - - TZ=${TZ:-Europe/Moscow} - CMK_SITE_ID=cmk volumes: @@ -12,33 +11,39 @@ services: tmpfs: - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 ports: - - 5555:5000 + - 5000:5000 - 6776:8000 - 6556:6556 restart: always labels: - "traefik.enable=true" - - "traefik.docker.network=traefik-proxy" - - # Prod Router - - "traefik.http.routers.checkmk.rule=Host(`checkmk.forust.xyz`)" - - "traefik.http.routers.checkmk.entrypoints=websecure" - - "traefik.http.routers.checkmk.tls=true" + - "traefik.docker.network=proxy" - "traefik.http.services.checkmk.loadbalancer.server.port=5000" + # Prod Router + - "traefik.http.routers.checkmk.rule=Host(`cmk.forust.xyz`)" + - "traefik.http.routers.checkmk.entrypoints=websecure" + - "traefik.http.routers.checkmk.service=checkmk" + - "traefik.http.routers.checkmk.middlewares=security-headers@file" + - "traefik.http.routers.checkmk.tls=true" + # Local Router - - "traefik.http.routers.checkmk-local.rule=Host(`checkmk.workstation.internal`) || Host(`checkmk.internal`)" + - "traefik.http.routers.checkmk-local.rule=Host(`cmk.workstation.internal`) || Host(`cmk.internal`)" - "traefik.http.routers.checkmk-local.entrypoints=websecure" + - "traefik.http.routers.checkmk-local.service=checkmk" + - "traefik.http.routers.checkmk-local.middlewares=security-headers@file" - "traefik.http.routers.checkmk-local.tls=true" # Dev Router - - "traefik.http.routers.checkmk-dev.rule=Host(`checkmk.gigaforust.internal`)" + - "traefik.http.routers.checkmk-dev.rule=Host(`cmk.gigaforust.internal`)" + - "traefik.http.routers.checkmk-dev.middlewares=security-headers@file" + - "traefik.http.routers.checkmk-dev.service=checkmk" - "traefik.http.routers.checkmk-dev.entrypoints=websecure" - "traefik.http.routers.checkmk-dev.tls=true" networks: - - traefik-proxy + - proxy networks: - traefik-proxy: + proxy: external: true \ No newline at end of file -- 2.52.0 From 02f4e0ab4225e8b1b39a251efc0e9e377172dd7d Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 18 Jan 2026 22:39:48 +0100 Subject: [PATCH 07/10] chore: switch to named volumes for site storing --- checkmk/compose.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index 40a89a6..a16c514 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -7,7 +7,7 @@ services: - CMK_SITE_ID=cmk volumes: - - ./checkmk:/omd/sites + - sites:/omd/sites tmpfs: - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 ports: @@ -46,4 +46,6 @@ services: networks: proxy: - external: true \ No newline at end of file + external: true +volumes: + sites: \ No newline at end of file -- 2.52.0 From 697027931193a0dbf377f46f616ed30f24da6bb4 Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 18 Jan 2026 23:09:41 +0100 Subject: [PATCH 08/10] fix: remove checkmk port for docker cmk agent, using external agent --- checkmk/compose.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index a16c514..1ca7bc1 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -13,7 +13,6 @@ services: ports: - 5000:5000 - 6776:8000 - - 6556:6556 restart: always labels: - "traefik.enable=true" -- 2.52.0 From 6d97246997393030760514821d093715d11bc86b Mon Sep 17 00:00:00 2001 From: mr-forust Date: Mon, 19 Jan 2026 00:08:16 +0100 Subject: [PATCH 09/10] fix: change checkmk container restart policy to 'unless-stopped' --- checkmk/compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/checkmk/compose.yaml b/checkmk/compose.yaml index 1ca7bc1..5cc9cc0 100644 --- a/checkmk/compose.yaml +++ b/checkmk/compose.yaml @@ -13,7 +13,7 @@ services: ports: - 5000:5000 - 6776:8000 - restart: always + restart: unless-stopped labels: - "traefik.enable=true" - "traefik.docker.network=proxy" @@ -47,4 +47,4 @@ networks: proxy: external: true volumes: - sites: \ No newline at end of file + sites: -- 2.52.0 From 5fe8af82d594fcb051d0d1df2213041bbffc5d71 Mon Sep 17 00:00:00 2001 From: mr-forust Date: Tue, 30 Dec 2025 22:44:52 +0100 Subject: [PATCH 10/10] Revert "fix: clean up traefik configuration and add redirect middleware" This reverts commit dc7fe64fbcecaa6325e877ef23585051820ae302. --- traefik/compose.yaml | 3 +++ traefik/dynamic/middlewares.yml | 5 +++++ traefik/dynamic/redirect.yml | 15 --------------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/traefik/compose.yaml b/traefik/compose.yaml index eff00c3..492f401 100644 --- a/traefik/compose.yaml +++ b/traefik/compose.yaml @@ -19,11 +19,14 @@ services: - "--entryPoints.web.address=:80" - "--entryPoints.websecure.address=:443" - "--entryPoints.websecure.http.tls=true" + - "--entryPoints.web.http.redirections.entryPoint.to=websecure" + - "--entryPoints.web.http.redirections.entryPoint.scheme=https" - "--entryPoints.ssh.address=:2221" # Let's Encrypt - "--certificatesresolvers.letsencrypt.acme.email=${EMAIL}" - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json" + - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" # # STAGING # - "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" diff --git a/traefik/dynamic/middlewares.yml b/traefik/dynamic/middlewares.yml index 0dba63f..40eddfb 100644 --- a/traefik/dynamic/middlewares.yml +++ b/traefik/dynamic/middlewares.yml @@ -1,5 +1,10 @@ http: middlewares: + # HTTPS Redirect + redirect-https: + redirectScheme: + scheme: https + permanent: true # Cloudflare IP Whitelist cloudflare-ipwhitelist: ipWhiteList: diff --git a/traefik/dynamic/redirect.yml b/traefik/dynamic/redirect.yml index fdcea94..334325f 100644 --- a/traefik/dynamic/redirect.yml +++ b/traefik/dynamic/redirect.yml @@ -1,10 +1,4 @@ http: - middlewares: - redirect-https: - redirectScheme: - scheme: https - permanent: true - routers: acme-challenge-exempt: rule: "PathPrefix(`/.well-known/acme-challenge`)" @@ -12,12 +6,3 @@ http: - web service: noop@internal priority: 100 - - http-catchall: - rule: "HostRegexp(`{host:.+}`)" - entryPoints: - - web - middlewares: - - redirect-https - service: noop@internal - priority: 1 -- 2.52.0