Write README for self-hosters #3
Labels
No labels
bug
ci
docs
enhancement
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#2 Add production Dockerfile and release image pipeline
anagram-finder/web
Reference: anagram-finder/web#3
Loading…
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?
Context
web/has noREADME.md. Blocked by #2 — the install section has to point at a publishedimage, and until that pipeline exists there is nothing to document.
Research
Findings from 31 real self-hosted project READMEs (Miniflux, Vaultwarden, Uptime Kuma,
Docmost, Gotify, linkding, Kutt, Umami, Memos, Forgejo, Gitea and others), fetched as raw
markdown:
service). Link the repo's
compose.yaml, or use the curl-then-up pattern.Forgejo 46, Docmost 62, Vikunja 66, Gotify 68. For contrast, ffr's is 203.
## Screenshotssection is for 3+ images; we have one(
docs/screenshots/anagram-finder.png)..env.example. Fulltables rot — Kutt's 48-row table has a live typo (
OIDC_POMPT) as the cautionary example.licensed under the GNU AGPL-3.0." Nobody reproduces licence text.
Forgejo. Sane set here: licence, release, build.
Anti-patterns to avoid: table of contents on a short README, emoji headings (they break
anchor links), duplicating install steps that also live elsewhere.
Proposed structure
The Development section can follow ffr's, which documents
nix-shellplus a table of thedev-*helpers — those already exist in ourshell.nix.Acceptance
README.mdat repo root, roughly 70–110 lines.env.exampleLICENSEOpen question
Whether to add
CONTRIBUTING.md— present in ~24 of 31 projects surveyed, and ffr has one.Out of scope unless we want it; the README can link it later.
Done —
6fee71e103 lines, following the structure from the research in this ticket.
Acceptance
docs/screenshots/anagram-finder.png, verified present.env.examplegrep -c '^services:'returns 0Every link checked: four local paths resolve, six remote URLs return 200 — including the two
curllines in the quick start, which are the most likely thing to break silently.Anti-patterns from the research all avoided: no table of contents, no emoji headings, no
duplicated install steps.
Changed from the plan
The quick start originally downloaded
.env.example, but that file has 49 non-comment lines ofLaravel internals while compose reads only six variables. It now generates a four-line
.envwith
openssldirectly, so a self-hoster gets a working stack without reading framework config.Deployment gaps found while writing it
Both fixed in a separate commit, since they are behaviour changes rather than docs:
compose.yaml.Now
${APP_PORT:-8000}.plain HTTP and generated
http://redirects onto anhttps://page — browsers block those asmixed content.
find()redirects on every search, so this would have been immediatelyvisible. Added
trustProxies(at: '*').Open question from the ticket
CONTRIBUTING.md— present in ~24 of the 31 projects surveyed, and ffr has one. Not added; theREADME links Issues directly. Worth its own ticket if wanted.