ff3c0fa43728918678dca16b45474aa1a7077b6f
Codeberg is where the apps live now, so the source link, its icon and the release lookup follow. Forgejo serves Gitea's /api/v1, so the version badge keeps working — with a fallback to the newest pre-release, since a pre-1.0 app publishes nothing else (Agendula showed a stale v0.2.0 before). Calendula is on Google Play as well as F-Droid; adds a tonal button for it, and its fifteen community translations replace "German and English". Agendula's entry described the app it stopped being: it now carries its own VTODO store, with an external provider as a choice rather than a requirement, plus export and its own CalDAV sync in progress. floret-kit's modules have grown past core-time. Footer forge link and the /uses infrastructure list separate the two roles: Codeberg for source, self-hosted Gitea for builds.
jeanlucmakiola.de
Personal website + blog. Built with Astro, deployed on self-hosted Coolify, analytics via self-hosted Umami.
See PLANNING.md for the decisions and roadmap.
Develop
npm install
npm run dev # http://localhost:4321
npm run build # output -> dist/
npm run preview # serve the built site locally
Writing a post
Create a Markdown file in src/content/blog/, e.g. my-post.md:
---
title: My post
description: One-line summary (used for SEO + RSS).
pubDate: 2026-06-28
tags: [notes]
draft: false # set true to hide from listings/feeds
---
Body in Markdown.
The filename (minus extension) becomes the URL slug: /blog/my-post/.
Commit + push → Coolify rebuilds → live.
Analytics (Umami)
Analytics is off unless these env vars are set (so it stays off in dev). Set them as build-time variables in Coolify:
| Variable | Value |
|---|---|
PUBLIC_UMAMI_SRC |
https://<your-umami>/script.js |
PUBLIC_UMAMI_WEBSITE |
the website id (UUID) from Umami |
Deploy on Coolify
This repo ships a multi-stage Dockerfile (build with Node → serve dist/
with Caddy on port 80).
- New Resource → Dockerfile (or auto-detect), point at this repo.
- Set the two
PUBLIC_UMAMI_*build variables. - Set the domain to
jeanlucmakiola.de; Coolify provisions HTTPS. - Deploy Umami separately (Coolify has a one-click Umami template), then copy its script URL + website id into the build variables above.
SEO
- Sitemap at
/sitemap-index.xml(via@astrojs/sitemap) - RSS at
/rss.xml - Canonical URLs + Open Graph/Twitter tags in
src/components/BaseHead.astro robots.txtinpublic/- Add an
og-default.png(1200×630) topublic/for link previews.
Languages
Astro
43.4%
CSS
38.9%
JavaScript
8.6%
TypeScript
7.5%
Dockerfile
1.6%