bug: edge entrypoint defaults FORGE_REPO to disinto-admin/disinto — footgun for non-disinto deployments #543
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#543
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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?
Description
docker/edge/entrypoint-edge.shdefaultsFORGE_REPOto a disinto-specific value:For any deployment that supervises a non-disinto project, an operator must remember to pass
FORGE_REPO=...explicitly. If they forget, edge silently tries to clonedisinto-admin/disintofrom the local forgejo, fails, and crash-loops (see related bug-report on the crash behavior). The hardcoded default is a footgun: it makes "forgot to set FORGE_REPO" indistinguishable from a deployment misconfiguration.Reproduction
docker compose up -d edgeon a box where the local forgejo doesn't hostdisinto-admin/disintoFix
Three options, in order of preference:
Option A: No default — fail fast with clear error
Forces operators to make a conscious choice. Easier to diagnose than a 404 clone loop.
Option B: Derive from project TOML
If
PROJECT_TOMLis set (or can be located in/opt/disinto/projects/), parseforge_repoout of it and use that as the default. Falls through to Option A error if neither is set.Option C: Skip clone entirely if
/opt/disinto/.gitexists (host bind-mount case)Already covered by the existing
if [ ! -d /opt/disinto/.git ]guard, but the guard doesn't help when the directory is empty (fresh container) and FORGE_REPO is wrong. Combine with Option A or B.All three are non-mutually-exclusive. Suggested implementation: B first (auto-detect from
PROJECT_TOML), fall back to A (fail with explicit error) when no project TOML is available.Context
Discovered on harb-dev-box during a v0.1.0 → v0.2.0 update. The factory target is
johba/harb, notdisinto-admin/disinto— but.envdid not setFORGE_REPObecause the previous running edge container had been started with a custom FORGE_REPO that was lost when the container was recreated.Related:
disinto-admin/disinto— footgun for non-disinto deployments (#543) #562disinto-admin/disinto— footgun for non-disinto deployments (#543) #562_generate_compose_implthe canonical compose source — remove tracked docker-compose.yml + update docs #603