mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-15 14:52:05 -05:00
[PR #1004] [MERGED] fix(signoz): fix ClickHouse hostname resolution and IPv6 binding #16312
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/1004
Author: @Siumauricio
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @Siumauricio
Base:
canary← Head:fix/signoz-clickhouse📝 Commits (1)
1e48681fix(signoz): fix ClickHouse hostname resolution and IPv6 binding📊 Changes
2 files changed (+21 additions, -8 deletions)
View changed files
📝
blueprints/signoz/docker-compose.yml(+2 -6)📝
blueprints/signoz/template.toml(+19 -2)📄 Description
Problem
Deploying the SigNoz template on Dokploy fails with ClickHouse errors (#534):
Cannot use ZooKeeper host zookeeper-1:2181 due to DNS error: Temporary DNS error while resolving: zookeeper-1, and the server cannot resolve the cluster hostclickhouseas itself.clickhouse/clickhouse-serverimage shipsconfig.d/docker_related_config.xmlwith<listen_host>::</listen_host>first, which fails to bind on hosts without IPv6 support (common on VPSes with IPv6 disabled).While fixing this, two more template bugs surfaced:
template.tomlcreatedfiles/signoz/prometheus.xmlbut the compose mounts../files/signoz/prometheus.yml, so Docker silently created and mounted a directory as the signoz prometheus config.[[config.domains]]entries shared the same host and path/, creating two conflicting Traefik routers (signoz UI vs otel-collector) where one randomly won.Fix
docker_related_config.xmlover the image default: listen on0.0.0.0(IPv4) only, keeplisten_try, and setdisable_internal_dns_cache=1so ClickHouse does not cache transient startup DNS failures forzookeeper-1/clickhouse.hostname: clickhouse(replacingcontainer_name: signoz-clickhouse) so the server identifies itself as the cluster host declared incluster.xml, and a fixed container name cannot conflict across deployments.signoz-netnetwork (the repo validator rejects explicit networks; Dokploy wires networks automatically, and a fixed shared network name breaks DNS across deployments)./signoz/prometheus.yml.otel_domain), matching the convention used by other multi-domain templates.Verification (deployed on a Dokploy instance)
donein 228s; all one-shot containers (init-clickhouse,schema-migrator-sync,schema-migrator-async) exited0— the sync migrator runs distributed DDLON CLUSTERthrough ZooKeeper, which is exactly the path that failed in #534.running/healthy,RestartCount: 0; log tail contains 0 DNS-error lines and 0 IPv6/bind-error lines.HTTP 200— "Open source Observability platform | SigNoz".POST /v1/tracesandPOST /v1/logsreturnHTTP 200 {"partialSuccess":{}};GET /v1/tracesreturns405 method not allowed, supported: [POST](the receiver answering). Note:GET /on an OTLP HTTP receiver always returns its own404 page not found— that is expected receiver behavior, not a routing failure.node build-scripts/generate-meta.js --check: 476 templates validated;validate-templateandvalidate-docker-composepass for signoz.Closes #534
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.