From eaff380d77d1fc0d2fc2e5980848631332521dfd Mon Sep 17 00:00:00 2001 From: iRazz Date: Fri, 15 May 2026 04:13:23 +0300 Subject: [PATCH 1/4] add uptimekit --- blueprints/uptimekit/docker-compose.yml | 95 +++++++++++++++++++++++++ blueprints/uptimekit/template.toml | 24 +++++++ blueprints/uptimekit/uptimekit.svg | 3 + 3 files changed, 122 insertions(+) create mode 100644 blueprints/uptimekit/docker-compose.yml create mode 100644 blueprints/uptimekit/template.toml create mode 100644 blueprints/uptimekit/uptimekit.svg diff --git a/blueprints/uptimekit/docker-compose.yml b/blueprints/uptimekit/docker-compose.yml new file mode 100644 index 00000000..5b1ee730 --- /dev/null +++ b/blueprints/uptimekit/docker-compose.yml @@ -0,0 +1,95 @@ +services: + dash: + image: ghcr.io/uptimekit/dash:latest + ports: + - "${DASH_PORT:-3000}:3000" + env_file: + - .env + environment: + - DATABASE_URL=postgresql://postgres:postgres@db:5432/uptimekit + - CLICKHOUSE_URL=http://clickhouse:8123 + - CLICKHOUSE_USER=default + - CLICKHOUSE_PASSWORD=clickhouse + - REDIS_URL=redis://redis:6379 + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + healthcheck: + test: + [ + "CMD-SHELL", + "IP=$$(hostname -i | awk '{print $$1}'); wget -qO- \"http://$$IP:3000/api/health\" >/dev/null 2>&1", + ] + interval: 5s + timeout: 5s + retries: 12 + start_period: 20s + restart: always + + status-page: + image: ghcr.io/uptimekit/status-page:latest + ports: + - "${STATUS_PAGE_PORT:-3001}:3001" + env_file: + - .env + environment: + - DATABASE_URL=postgresql://postgres:postgres@db:5432/uptimekit + - CLICKHOUSE_URL=http://clickhouse:8123 + - CLICKHOUSE_USER=default + - CLICKHOUSE_PASSWORD=clickhouse + - REDIS_URL=redis://redis:6379 + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + clickhouse: + condition: service_started + dash: + condition: service_healthy + restart: always + + db: + image: postgres:18-alpine + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: uptimekit + volumes: + - db_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d uptimekit"] + interval: 5s + timeout: 5s + retries: 12 + start_period: 10s + restart: always + + redis: + image: redis:8.0-alpine + volumes: + - redis_data:/data + restart: always + + clickhouse: + image: clickhouse/clickhouse-server:latest + volumes: + - clickhouse_data:/var/lib/clickhouse + environment: + CLICKHOUSE_DB: uptimekit + CLICKHOUSE_USER: default + CLICKHOUSE_PASSWORD: clickhouse + CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 + user: "root" + ulimits: + nofile: + soft: 262144 + hard: 262144 + restart: always + +volumes: + db_data: + clickhouse_data: + redis_data: \ No newline at end of file diff --git a/blueprints/uptimekit/template.toml b/blueprints/uptimekit/template.toml new file mode 100644 index 00000000..bc2219ce --- /dev/null +++ b/blueprints/uptimekit/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" +second_domain = "${domain}" +secret_base = "${base64:64}" + +[config] +[[config.domains]] +serviceName = "dash" +port = 3000 +host = "${main_domain}" +[[config.domains]] +serviceName = "status-page" +port = 3001 +host = "${second_domain}" + + +[config.env] +BETTER_AUTH_SECRET = "${secret_base}" +BETTER_AUTH_URL = "${main_domain}" +NEXT_PUBLIC_URL = "${main_domain}" +DASH_PORT=3000 +STATUS_PAGE_PORT=3001 + +[[config.mounts]] \ No newline at end of file diff --git a/blueprints/uptimekit/uptimekit.svg b/blueprints/uptimekit/uptimekit.svg new file mode 100644 index 00000000..2d11d31e --- /dev/null +++ b/blueprints/uptimekit/uptimekit.svg @@ -0,0 +1,3 @@ + + + From b88e276f69a3962d2de975c46e686e646cbec790 Mon Sep 17 00:00:00 2001 From: iRazz Date: Fri, 15 May 2026 04:19:29 +0300 Subject: [PATCH 2/4] add uptimekit --- meta.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/meta.json b/meta.json index 8be7825d..af41a89f 100644 --- a/meta.json +++ b/meta.json @@ -6413,6 +6413,24 @@ "monitoring" ] }, + { + "id": "uptimekit", + "name": "Uptimekit", + "version": "3.1.0", + "description": "The modern open-source status page and monitoring solution.", + "logo": "uptimekit.svg", + "links": { + "github": "https://github.com/uptimekit/uptimekit", + "website": "https://uptimekit.dev/", + "docs": "https://docs.uptimekit.dev/" + }, + "tags": [ + "monitoring", + "uptime", + "status-page", + "distributed" + ] + }, { "id": "usesend", "name": "useSend", @@ -6800,4 +6818,4 @@ "multi-tenant" ] } -] +] \ No newline at end of file From 2e480e3c5312de7b0c65f860d9c09a150f126bab Mon Sep 17 00:00:00 2001 From: iRazz Date: Fri, 15 May 2026 04:29:29 +0300 Subject: [PATCH 3/4] add uptimekit --- blueprints/uptimekit/template.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprints/uptimekit/template.toml b/blueprints/uptimekit/template.toml index bc2219ce..32f3a764 100644 --- a/blueprints/uptimekit/template.toml +++ b/blueprints/uptimekit/template.toml @@ -16,8 +16,8 @@ host = "${second_domain}" [config.env] BETTER_AUTH_SECRET = "${secret_base}" -BETTER_AUTH_URL = "${main_domain}" -NEXT_PUBLIC_URL = "${main_domain}" +BETTER_AUTH_URL = "http://${main_domain}" +NEXT_PUBLIC_URL = "http://${main_domain}" DASH_PORT=3000 STATUS_PAGE_PORT=3001 From 495f22c52005191ecf82a864ba804ce298bbab1a Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Wed, 8 Jul 2026 02:00:49 -0600 Subject: [PATCH 4/4] fix: postgres 18 data dir mountpoint breaking db startup The postgres:18-alpine image moved PGDATA from /var/lib/postgresql/data to /var/lib/postgresql, so mounting the volume at the old path made the entrypoint abort and the db container restart forever, failing the service_healthy dependency for dash and status-page. - Mount db_data at /var/lib/postgresql (postgres 18 layout) - Remove host port mappings (Dokploy routes via domains/Traefik) - Generate POSTGRES_PASSWORD and CLICKHOUSE_PASSWORD with ${password:32} instead of hardcoded credentials - Drop unused DASH_PORT/STATUS_PAGE_PORT env and dangling empty [[config.mounts]] section in template.toml Co-Authored-By: Claude Fable 5 --- blueprints/uptimekit/docker-compose.yml | 18 +++++++----------- blueprints/uptimekit/template.toml | 8 ++++---- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/blueprints/uptimekit/docker-compose.yml b/blueprints/uptimekit/docker-compose.yml index 5b1ee730..35d46f90 100644 --- a/blueprints/uptimekit/docker-compose.yml +++ b/blueprints/uptimekit/docker-compose.yml @@ -1,15 +1,13 @@ services: dash: image: ghcr.io/uptimekit/dash:latest - ports: - - "${DASH_PORT:-3000}:3000" env_file: - .env environment: - - DATABASE_URL=postgresql://postgres:postgres@db:5432/uptimekit + - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/uptimekit - CLICKHOUSE_URL=http://clickhouse:8123 - CLICKHOUSE_USER=default - - CLICKHOUSE_PASSWORD=clickhouse + - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} - REDIS_URL=redis://redis:6379 depends_on: db: @@ -30,15 +28,13 @@ services: status-page: image: ghcr.io/uptimekit/status-page:latest - ports: - - "${STATUS_PAGE_PORT:-3001}:3001" env_file: - .env environment: - - DATABASE_URL=postgresql://postgres:postgres@db:5432/uptimekit + - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/uptimekit - CLICKHOUSE_URL=http://clickhouse:8123 - CLICKHOUSE_USER=default - - CLICKHOUSE_PASSWORD=clickhouse + - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} - REDIS_URL=redis://redis:6379 depends_on: db: @@ -55,10 +51,10 @@ services: image: postgres:18-alpine environment: POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: uptimekit volumes: - - db_data:/var/lib/postgresql/data + - db_data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d uptimekit"] interval: 5s @@ -80,7 +76,7 @@ services: environment: CLICKHOUSE_DB: uptimekit CLICKHOUSE_USER: default - CLICKHOUSE_PASSWORD: clickhouse + CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD} CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 user: "root" ulimits: diff --git a/blueprints/uptimekit/template.toml b/blueprints/uptimekit/template.toml index 32f3a764..45e02bad 100644 --- a/blueprints/uptimekit/template.toml +++ b/blueprints/uptimekit/template.toml @@ -2,6 +2,8 @@ main_domain = "${domain}" second_domain = "${domain}" secret_base = "${base64:64}" +db_password = "${password:32}" +clickhouse_password = "${password:32}" [config] [[config.domains]] @@ -18,7 +20,5 @@ host = "${second_domain}" BETTER_AUTH_SECRET = "${secret_base}" BETTER_AUTH_URL = "http://${main_domain}" NEXT_PUBLIC_URL = "http://${main_domain}" -DASH_PORT=3000 -STATUS_PAGE_PORT=3001 - -[[config.mounts]] \ No newline at end of file +POSTGRES_PASSWORD = "${db_password}" +CLICKHOUSE_PASSWORD = "${clickhouse_password}"