Add GoatCounter analytics, Miniflux, and update CLAUDE.md

- Add self-hosted GoatCounter via systemd binary service (stats.monotrope.au)
- Add Miniflux RSS reader via Docker Compose (reader.monotrope.au)
- Extend Ansible playbook with goatcounter and miniflux tags; all provisioning is idempotent
- Add Caddy reverse proxy blocks for both new services
- Inject GoatCounter script in baseof.html (production builds only)
- Add goatcounter and miniflux Makefile targets
- Rewrite CLAUDE.md to reflect actual project state

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Louis Simoneau
2026-04-09 15:09:53 +10:00
parent b090231557
commit 5a734d404b
20 changed files with 963 additions and 183 deletions

View File

@@ -0,0 +1,32 @@
{{ define "main" }}
{{ $rating := .Params.rating | default 0 }}
<article>
<h1>{{ .Title }}</h1>
<div class="book-meta">
{{ with .Params.book_author }}
<span class="meta-key">author</span>
<span class="meta-val author">{{ . }}</span>
{{ end }}
<span class="meta-key">read</span>
<span class="meta-val">{{ .Params.date_read | default (.Date.Format "January 2006") }}</span>
<span class="meta-key">rating</span>
<span class="meta-val">
<span class="rating-blocks">{{- strings.Repeat $rating "▓" -}}{{- strings.Repeat (sub 5 $rating) "░" -}}</span>
<span class="rating-num">{{ $rating }}/5</span>
</span>
</div>
{{ .Content }}
{{ with .Params.tags }}
<div class="post-footer">
<div class="tags">
{{ range . }}<a class="tag" href="/tags/{{ . | urlize }}/">{{ . }}</a>{{ end }}
</div>
</div>
{{ end }}
</article>
{{ end }}