From ab902e17b9f3626bc8e43320cd42014b956c8849 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 20 Dec 2025 00:21:32 +0000 Subject: [PATCH] Fix OneUptime: use microservices architecture, fix health checks, remove version field Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com> --- blueprints/oneuptime/docker-compose.yml | 158 +++++++++++++++++++----- blueprints/oneuptime/template.toml | 4 +- meta.json | 2 +- 3 files changed, 131 insertions(+), 33 deletions(-) diff --git a/blueprints/oneuptime/docker-compose.yml b/blueprints/oneuptime/docker-compose.yml index d3bc1bc9..b811b70d 100644 --- a/blueprints/oneuptime/docker-compose.yml +++ b/blueprints/oneuptime/docker-compose.yml @@ -1,33 +1,4 @@ -version: "3.8" services: - oneuptime: - image: oneuptime/oneuptime:7.0.3424 - restart: unless-stopped - environment: - DATABASE_HOST: postgres - DATABASE_PORT: 5432 - DATABASE_USERNAME: oneuptime - DATABASE_PASSWORD: ${DATABASE_PASSWORD} - DATABASE_NAME: oneuptime - REDIS_HOST: redis - REDIS_PORT: 6379 - REDIS_PASSWORD: ${REDIS_PASSWORD} - CLICKHOUSE_HOST: clickhouse - CLICKHOUSE_PORT: 8123 - CLICKHOUSE_USER: default - CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD} - CLICKHOUSE_DATABASE: oneuptime - SERVER_URL: https://${ONEUPTIME_HOST} - ENCRYPTION_SECRET: ${ENCRYPTION_SECRET} - IS_SAAS_SERVICE: "false" - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - clickhouse: - condition: service_healthy - postgres: image: postgres:15-alpine restart: unless-stopped @@ -52,7 +23,7 @@ services: volumes: - redis_data:/data healthcheck: - test: ["CMD", "redis-cli", "ping"] + test: ["CMD-SHELL", "redis-cli ping"] interval: 10s timeout: 5s retries: 5 @@ -68,11 +39,136 @@ services: volumes: - clickhouse_data:/var/lib/clickhouse healthcheck: - test: ["CMD-SHELL", "clickhouse-client --password $CLICKHOUSE_PASSWORD --query 'SELECT 1'"] + test: ["CMD-SHELL", "clickhouse-client --query 'SELECT 1'"] interval: 10s timeout: 5s retries: 5 + home: + image: oneuptime/home:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + REDIS_HOST: redis + REDIS_PORT: 6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + CLICKHOUSE_HOST: clickhouse + CLICKHOUSE_PORT: 8123 + CLICKHOUSE_USER: default + CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD} + CLICKHOUSE_DATABASE: oneuptime + SERVER_URL: https://${ONEUPTIME_HOST} + ENCRYPTION_SECRET: ${ENCRYPTION_SECRET} + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + clickhouse: + condition: service_healthy + + dashboard: + image: oneuptime/dashboard:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + REDIS_HOST: redis + REDIS_PORT: 6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + SERVER_URL: https://${ONEUPTIME_HOST} + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + + accounts: + image: oneuptime/accounts:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + REDIS_HOST: redis + REDIS_PORT: 6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + SERVER_URL: https://${ONEUPTIME_HOST} + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + + status-page: + image: oneuptime/status-page:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + REDIS_HOST: redis + REDIS_PORT: 6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + SERVER_URL: https://${ONEUPTIME_HOST} + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + + app: + image: oneuptime/app:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + REDIS_HOST: redis + REDIS_PORT: 6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + CLICKHOUSE_HOST: clickhouse + CLICKHOUSE_PORT: 8123 + CLICKHOUSE_USER: default + CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD} + CLICKHOUSE_DATABASE: oneuptime + SERVER_URL: https://${ONEUPTIME_HOST} + ENCRYPTION_SECRET: ${ENCRYPTION_SECRET} + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + clickhouse: + condition: service_healthy + + probe: + image: oneuptime/probe:${ONEUPTIME_VERSION} + restart: unless-stopped + environment: + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USERNAME: oneuptime + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_NAME: oneuptime + SERVER_URL: https://${ONEUPTIME_HOST} + depends_on: + postgres: + condition: service_healthy + volumes: postgres_data: redis_data: diff --git a/blueprints/oneuptime/template.toml b/blueprints/oneuptime/template.toml index 106712f2..d85f692f 100644 --- a/blueprints/oneuptime/template.toml +++ b/blueprints/oneuptime/template.toml @@ -1,5 +1,6 @@ [variables] main_domain = "${domain}" +oneuptime_version = "release" database_password = "${password:32}" redis_password = "${password:32}" clickhouse_password = "${password:32}" @@ -8,6 +9,7 @@ encryption_secret = "${password:64}" [config] env = [ "ONEUPTIME_HOST=${main_domain}", + "ONEUPTIME_VERSION=${oneuptime_version}", "DATABASE_PASSWORD=${database_password}", "REDIS_PASSWORD=${redis_password}", "CLICKHOUSE_PASSWORD=${clickhouse_password}", @@ -16,6 +18,6 @@ env = [ mounts = [] [[config.domains]] -serviceName = "oneuptime" +serviceName = "home" port = 3002 host = "${main_domain}" diff --git a/meta.json b/meta.json index 2da2bc29..30d77ca9 100644 --- a/meta.json +++ b/meta.json @@ -4263,7 +4263,7 @@ { "id": "oneuptime", "name": "OneUptime", - "version": "7.0.3424", + "version": "release", "description": "Complete open-source observability platform with uptime monitoring, status pages, incident management, and on-call scheduling.", "logo": "logo.svg", "links": {