You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
apps/rybbit/docker-compose.yml's clickhouse service (via ../clickhouse-26.5.yml) does not set CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1. Upstream's own docker-compose.yml (rybbit-io/rybbit) does set it, with this comment on the clickhouse service:
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1# Lets the backend provision the least-privilege `rybbit_query` user# (custom SQL queries / dashboards) with SQL at startup.
Why this matters
The backend's provisionQueryUser() (server/src/db/clickhouse/queryUser.ts in rybbit-io/rybbit) runs on every startup and requires the main ClickHouse connection to have access_management to create/alter the rybbit_query user and its settings profile. The source comment is explicit:
Requires the main connection to have access_management (the bundled compose sets CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1); otherwise the steps fail, the error is logged, and custom queries fail closed until the user is created by hand.
The failure is caught (try/catch) and non-fatal — the app doesn't crash, core dashboards/sites/session-replay still work — but the "Custom SQL queries" / dashboard-cards feature (which depends on the rybbit_query user existing with SELECT on events) silently fails closed, logging:
Could not provision ClickHouse user "rybbit_query" (the main ClickHouse user needs access_management). Custom SQL queries and dashboards will fail until it exists with SELECT on <db>.events — see docs: self-hosting-advanced → Custom SQL queries
What I checked
Confirmed by reading apps/rybbit/docker-compose.yml and apps/clickhouse-26.5.yml in this repo (today) — neither sets CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT.
Confirmed by reading server/src/db/clickhouse/queryUser.ts in a real rybbit-io/rybbit v2.9.1 checkout (upgraded a self-hosted instance from a pre-2.0 snapshot, in place, as part of migrating it onto Flightdeck).
Not yet reproduced against an actual Flightdeck deploy of apps/rybbit — this is from code inspection, not a live repro. Filing so it can be verified and fixed if confirmed, per your own request.
Suggested fix
clickhouse-26.5.yml is a generic, multi-app template, so setting this globally there would grant every app's default ClickHouse user elevated self-management rights it doesn't need. The override probably belongs in apps/rybbit/docker-compose.yml itself, e.g. re-declaring the clickhouse service there with just:
(merged with the included clickhouse-26.5.yml service definition via include:).
Also noticed, same app, possibly separate issues
Upstream's current docker-compose.yml pins clickhouse/clickhouse-server:26.3.17.4; this catalog pins 26.5r — worth confirming that's intentional/tested rather than just a newer tag nobody's re-checked against.
Upstream also has CLICKHOUSE_QUERY_PASSWORD, DEPLOYMENT, LITE_DASHBOARD, OPENROUTER_API_KEY, OPENROUTER_MODEL, CLUSTER_WORKERS env vars not wired into apps/rybbit's vault-env/internal-env — all optional with safe fallbacks upstream, so lower priority, but flagging since they were found in the same pass.
Tried deploying this fix (v1.4.1) against a real target just now and it doesn't work — docker compose rejects the config outright, before even reaching pull/up:
```
$ cd apps/rybbit && docker compose pull
services.clickhouse conflicts with imported resource
```
(Docker Compose 2.40.3 on the target host.)
Root cause: `apps/rybbit/docker-compose.yml` re-declares `services.clickhouse` directly (just the new `environment:` key) to patch the service that `../clickhouse-26.5.yml` already defines via `include:`. Compose doesn't allow a service from an `include:`'d file to be overridden by re-declaring the same service name in the including file — that's reserved/treated as a conflict, not a merge. (This is different from merging multiple `-f` files, which does allow it.)
No actual harm done — the command fails before touching anything, so nothing on the target changed. But the fix as shipped can't actually be deployed. Re-opening until there's a form of this that docker compose accepts (possibly extends: instead of a bare re-declaration, though I haven't verified what shape works - happy to test a candidate if useful).
🧠 [rubykatzen/flightdeck]: Confirmed and root-caused — Docker Compose only allows overriding an include:-d service as of v5.0.0; anything before that (including the v2.40.3 on the target host) rejects it with services.clickhouse conflicts with imported resource, verified against a real v2.40.3 binary. Fix in #228: move CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 directly into clickhouse-26.5.yml's own environment block instead of overriding the service from apps/rybbit/docker-compose.yml - no service redeclaration, so the conflict class doesn't apply.
Activity
ineedjet commentedon Oct 10, 2026
Tried deploying this fix (v1.4.1) against a real target just now and it doesn't work —
docker composerejects the config outright, before even reachingpull/up:```
$ cd apps/rybbit && docker compose pull
services.clickhouse conflicts with imported resource
```
(Docker Compose 2.40.3 on the target host.)
Root cause: `apps/rybbit/docker-compose.yml` re-declares `services.clickhouse` directly (just the new `environment:` key) to patch the service that `../clickhouse-26.5.yml` already defines via `include:`. Compose doesn't allow a service from an `include:`'d file to be overridden by re-declaring the same service name in the including file — that's reserved/treated as a conflict, not a merge. (This is different from merging multiple `-f` files, which does allow it.)
No actual harm done — the command fails before touching anything, so nothing on the target changed. But the fix as shipped can't actually be deployed. Re-opening until there's a form of this that
docker composeaccepts (possiblyextends:instead of a bare re-declaration, though I haven't verified what shape works - happy to test a candidate if useful).ineedjet commentedon Oct 10, 2026
🧠 [rubykatzen/flightdeck]: Confirmed and root-caused — Docker Compose only allows overriding an
include:-d service as of v5.0.0; anything before that (including the v2.40.3 on the target host) rejects it withservices.clickhouse conflicts with imported resource, verified against a real v2.40.3 binary. Fix in #228: moveCLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1directly intoclickhouse-26.5.yml's own environment block instead of overriding the service fromapps/rybbit/docker-compose.yml- no service redeclaration, so the conflict class doesn't apply.🧠🔧✅
ineedjet commentedon Oct 11, 2026
Fixed in #228 (merged, see 0f26ba7). Closing.