37 lines
2.4 KiB
Python
37 lines
2.4 KiB
Python
# Per-recipe harness config for plausible (Phase 2 Q4.7 — analytics platform).
|
|
# Requires SECRET_KEY_BASE (64+ char), DISABLE_AUTH, DISABLE_REGISTRATION env vars to deploy.
|
|
# We use a fixed CI value for SECRET_KEY_BASE — safe for ephemeral per-run deploys.
|
|
HEALTH_PATH = "/api/health"
|
|
HEALTH_OK = (200,)
|
|
# plausible's app starts before its clickhouse events DB is ready (the recipe's `app` depends_on lists
|
|
# `events_db` but the service is named `plausible_events_db`, so swarm applies no ordering) and returns
|
|
# 500 until clickhouse + DB migrations finish — several minutes on a cold deploy. The dedicated
|
|
# /api/health endpoint returns 200 with {"clickhouse":"ok","postgres":"ok","sites_cache":"ok"} only
|
|
# once both datastores are ready, so it is a true readiness probe; `/` is unreliable (500s during init;
|
|
# 302s to /register once ready — and with the pre-2026-06-11 62-char SECRET_KEY_BASE every HTML render
|
|
# 500'd permanently, see EXTRA_ENV). Give a wide HTTP window so the health poll waits out that init.
|
|
# [v1 failed at HTTP_TIMEOUT=600 polling `/`.]
|
|
DEPLOY_TIMEOUT = 1200
|
|
HTTP_TIMEOUT = 1200
|
|
|
|
# Phase-2: configure the recipe's required env (no placeholders allowed).
|
|
EXTRA_ENV = {
|
|
"DISABLE_AUTH": "true",
|
|
"DISABLE_REGISTRATION": "true",
|
|
# Stable CI value, 68 chars — Phoenix's cookie session store requires >= 64 BYTES and raises
|
|
# `ArgumentError ... at least 64 bytes` → HTTP 500 on EVERY page render (HTML routes only;
|
|
# /api/* never touches the cookie store, so health + event tests were unaffected) if it is
|
|
# shorter. The previous value was 62 chars, which is why every page (and the app screenshot)
|
|
# 500'd while the API tiers all passed (phase-shot root cause, 2026-06-11).
|
|
"SECRET_KEY_BASE": "ccciplausibletestkeybase64charsexactlyforCIephemeralrun4567890123456",
|
|
}
|
|
|
|
# The upgrade tier defaults its base to recipe_versions[-2]. For the 3.1.0 upgrade PR the
|
|
# published tags end [..., 3.0.0+v2.0.0, 3.0.1+v2.0.0], so [-2] picks 3.0.0 — whose clickhouse
|
|
# entrypoint has no x86_64 ARCH mapping (added in 3.0.1): on amd64 it wgets the nonexistent
|
|
# clickhouse-backup-linux-x86_64.tar.gz (HTTP 404), exits 1 silently (set -e + silenced wget)
|
|
# and crash-loops, so the base deploy can NEVER converge on this host. The PR adds its version
|
|
# ABOVE the newest published tag — the documented case where the correct base is [-1], the
|
|
# newest published version. Pin it.
|
|
UPGRADE_BASE_VERSION = "3.0.1+v2.0.0"
|