makiolaj 0fe0eaf2bd Add the Agendula app privacy policy
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.
2026-09-09 16:01:11 +02:00
2026-09-09 16:01:11 +02:00

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).

  1. New Resource → Dockerfile (or auto-detect), point at this repo.
  2. Set the two PUBLIC_UMAMI_* build variables.
  3. Set the domain to jeanlucmakiola.de; Coolify provisions HTTPS.
  4. 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.txt in public/
  • Add an og-default.png (1200×630) to public/ for link previews.
S
Description
Personal website & blog — Astro + Material 3 Expressive
Readme
333 KiB
Languages
Astro 43.4%
CSS 38.9%
JavaScript 8.6%
TypeScript 7.5%
Dockerfile 1.6%