Commit Graph

39 Commits

Author SHA1 Message Date
Sven
3b5d4f1243 fix(start): probe webmention-sender endpoint for readiness, not /status
The root /status responds before MongoDB collections and plugin routes
are fully initialised, causing 502 on the first poll. Now probes the
plugin's own /api/status which only responds once everything is ready.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:00:40 +01:00
Sven
8f8c632e87 fix(start): add 5s delay after readiness check before first poll
The /status endpoint becomes available before all plugin routes are
fully mounted, causing a 502 on the first webmention-sender POST.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 17:56:43 +01:00
Sven
8b35fc13fd fix(startup): route webmention poller through nginx via INTERNAL_FETCH_URL
Direct connections from the node jail to itself cause empty replies in
FreeBSD jails. Route through nginx (INTERNAL_FETCH_URL=http://10.100.0.10)
instead, which also provides correct Host and X-Forwarded-Proto headers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 16:45:12 +01:00
Sven
cc1edd81a8 fix(startup): use configurable bind host instead of hardcoded 127.0.0.1
FreeBSD jails often don't have loopback available. The webmention poller
and readiness check now use INDIEKIT_BIND_HOST (defaults to 127.0.0.1
for backward compat). Set INDIEKIT_BIND_HOST=10.100.0.20 in .env.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 16:09:57 +01:00
Sven
4955863bb8 fix(startup): add empty body and timeout to webmention poller curl
The bodyless POST (no Content-Type/Content-Length) caused curl error 52
(empty reply from server). Adding `-d ""` sends proper headers and
`--max-time 300` prevents hangs on long-running webmention processing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 12:18:20 +01:00
svemagie
6a2c38d798 fix: replace startup sleep with readiness check, clean up stale env/config
- start.example.sh: replace fixed sleep 30 with /status poll loop (up to 2min)
  so the webmention poller waits exactly until indiekit is ready, not longer
- indiekit.config.mjs: remove redundant webmentionIoMountPath variable and
  mountPath from webmention-io config (package default /webmentions is correct)
- .env.example: remove all stale proxy and unused WEBMENTION_SENDER_* vars
  (HOST, PORT, ENDPOINT, READY_TIMEOUT, STOP_TIMEOUT, AUTO_POLL) that were
  never read by start.example.sh; keep only WEBMENTION_SENDER_POLL_INTERVAL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 20:30:55 +01:00
svemagie
c251650371 fix: add 30s startup delay before first webmention poll
The poller fired immediately after indiekit was backgrounded, before
the HTTP server finished initializing — causing curl error 52 (empty
reply). A 30s initial sleep gives indiekit time to become ready.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 20:12:11 +01:00
svemagie
9c90498cbc refactor: simplify start.sh to standard webmention-sender pattern
Remove complex PID tracking, readiness probe, graceful-shutdown and
daemon-parent machinery. Replace with the minimal polling loop from
the @rmdes/indiekit-endpoint-webmention-sender README: generate JWT,
POST to 127.0.0.1 (local), sleep 300s. Also drop the related tuning
vars from .env (WEBMENTION_SENDER_READY_TIMEOUT, STOP_TIMEOUT,
INDIEKIT_STOP_TIMEOUT, KILL_DAEMON_PARENT_ON_SHUTDOWN).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 19:47:46 +01:00
svemagie
fefd91dcf5 chore: commit all changes for deployment 2026-03-11 12:23:27 +01:00
svemagie
be67f61792 feat: update webmention sender endpoint path to /webmentions-sender 2026-03-11 11:55:47 +01:00
svemagie
9c771df5d0 fix: wait for HTTP 200 and increase poller startup timeout to 180s 2026-03-11 11:50:12 +01:00
svemagie
720e23b771 fix: avoid double https:// in webmention sender endpoint construction 2026-03-11 11:46:06 +01:00
svemagie
91c3778fdc fix: apply all patch scripts automatically on startup 2026-03-10 16:30:37 +01:00
svemagie
4eb7c07eb3 Fix homepage SITE_SOCIAL identity defaults parsing 2026-03-09 21:23:50 +01:00
svemagie
31129c48e1 Fix FreeBSD rc.d restart behavior and poller lifecycle 2026-03-09 21:08:56 +01:00
svemagie
529fa81cd0 Add webmention sender auto-poll for bare-metal 2026-03-09 20:10:16 +01:00
svemagie
1365f696f0 fix(activitypub): handle publication host private DNS lookups 2026-03-09 19:39:04 +01:00
svemagie
ad17b697c7 Allow clearing Mastodon migration alias 2026-03-09 18:15:46 +01:00
svemagie
66c77f604f fix(activitypub): suppress noisy fedify docloader 410 logs 2026-03-08 18:47:11 +01:00
svemagie
12de20913d fix(homepage): add de locale patch and robust contentDir for saves 2026-03-08 18:34:07 +01:00
svemagie
d918e4cd52 Ensure ActivityPub outbox requests are RSA-signed 2026-03-08 11:23:54 +01:00
svemagie
9919b1decc Normalize ActivityPub profile URLs to fix WebFinger invalid URL 2026-03-08 11:16:17 +01:00
svemagie
2e4827be9d Patch ActivityPub backend locale fallback for de 2026-03-08 10:58:24 +01:00
svemagie
470d5e0195 Harden listening endpoint runtime error handling 2026-03-08 10:36:10 +01:00
svemagie
269f0b243b Integrate Cloudron security patch patterns into runtime patch pipeline 2026-03-08 05:32:47 +01:00
svemagie
ef484c069d Remove legacy redirect patches and session auto-continue patch 2026-03-08 04:57:27 +01:00
svemagie
98eb54ac63 Auto-continue login flow to password screen 2026-03-08 04:30:54 +01:00
svemagie
8e759a5cb9 Add safe password setup recovery mode 2026-03-08 04:05:06 +01:00
svemagie
1558e8b40e Harden production auth startup and dev-mode access 2026-03-08 04:01:41 +01:00
svemagie
b72b23ed1c prod 2026-03-08 03:51:33 +01:00
svemagie
227e4e3f2a fix(runtime): make sharp optional on FreeBSD startup 2026-03-08 02:14:16 +01:00
svemagie
7a61f4da53 fix(backend): harden mongo startup and files upload locales 2026-03-08 01:51:18 +01:00
svemagie
14d7d16f73 fix(startup): add strict mongo preflight in production 2026-03-08 01:19:47 +01:00
svemagie
dd5a45da92 fix(mongo): require explicit username for auth 2026-03-08 01:14:22 +01:00
svemagie
65b26dec3d fix(runtime): guard conversations and serviceworker path 2026-03-08 01:03:23 +01:00
svemagie
17b730eb04 fix(startup): load .env with dotenv parser 2026-03-08 00:59:08 +01:00
svemagie
e212b164f2 fix(uploads): route browser file uploads via files endpoint 2026-03-08 00:57:07 +01:00
svemagie
e7d0a3d382 fix(uploads): patch endpoint-media scope handling 2026-03-08 00:52:50 +01:00
svemagie
b6d0340e7c fix(backend): harden endpoint and startup config 2026-03-08 00:42:02 +01:00