0fe0eaf2bda7b5d12810669904627e81bb114527
Same structure as the Calendula page, but Agendula holds INTERNET and syncs CalDAV itself, so the wording turns on "only to the server you entered" rather than on the absence of the permission. Facts from the app repo: storage modes, Keystore-encrypted credentials, RFC 6764 discovery, Nextcloud Login Flow v2, Auto Backup exclusions, crash-report allowlist.
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%