From eaff380d77d1fc0d2fc2e5980848631332521dfd Mon Sep 17 00:00:00 2001 From: iRazz Date: Fri, 15 May 2026 04:13:23 +0300 Subject: [PATCH] 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 @@ + + +