Gives teahub.xyz a proper phone home-screen icon and a link-preview card for Discord, WhatsApp, iMessage and Slack.
apple-touch-icon.png: the 🍵 cup on Teahub green (#2f9e44), opaque 180×180 (it was the cup on white). Now linked from custom/header.tmpl instead of relying on iOS's /apple-touch-icon.png fallback.
og-card.png: 1200×630, 15 KB (WhatsApp drops images over ~300 KB). It's the home page's hero: Teahub, Git + Tea + Time, the cup, teahub.xyz.
base/head_opengraph.tmpl: Gitea 28.0.0's, changed only for pages that aren't a repository or a profile. og:image is now the card's absolute URL (it was the relative /assets/img/logo.png, which WhatsApp can't use), with width, height and alt, plus twitter:card = summary_large_image. Repositories, issues and profiles still use avatars.
src/: the HTML both PNGs are rendered from; the README says how to redo them.
The PNGs went in through the local API on green-tea with a temporary teahubxyz token, deleted afterwards (0 left, checked).
DONE: teahub.xyz's head carries the absolute card URL and the touch-icon link, and both images return 200 at their sizes.
Gives teahub.xyz a proper phone home-screen icon and a link-preview card for Discord, WhatsApp, iMessage and Slack.
- `apple-touch-icon.png`: the 🍵 cup on Teahub green (#2f9e44), opaque 180×180 (it was the cup on white). Now linked from `custom/header.tmpl` instead of relying on iOS's `/apple-touch-icon.png` fallback.
- `og-card.png`: 1200×630, 15 KB (WhatsApp drops images over ~300 KB). It's the home page's hero: Teahub, Git + Tea + Time, the cup, teahub.xyz.
- `base/head_opengraph.tmpl`: Gitea 28.0.0's, changed only for pages that aren't a repository or a profile. `og:image` is now the card's absolute URL (it was the relative `/assets/img/logo.png`, which WhatsApp can't use), with width, height and alt, plus `twitter:card` = `summary_large_image`. Repositories, issues and profiles still use avatars.
- `src/`: the HTML both PNGs are rendered from; the README says how to redo them.
The PNGs went in through the local API on green-tea with a temporary teahubxyz token, deleted afterwards (0 left, checked).
DONE: teahub.xyz's head carries the absolute card URL and the touch-icon link, and both images return 200 at their sizes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01XvDrpBDoAJjW8z1kaa3GAa
Gitea 28.0.0's head_opengraph.tmpl. Pages that aren't a repository or a profile now point
og:image at the absolute /assets/img/og-card.png (WhatsApp needs an absolute URL), give its
size and alt text, and ask for the large card with twitter:card summary_large_image.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XvDrpBDoAJjW8z1kaa3GAa
main f853d7c's gitea/custom/templates and public are on green-tea's volume (/data/gitea), copied from the bare repo with git archive, same result as sync-custom.sh. The only differences from what was there: header.tmpl, apple-touch-icon.png, and the new og-card.png and base/head_opengraph.tmpl. Backup of the previous state: /data/og-upload/backup-custom-20261016-103216.tgz.
Live now (public files are served as they are): /assets/img/og-card.png 200, 14724 bytes; /assets/img/apple-touch-icon.png 200, 2815 bytes. Both sha256 match the renders.
Not live yet: the two templates. Gitea reads them on start, and the restart is waiting on the owner. Until then the head still has the relative og:image. The next restart of green-tea, planned or not, loads them. If pages break after one, restore the backup above into /data/gitea and restart.
Receipt so far (2026-10-16 10:32 UTC):
- main f853d7c's `gitea/custom/templates` and `public` are on green-tea's volume (`/data/gitea`), copied from the bare repo with `git archive`, same result as `sync-custom.sh`. The only differences from what was there: `header.tmpl`, `apple-touch-icon.png`, and the new `og-card.png` and `base/head_opengraph.tmpl`. Backup of the previous state: `/data/og-upload/backup-custom-20261016-103216.tgz`.
- Live now (public files are served as they are): `/assets/img/og-card.png` 200, 14724 bytes; `/assets/img/apple-touch-icon.png` 200, 2815 bytes. Both sha256 match the renders.
- **Not live yet:** the two templates. Gitea reads them on start, and the restart is waiting on the owner. Until then the head still has the relative `og:image`. **The next restart of green-tea, planned or not, loads them.** If pages break after one, restore the backup above into `/data/gitea` and restart.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01XvDrpBDoAJjW8z1kaa3GAa
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Gives teahub.xyz a proper phone home-screen icon and a link-preview card for Discord, WhatsApp, iMessage and Slack.
apple-touch-icon.png: the 🍵 cup on Teahub green (#2f9e44), opaque 180×180 (it was the cup on white). Now linked fromcustom/header.tmplinstead of relying on iOS's/apple-touch-icon.pngfallback.og-card.png: 1200×630, 15 KB (WhatsApp drops images over ~300 KB). It's the home page's hero: Teahub, Git + Tea + Time, the cup, teahub.xyz.base/head_opengraph.tmpl: Gitea 28.0.0's, changed only for pages that aren't a repository or a profile.og:imageis now the card's absolute URL (it was the relative/assets/img/logo.png, which WhatsApp can't use), with width, height and alt, plustwitter:card=summary_large_image. Repositories, issues and profiles still use avatars.src/: the HTML both PNGs are rendered from; the README says how to redo them.The PNGs went in through the local API on green-tea with a temporary teahubxyz token, deleted afterwards (0 left, checked).
DONE: teahub.xyz's head carries the absolute card URL and the touch-icon link, and both images return 200 at their sizes.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XvDrpBDoAJjW8z1kaa3GAa
Receipt so far (2026-10-16 10:32 UTC):
gitea/custom/templatesandpublicare on green-tea's volume (/data/gitea), copied from the bare repo withgit archive, same result assync-custom.sh. The only differences from what was there:header.tmpl,apple-touch-icon.png, and the newog-card.pngandbase/head_opengraph.tmpl. Backup of the previous state:/data/og-upload/backup-custom-20261016-103216.tgz./assets/img/og-card.png200, 14724 bytes;/assets/img/apple-touch-icon.png200, 2815 bytes. Both sha256 match the renders.og:image. The next restart of green-tea, planned or not, loads them. If pages break after one, restore the backup above into/data/giteaand restart.🤖 Generated with Claude Code
https://claude.ai/code/session_01XvDrpBDoAJjW8z1kaa3GAa