Repo for sharing things
- HTML 99.2%
- Just 0.8%
|
|
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| a774 | ||
| asa/leylines | ||
| cmp | ||
| h2 | ||
| .gitattributes | ||
| .gitignore | ||
| justfile | ||
| README.md | ||
trebuchet
Shared static pages served at pages.databender.io/trebuchet/.
How to publish
-
Add your page as a directory named by topic/purpose with an
index.html:my-project/ my-project/index.html my-project/style.css (optional) my-project/assets/... (optional) -
Commit and push to master:
git add my-project/ git commit -m "feat(my-project): short description" git push origin master -
CI automatically syncs master to the
pagesbranch and triggers a rebuild. Your page will be live at:https://pages.databender.io/trebuchet/my-project/
Rules
- Push to master only. Never push directly to the
pagesbranch — CI force-syncs master to pages on every push. Direct pages-branch commits will be overwritten and lost. - Don't delete
/data/git-pages/on the server. The git-pages cache rebuilds from thepagesbranch via webhook. If you delete the cache, you must manually trigger a rebuild (see below). - Don't modify the webhook or git-pages service unless you understand the full chain: Forgejo webhook >
http://127.0.0.1:8787/trebuchet/> git-pages clonespagesbranch > serves content.
Access control
Bot blocking is enabled on pages.databender.io. Browsers work normally. Programmatic access (curl/wget) requires the API key:
curl -H "X-Api-Key: $GIT_PAGES_API_KEY" https://pages.databender.io/trebuchet/my-project/
The $GIT_PAGES_API_KEY env var is available on all fleet devices in Fish shell.
How it works
git push origin master
> CI: git push --force origin HEAD:pages
> Forgejo webhook POST to http://127.0.0.1:8787/trebuchet/
> git-pages clones emet/trebuchet.git pages branch
> content served at pages.databender.io/trebuchet/
Manual rebuild (emergency only)
If the git-pages cache is lost or stale, run on acc01ade:
curl -X POST \
-H "Host: emet.pages.databender.io" \
-H "Content-Type: application/json" \
-H "X-Forgejo-Event: push" \
-H "X-Forgejo-Delivery: $(uuidgen)" \
-d '{"ref":"refs/heads/pages","repository":{"full_name":"emet/trebuchet","name":"trebuchet","owner":{"login":"emet"},"clone_url":"https://git.databender.io/emet/trebuchet.git"}}' \
http://127.0.0.1:8787/trebuchet/
The POST path must be /trebuchet/ (not /). Posting to / triggers an index-repo rebuild which will fail.
Current pages
| Path | Description |
|---|---|
/trebuchet/a774/ |
The Testament of a774 |
/trebuchet/asa/leylines/ |
Ley Lines of Earth |
/trebuchet/cmp/ |
Algorithmic Trading Research |