Projects
Things I build to solve problems I actually have, mostly in Python, Go and Bash. Source on GitHub.
Platforms
Security & detection
- git-commit-analyzer
Flags potentially malicious commits using an LLM.
- kibana-rules-export
Exports Kibana detection rules to JSON, Markdown and CSV.
- ransomware-lab
Contained lab for studying ransomware behaviour and detection.
- lab-cve-2023-4863
Reproduction lab for the libwebp heap overflow.
Infrastructure & operations
- lab-jenkins-lxd
Jenkins on an LXD VM with Terraform and Ansible.
- k3d-bootstrap-script
Local k3d environment in one script.
- kind-bootstrap-script
Bootstraps a Kubernetes cluster with kind.
- jira-afterlife
Browse and search Jira backups offline, without a Jira instance. Useful after migrations or decommissioning.
- gitctx
Git profile manager inspired by chezmoi.
Homelab
- kaze
Subsonic-compatible audio server.
- sumi
Minimal web EPUB reader.
- suika
Manga reader and library browser.
- reel
Media manager.
- rms
Media server that speaks the Jellyfin API (10 to 12), so clients like Streamyfin and Kodi just connect. No database: libraries are plain folders defined in YAML, each with its own language. Built-in web player with live subtitle sync. 20–30 MB idle, under 200 MB while remuxing in real time.
- dashboarr
Minimalist static dashboard for a Raspberry Pi.
Games & side projects
- gamebook-studio
Digital tabletop for any PDF: gamebooks, print-and-play and tabletop RPGs, solo or in real-time multiplayer. Drawing and pointer tools, dice, tokens, counters, and character and enemy sheets, with every design decision documented as an ADR.
- aiventure
Sandbox text adventure with a virtual DM. A nested world graph (regions, buildings, floors, rooms, containers) that changes for good, NPCs with their own goals, local and global events, procedural side quests, and a DM that stirs things up when play stalls. A local LLM narrates; the engine keeps the rules.
- AIDungeon-Ollama
Modernized AIDungeon Clover Edition that runs on current local LLMs through Ollama.
- Blog archive 2016–2018
My old retro-gaming blog, kept as a static archive.
- TomeTIK
Continuation of an old graphical ToME 2 port. Optional isometric tiles and sound, autoexplore, and a borg that started as click-to-move pathfinding and ended up playing the game by itself. Its oracle tells you what the bot would do next.