Commit Graph

48 Commits

Author SHA1 Message Date
svemagie
6aaa22564f feat: scheduled rebuild every 30 minutes
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m27s
Picks up new content from IndieKit, refreshes external feeds (Last.fm,
Mastodon, Bluesky, Funkwhale, etc.) and redeploys without a manual push.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 10:17:59 +02:00
svemagie
93972aef35 fix: persist OG image cache outside act runner workspace
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m51s
The cache was written to .cache/og/ relative to the workspace, which is
under /usr/local/git/.cache/act/<unique-hash>/hostexecutor/ — a new path
per run, so every build regenerated all images from scratch.

OG_CACHE_DIR env var now controls the cache path (resolved to an absolute
path). CI sets it to /usr/local/git/.cache/og, which survives between runs.
Locally it still defaults to .cache/og inside the project dir.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 10:00:53 +02:00
svemagie
a9368757de fix gitea fetching & cosmetics
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m40s
2026-03-31 21:33:26 +02:00
svemagie
352a25552c fix: add resvg freebsd binary
Some checks failed
Build & Deploy / build-and-deploy (push) Failing after 19s
2026-03-31 20:39:24 +02:00
svemagie
1ba1ef55d5 debug: resvg freebsd
Some checks failed
Build & Deploy / build-and-deploy (push) Failing after 22s
2026-03-31 20:32:42 +02:00
svemagie
0e6d119928 fix: deploy with resvg
Some checks failed
Build & Deploy / build-and-deploy (push) Failing after 24s
2026-03-31 20:25:22 +02:00
svemagie
951a5354e3 fix: deploy build resvg 2026-03-31 20:16:40 +02:00
0f250c4b8d chore: switch GitHub widget and changelog to Gitea 2026-03-31 12:45:13 +02:00
ea92cffb54 fix: sharp src/build/Release path + delete stale cache 2026-03-31 12:22:18 +02:00
8212c7a2cf fix: sharp cache restore path (remove fragile find+xargs) 2026-03-31 12:17:28 +02:00
8d030b64a1 ci: fix BSD head -n -1 -> sed $d 2026-03-31 10:43:50 +02:00
4da7e8edb3 ci: add sharp binary cache + fix syndication internal URL 2026-03-31 10:37:42 +02:00
79ee1d9ea8 ci: add node-gyp dep for sharp build from source 2026-03-31 09:56:20 +02:00
fcacc12dd4 ci: add node-addon-api dep for sharp build from source 2026-03-31 09:54:29 +02:00
aba4a41dd7 ci: build sharp from source for FreeBSD 2026-03-31 09:53:00 +02:00
79f89023b0 ci: force-install sharp-wasm32 to bypass cpu check 2026-03-31 09:51:02 +02:00
1632db3efd ci: fix secrets typo + wasm32 sharp fallback 2026-03-31 09:49:39 +02:00
7321a05419 ci: install sharp wasm32 fallback for FreeBSD 2026-03-31 09:48:50 +02:00
190a1d9684 ci: rebuild sharp from source for FreeBSD runner 2026-03-31 09:41:52 +02:00
30afa60930 ci: adapt deploy workflow for Gitea FreeBSD runner 2026-03-31 09:17:18 +02:00
svemagie
6f2e7291e8 fix(deploy): use SITE_URL for syndication webhook me claim and endpoint
- me claim must be the publication URL (SITE_URL), not a separate INDIEKIT_URL
- SITE_URL is already a configured secret in this repo
- Show HTTP response body and status code for easier debugging

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 07:57:00 +01:00
svemagie
429a473f89 feat(deploy): trigger syndication webhook after successful deploy
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 07:39:47 +01:00
svemagie
f6f7cac403 fix: harden unfurl timeout + persist CI fetch cache
- Add hard 22s Promise.race deadline in prefetchUrl() to guard against
  TCP-level connection hangs that bypass unfurl.js's read-only timeout.
  Fixes builds hanging indefinitely on unresponsive hosts.

- Add actions/cache step to deploy.yml persisting .cache/ between runs.
  Prevents webmention (and all eleventy-fetch) data loss on transient
  502s: a populated cache means failures return existing data, not [].

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 22:28:40 +01:00
svemagie
b0b87d24c4 fix(deploy): exclude content/.indiekit/ from rsync --delete
This directory is managed by the node jail, not by the build. rsync
was trying to delete homepage.json (placed by the other jail) and
failing with permission denied.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:38:05 +01:00
svemagie
55884b83f2 fix(deploy): use rsync -rlz instead of -avz to avoid permission errors
The deploy user cannot set timestamps on the jail root directory.
Drop -a (which implies -t, -p, -o, -g) in favor of -rlz (recursive,
symlinks, compress) which is sufficient for deploying static files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:35:58 +01:00
svemagie
7ebd3037e6 fix(deploy): switch from SCP to rsync --delete to remove stale files
SCP only copies files over, leaving deleted files on the server. rsync
with --delete compares source and destination, removing files that no
longer exist in the build output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:27:39 +01:00
svemagie
aaed5e70a1 Update cron schedule to run every 3 hours 2026-03-16 10:54:50 +01:00
svemagie
bb1b2d1fda ci: upgrade to actions/checkout@v5 and setup-node@v5 (Node.js 24 ready) 2026-03-15 08:52:15 +01:00
svemagie
58fad5df08 rebuild 90 min 2026-03-13 05:55:19 +01:00
svemagie
b421ad8452 chore: deploy optimization 2026-03-11 19:28:43 +01:00
svemagie
daf5e2b616 chore: update deploy workflow 2026-03-11 19:10:27 +01:00
svemagie
f4bea58d07 fix: use bastille cmd to fetch homepage.json from node jail
SCP can't access the jail filesystem directly; use SSH + bastille cmd
instead, same pattern as the node jail deploy workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 10:34:47 +01:00
svemagie
0e075b54d8 feat: fetch homepage.json from node jail before build
Adds a pre-build SCP step to pull the live homepage config from the
node jail, so GitHub Actions always builds with the latest admin-saved
config instead of the stale committed version.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 10:24:56 +01:00
svemagie
2b9e037e72 fix: use GH_TOKEN secret for authenticated GitHub API calls in build 2026-03-10 02:07:34 +01:00
svemagie
35d1152ea7 fix: add GITHUB_TOKEN to build step for authenticated GitHub API calls 2026-03-10 01:55:24 +01:00
svemagie
ec9887a6d7 fix: social activity widget - Bluesky and Mastodon feeds not rendering
- deploy.yml: add missing BLUESKY_HANDLE env var to Build site step
- deploy.yml: fix GITHUB_USERNAME secret name (was GH_USERNAME)
- mastodonFeed.js: read MASTODON_URL first, fall back to MASTODON_INSTANCE
- mastodonFeed.js: add early-return guard when instance/user vars are empty
- mastodonFeed.js: also accept MASTODON_USERNAME as fallback for MASTODON_USER

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 01:31:19 +01:00
svemagie
63ac978fc3 change deploy cron 2026-03-10 00:34:46 +01:00
svemagie
0f5e8d1ec9 Add scheduled listening refresh and configurable fetch cache 2026-03-09 15:02:50 +01:00
svemagie
0e66579f36 feat(where): add OwnYourSwarm checkins page and metadata 2026-03-08 15:27:56 +01:00
svemagie
2ad048338d fix(ci): write .env with printf-safe secret handling 2026-03-08 14:29:30 +01:00
svemagie
f2a0c9e930 fix(ci): include SITE_SOCIAL in deploy build env 2026-03-08 14:27:44 +01:00
svemagie
ee654cc6b9 fix(ci): export ACTIVITYPUB_HANDLE during build 2026-03-08 14:04:55 +01:00
svemagie
3a13229b7b fix(ci): export AUTHOR_AVATAR during build 2026-03-08 13:56:46 +01:00
svemagie
5722e80c8e Remove legacy IndieKit auth config from static blog repo 2026-03-08 04:41:43 +01:00
svemagie
994f49f202 Update deploy.yml to create and deploy .env file with IndieKit password 2026-03-06 11:13:30 +01:00
svemagie
9b4c6dba40 fix: add build:css step and env vars to workflow 2026-03-06 10:52:06 +01:00
svemagie
cc803f0793 port 2026-03-05 23:32:44 +01:00
svemagie
5e9eb12322 deploy 2026-03-05 23:19:06 +01:00