From a36253b7d883aeb29d668281748d83d43cc682bd Mon Sep 17 00:00:00 2001 From: Andreas Enemyr Date: Wed, 22 Oct 2025 15:09:02 +0200 Subject: [PATCH 1/5] feat(signoz): update Docker Compose and template for ClickHouse integration - Added environment variables for ClickHouse user and password in docker-compose.yml. - Updated ClickHouse connection strings to use environment variables for enhanced security. - Upgraded ClickHouse and Signoz images to the latest versions. - Modified schema migrator commands to include authentication details. - Enhanced template.toml with ClickHouse user and password configuration. --- blueprints/signoz/docker-compose.yml | 35 +++++++++++++++++----------- blueprints/signoz/template.toml | 22 +++++++++++++++++ 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/blueprints/signoz/docker-compose.yml b/blueprints/signoz/docker-compose.yml index a8a70329e..3128ef83b 100644 --- a/blueprints/signoz/docker-compose.yml +++ b/blueprints/signoz/docker-compose.yml @@ -1,11 +1,14 @@ services: otel-conf: image: alpine:3.20 + environment: + - CLICKHOUSE_USER=${CLICKHOUSE_USER} + - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} command: - /bin/sh - -lc - | - cat > /otel/config.yaml <<'YAML' + cat > /otel/config.yaml < + + + <${clickhouse_user}> + ${clickhouse_password} + + ::/0 + + default + default + + + +""" From 85803a2066efab3653ed95a0a8545a9116961ebd Mon Sep 17 00:00:00 2001 From: Andreas Enemyr Date: Wed, 22 Oct 2025 15:17:23 +0200 Subject: [PATCH 2/5] refactor(signoz): remove ClickHouse environment variables from Docker Compose and enhance template configuration - Removed ClickHouse user and password environment variables from docker-compose.yml for improved security. - Updated template.toml to include a new user configuration for ClickHouse with additional access management settings and a default user entry. --- blueprints/signoz/docker-compose.yml | 3 --- blueprints/signoz/template.toml | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/blueprints/signoz/docker-compose.yml b/blueprints/signoz/docker-compose.yml index 3128ef83b..8175b1235 100644 --- a/blueprints/signoz/docker-compose.yml +++ b/blueprints/signoz/docker-compose.yml @@ -113,9 +113,6 @@ services: depends_on: ch-conf: condition: service_completed_successfully - environment: - - CLICKHOUSE_USER=${CLICKHOUSE_USER} - - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} ulimits: nproc: 65535 nofile: diff --git a/blueprints/signoz/template.toml b/blueprints/signoz/template.toml index 48a51b97e..9946fdc12 100644 --- a/blueprints/signoz/template.toml +++ b/blueprints/signoz/template.toml @@ -22,14 +22,26 @@ content = """ - <${clickhouse_user}> + ${clickhouse_password} ::/0 default default - + 1 + 1 + 1 + 1 + + + + + 127.0.0.1 + + default + default + """ From 2845cc445befe8c10e79d7361f1c2b5bafc1245e Mon Sep 17 00:00:00 2001 From: Andreas Enemyr Date: Wed, 22 Oct 2025 15:38:08 +0200 Subject: [PATCH 3/5] chore(signoz): update version to v0.98.0 in meta.json --- meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta.json b/meta.json index 6d479bbca..6dd524f10 100644 --- a/meta.json +++ b/meta.json @@ -4625,7 +4625,7 @@ { "id": "signoz", "name": "SigNoz", - "version": "v0.92.1", + "version": "v0.98.0", "description": "SigNoz is an open-source Datadog or New Relic alternative. Get APM, logs,traces, metrics, exceptions, & alerts in a single tool.", "logo": "signoz.svg", "links": { From 68d7814663380244bc01c046b8171743af5b361b Mon Sep 17 00:00:00 2001 From: Andreas Enemyr Date: Wed, 22 Oct 2025 16:26:21 +0200 Subject: [PATCH 4/5] refactor(signoz): update Docker Compose and template for ClickHouse configuration - Renamed ClickHouse metrics service in docker-compose.yml for clarity. - Updated ClickHouse image version to 24.8-alpine for compatibility. - Added JSON configuration file mount for ClickHouse in docker-compose.yml. - Enhanced template.toml with a new JSON configuration for ClickHouse profiles. --- blueprints/signoz/docker-compose.yml | 15 +++++++-------- blueprints/signoz/template.toml | 13 +++++++++++++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/blueprints/signoz/docker-compose.yml b/blueprints/signoz/docker-compose.yml index 8175b1235..27f86d94f 100644 --- a/blueprints/signoz/docker-compose.yml +++ b/blueprints/signoz/docker-compose.yml @@ -25,11 +25,9 @@ services: datasource: tcp://${CLICKHOUSE_USER}:${CLICKHOUSE_PASSWORD}@clickhouse:9000/signoz_traces use_new_schema: true - clickhousemetricswrite: - endpoint: tcp://${CLICKHOUSE_USER}:${CLICKHOUSE_PASSWORD}@clickhouse:9000/signoz_metrics + signozclickhousemetrics: + dsn: tcp://${CLICKHOUSE_USER}:${CLICKHOUSE_PASSWORD}@clickhouse:9000/signoz_metrics timeout: 15s - resource_to_telemetry_conversion: - enabled: true clickhouselogsexporter: dsn: tcp://${CLICKHOUSE_USER}:${CLICKHOUSE_PASSWORD}@clickhouse:9000/signoz_logs @@ -49,7 +47,7 @@ services: metrics: receivers: [otlp] processors: [batch] - exporters: [clickhousemetricswrite, metadataexporter] + exporters: [signozclickhousemetrics, metadataexporter] logs: receivers: [otlp] processors: [batch] @@ -108,7 +106,7 @@ services: - zookeeper-data:/bitnami/zookeeper clickhouse: - image: clickhouse/clickhouse-server:25.3-alpine + image: clickhouse/clickhouse-server:24.8-alpine restart: unless-stopped depends_on: ch-conf: @@ -127,6 +125,7 @@ services: - clickhouse-data:/var/lib/clickhouse - ch-config:/etc/clickhouse-server/config.d - ../files/clickhouse/users.xml:/etc/clickhouse-server/users.d/users.xml:ro + - ../files/clickhouse/json-config.xml:/etc/clickhouse-server/config.d/json-config.xml:ro schema-migrator-sync: image: signoz/signoz-schema-migrator:v0.129.7 @@ -178,8 +177,8 @@ services: volumes: - otel-config:/etc/otelcol:ro ports: - - 4317 - - 4318 + - 4317:4317 + - 4318:4318 restart: unless-stopped volumes: diff --git a/blueprints/signoz/template.toml b/blueprints/signoz/template.toml index 9946fdc12..942e364fd 100644 --- a/blueprints/signoz/template.toml +++ b/blueprints/signoz/template.toml @@ -45,3 +45,16 @@ content = """ """ + +[[config.mounts]] +filePath = "/clickhouse/json-config.xml" +content = """ + + + + + 1 + + + +""" From 3c2a5a2e8fc16d8c5d877092fd5d6610801b0afa Mon Sep 17 00:00:00 2001 From: Andreas Enemyr Date: Fri, 17 Apr 2026 13:35:34 +0200 Subject: [PATCH 5/5] Add Multica template Open-source managed agents platform (Next.js + Go + pgvector). Builds from source via remote git context since no pre-built images are published. Exposes two Traefik domains: frontend (3000) and backend (8080) for the CLI/daemon. Co-Authored-By: Claude Opus 4.7 (1M context) --- blueprints/multica/docker-compose.yml | 68 +++++++++++++++++++++++++++ blueprints/multica/multica.svg | 7 +++ blueprints/multica/template.toml | 40 ++++++++++++++++ meta.json | 21 +++++++++ 4 files changed, 136 insertions(+) create mode 100644 blueprints/multica/docker-compose.yml create mode 100644 blueprints/multica/multica.svg create mode 100644 blueprints/multica/template.toml diff --git a/blueprints/multica/docker-compose.yml b/blueprints/multica/docker-compose.yml new file mode 100644 index 000000000..d0ba06bb1 --- /dev/null +++ b/blueprints/multica/docker-compose.yml @@ -0,0 +1,68 @@ +name: multica + +services: + postgres: + image: pgvector/pgvector:pg17 + restart: unless-stopped + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 5s + retries: 10 + + backend: + build: + context: "https://github.com/multica-ai/multica.git#main" + dockerfile: Dockerfile + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + ports: + - "8080" + volumes: + - backend_uploads:/app/data/uploads + environment: + DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable + PORT: "8080" + JWT_SECRET: ${JWT_SECRET} + FRONTEND_ORIGIN: ${FRONTEND_ORIGIN} + ALLOWED_ORIGINS: ${ALLOWED_ORIGINS} + MULTICA_APP_URL: ${MULTICA_APP_URL} + RESEND_API_KEY: ${RESEND_API_KEY} + RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL} + GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} + GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET} + GOOGLE_REDIRECT_URI: ${GOOGLE_REDIRECT_URI} + COOKIE_DOMAIN: ${COOKIE_DOMAIN} + S3_BUCKET: ${S3_BUCKET} + S3_REGION: ${S3_REGION} + CLOUDFRONT_DOMAIN: ${CLOUDFRONT_DOMAIN} + CLOUDFRONT_KEY_PAIR_ID: ${CLOUDFRONT_KEY_PAIR_ID} + CLOUDFRONT_PRIVATE_KEY: ${CLOUDFRONT_PRIVATE_KEY} + + frontend: + build: + context: "https://github.com/multica-ai/multica.git#main" + dockerfile: Dockerfile.web + args: + REMOTE_API_URL: http://backend:8080 + NEXT_PUBLIC_WS_URL: ${NEXT_PUBLIC_WS_URL} + NEXT_PUBLIC_GOOGLE_CLIENT_ID: ${NEXT_PUBLIC_GOOGLE_CLIENT_ID} + restart: unless-stopped + depends_on: + - backend + ports: + - "3000" + environment: + HOSTNAME: "0.0.0.0" + +volumes: + pgdata: + backend_uploads: diff --git a/blueprints/multica/multica.svg b/blueprints/multica/multica.svg new file mode 100644 index 000000000..3aec18db3 --- /dev/null +++ b/blueprints/multica/multica.svg @@ -0,0 +1,7 @@ + + + diff --git a/blueprints/multica/template.toml b/blueprints/multica/template.toml new file mode 100644 index 000000000..9206c8143 --- /dev/null +++ b/blueprints/multica/template.toml @@ -0,0 +1,40 @@ +[variables] +app_domain = "${domain}" +api_domain = "${domain}" +jwt_secret = "${password:64}" +postgres_password = "${password:32}" + +[config] +[[config.domains]] +serviceName = "frontend" +port = 3000 +host = "${app_domain}" +path = "/" + +[[config.domains]] +serviceName = "backend" +port = 8080 +host = "${api_domain}" +path = "/" + +[config.env] +POSTGRES_DB = "multica" +POSTGRES_USER = "multica" +POSTGRES_PASSWORD = "${postgres_password}" +JWT_SECRET = "${jwt_secret}" +FRONTEND_ORIGIN = "https://${app_domain}" +ALLOWED_ORIGINS = "https://${app_domain}" +MULTICA_APP_URL = "https://${app_domain}" +NEXT_PUBLIC_WS_URL = "wss://${api_domain}/ws" +RESEND_API_KEY = "" +RESEND_FROM_EMAIL = "noreply@multica.ai" +GOOGLE_CLIENT_ID = "" +GOOGLE_CLIENT_SECRET = "" +GOOGLE_REDIRECT_URI = "https://${app_domain}/auth/callback" +NEXT_PUBLIC_GOOGLE_CLIENT_ID = "" +COOKIE_DOMAIN = "" +S3_BUCKET = "" +S3_REGION = "us-west-2" +CLOUDFRONT_DOMAIN = "" +CLOUDFRONT_KEY_PAIR_ID = "" +CLOUDFRONT_PRIVATE_KEY = "" diff --git a/meta.json b/meta.json index 6dd524f10..aaa99b024 100644 --- a/meta.json +++ b/meta.json @@ -3509,6 +3509,27 @@ "rating" ] }, + { + "id": "multica", + "name": "Multica", + "version": "latest", + "description": "Multica is an open-source managed agents platform for teams. Assign tasks to AI coding agents (Claude Code, Codex, OpenClaw and more) that execute autonomously, report progress, and build reusable skills over time.", + "logo": "multica.svg", + "links": { + "github": "https://github.com/multica-ai/multica", + "website": "https://multica.ai", + "docs": "https://github.com/multica-ai/multica/blob/main/SELF_HOSTING.md" + }, + "tags": [ + "ai", + "agents", + "automation", + "self-hosted", + "claude-code", + "codex", + "developer-tools" + ] + }, { "id": "n8n", "name": "n8n",