Apps
Self-hosted applications running on kontti. All run as Podman containers managed by system-level Quadlets and provisioned with Ansible.
| Service | Port | Purpose |
|---|---|---|
| Homepage | 3000 | Application dashboard |
| Audiobookshelf | 13378 | Audiobook, podcast and ebook server |
| Mealie | 9000 | Recipe manager |
| Miniflux | 8084 | RSS reader |
| oPodSync | 8082 | GPodder-compatible podcast sync |
| Syncthing | 8384 | Peer-to-peer file synchronisation |
| Gitwatch (omawiki) | — | Auto-commits personal wiki edits to Git |
Homepage
Homepage is a static, fully proxied application dashboard. It acts as the landing page for the homelab, collecting links to every service in one place. Configuration lives in YAML files and is templated with Ansible.
Audiobookshelf
Audiobookshelf hosts the audiobook, podcast and ebook library. It mounts three separate NFS directories from the Synology NAS:
Volume=/var/mnt/nfs-data/media/audiobooks:/audiobooks:Z
Volume=/var/mnt/nfs-data/media/podcasts:/podcasts:Z
Volume=/var/mnt/nfs-data/media/books:/books:Z
Podcast play-state is kept in sync with mobile clients via oPodSync.
Mealie
Mealie is a self-hosted recipe manager with import-from-URL, meal planning and shopping list features. It uses SQLite for storage, so no separate database container is needed.
Miniflux
Miniflux is a minimalist self-hosted RSS reader. It runs as two containers sharing a private Podman network:
| Container | Role |
|---|---|
miniflux-app | Web UI and feed fetcher |
miniflux-postgres | PostgreSQL database |
The systemd dependency (After=miniflux-postgres.service, Requires=miniflux-postgres.service) ensures the database is up before the app container starts.
oPodSync
oPodSync is a minimalist GPodder-compatible server. It syncs podcast subscriptions and episode play-state across every GPodder client that points at it: Audiobookshelf, Music Assistant on the Home Assistant host, and mobile podcast apps all share the same subscription list and play-state.
Syncthing
Syncthing provides continuous, peer-to-peer file synchronisation. The primary use case is keeping the Obsidian vault (personal wiki) in sync between desktop, phone and kontti. The web UI is on port 8384; data sync uses port 22000 (TCP/UDP) and local discovery 21027/UDP.
Gitwatch (omawiki)
Gitwatch watches the Obsidian vault for changes and auto-commits them to a private Git repository. This adds version history on top of Syncthing's live mirroring — Syncthing keeps the latest copy on every device, Gitwatch keeps the history. The container is built locally (Image=localhost/gitwatch:latest) rather than pulled, because no official image is published.
My experience
Homepage has been handy — beyond the quick links, it also gives an at-a-glance view of service availability.
The Obsidian + Syncthing + Gitwatch combination took a fair amount of work to set up initially, but once running it has been reliable. Having all notes available on both desktop and phone is convenient.
Miniflux does exactly what it should — it's minimalist and stays out of the way.
Mealie has a few recipes saved but could see more use.