Skip to content

The quickstart could not work on a clean machine - #9

Open
krlex wants to merge 3 commits into
developfrom
fix/quickstart-cannot-work-on-a-clean-machine
Open

The quickstart could not work on a clean machine#9
krlex wants to merge 3 commits into
developfrom
fix/quickstart-cannot-work-on-a-clean-machine

Conversation

@krlex

@krlex krlex commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Measured by actually running it: fresh clone, cp .env.example .env, fill in the four changeme values, docker compose up -d. Three things were broken.

nginx never started. It terminates TLS, nginx/ssl/ ships empty, and nothing generates a certificate — so it sat in a restart loop and nothing served on 80 or 443. The whole stack was up and unreachable. Instructions for making a certificate exist, but only in README-prod.md, which the quickstart never points at. Now a self-signed pair is generated on first start when the directory is empty, with a loud warning; an operator-supplied certificate is never touched.

No job could ever run. .env.example pinned 2026.07.0, which predates 0cb32fe. On that image the node registers as control rather than the hybrid the env var asks for, and default becomes a Kubernetes container group — on Compose that fails project updates with unknown work type kubernetes-incluster-auth and leaves every later job in pending forever. 2026.07.1 does not help: it was published for the backend only, so the frontend image does not resolve. 2026.07.2-rc1 is the lowest tag present for both images that carries the fix.

The Quick Start said things that were not true — that every service would report healthy, and nothing at all about job execution being off by default. Both corrected, with FORAIL_TASK_PRIVILEGED documented next to the reason it is off (H4).

Verified

Fresh copy of this branch, empty nginx/ssl/, only the four secrets filled in:

docker compose up -d → healthy 2 min 18 s
https://localhost/ 200 (http:// → 301)
/api/v2/ping/, admin login 200
instance node_type=hybrid, capacity 300
instance groups controlplane and default, both regular, capacity 300

With FORAIL_TASK_PRIVILEGED=true FORAIL_TASK_CGROUP=host, a project synced from git and a job template ran hello_world.yml to successful.

Follow-up, not in this PR

Pinning the quickstart to an -rc1 is a stopgap. 2026.07.2 should be released properly for both images, and this pin moved to it.

krlex added 3 commits August 11, 2026 14:05
nginx terminates TLS and refuses to start when the certificate it is
configured with is missing. nginx/ssl/ ships empty (just a .gitkeep), and
nothing in the compose path puts anything there, so a clean

    git clone && cp .env.example .env && docker compose up -d

left nginx in a restart loop with nothing serving on 80 or 443 -- the whole
stack was up and unreachable. The instructions for producing a certificate
exist, but in README-prod.md, which the quickstart never sends you to.

Generate a self-signed pair on first start when nginx/ssl/ is empty, and
say so loudly in the log. A certificate that is already there is never
touched, so this changes nothing for an operator who supplies a real one.
.env.example pinned 2026.07.0, which predates 0cb32fe. On that image the
node registers as `control` instead of the requested `hybrid`, and the
`default` queue is created as a Kubernetes container group. On Compose
there is no Kubernetes, so project updates fail with

    unknown work type kubernetes-incluster-auth

and every job launched afterwards sits in `pending` forever. The env var
asking for a hybrid node was simply ignored.

2026.07.1 is not a fix either: it was published for the backend only, so
pinning it makes the frontend image unresolvable. 2026.07.2-rc1 is the
lowest tag that exists for both images and contains the fix.

Also add FORAIL_TLS_CN for the generated certificate.
Two things the Quick Start asserted were not true on a clean machine.

It said every service should report healthy after `docker compose up -d`;
nginx could not, because no certificate existed. And it never mentioned
that job execution is off by default -- so a reader who followed it exactly
got an API and a UI where projects never sync and jobs never leave
`pending`, with nothing pointing at why.

Say where the UI is and how to log in, describe the self-signed
certificate, and document FORAIL_TASK_PRIVILEGED together with the reason
it defaults to off.
@krlex
krlex force-pushed the fix/quickstart-cannot-work-on-a-clean-machine branch from 2ce69a1 to bdc2cac Compare August 20, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant