Skip to content
View psimaker's full-sized avatar

Block or report psimaker

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
psimaker/README.md

Hi, I'm Umo

I run Linux boxes, break things, fix them, then automate the boring parts.

Switzerland · DevOps / Platform Engineering · Self-hosting


I spend a lot of time around servers, containers, monitoring, networking, and self-hosted tools.

Most of what I build comes from something I actually needed.

I'm currently going deeper into Kubernetes and building real AI agents.


Stuff I built

An iOS app for syncing Obsidian vaults through Syncthing.

I built this because I wanted a self-hosted way to keep my notes on iPhone and iPad without moving everything into iCloud, Dropbox, or another managed sync service.

  • Available on the App Store
  • Built with Swift
  • Designed around Syncthing and Obsidian
  • Includes a small Docker-based helper setup
  • Has CI, docs, screenshots, and a proper release flow

A privacy-focused web search engine, live at loogi.ch. Built on SearXNG — same engine, same Python runtime — but with a hardcoded custom theme, a curated engine list, and a deployment pattern that bakes config and theme into the Docker image at build time instead of mounting volumes at runtime.


My home infrastructure. Hosts loogi.ch in production.

Two tiers, deliberately split: a Kubernetes platform for new workloads, a Docker Compose dataplane for the stateful giants. Replatforming Plex, Nextcloud and the rest to k8s would buy nothing and cost weeks, so they stay on Compose with proper config-mgmt and observability around them.

Some of the stack:

  • k3s + Cilium + Flux v2 (GitOps)
  • OpenTofu + Ansible (Hetzner edge + airbase home)
  • Cloudflare Tunnel + Traefik + cert-manager
  • Self-hosted Headscale (own Tailscale control-plane) and Pocket-ID (OIDC)
  • kube-prometheus-stack + Loki + Tempo + Beszel — internal-only
  • SOPS + age for secrets, encrypted in the public repo
  • restic 3-2-1 backup (Hetzner Storage Box + Backblaze B2), weekly restore test
  • Renovate self-hosted, auto-merge on patch+minor
  • Tier-2 still runs: Plex, *arr, Nextcloud-AIO, Immich, Paperless, Vaultwarden, Gitea, n8n, Syncthing, ntfy, …

Documented end-to-end: 13 ADRs, runbooks, and post-mortems for the things that actually broke.

It's not meant to be a perfect template. It's more of a working setup that reflects how I actually run things.


A small userscript that skips Twitter/X t.co tracking redirects and opens the real link directly.

No backend. No external requests. Just vanilla JavaScript doing one job.

Works with Tampermonkey / Violentmonkey.


Open source

I contribute fixes when I run into something broken or annoying enough to investigate.


Pinned Loading

  1. vaultsync vaultsync Public

    Self-hosted Obsidian vault sync for iOS — powered by Syncthing.

    Swift 11 1

  2. homelab homelab Public

    Two-tier home infrastructure: k3s platform + Docker dataplane. Hosts loogi.ch.

    Shell

  3. cka-prep cka-prep Public

    Preparation for Certified Kubernetes Administrator exam.

    Shell

  4. twitter-x-spy-link-remover twitter-x-spy-link-remover Public

    Stops Twitter/X from tracking your clicks via t.co spy links

    JavaScript 1