press any key to skip

Nav

1
2
3
4
5
6
7

Jump

Select

~

Prompt

M

Theme

noc@nocfa:~$ whoami

NocFA

INFRASTRUCTURE / AUTOMATION / SYSTEMS

noc@nocfa:~$ cat tagline.txt

Tending the machines so they may tend to us, tech priest in training.

I keep systems alive, automate everything, and spend the saved hours listening to music and playing games with friends, vim > nano, FOSS is my father figure.

noc@nocfa:~$ ls sections/
noc@nocfa:~$

Use keyboard to navigate → · press ~ for the prompt, try "help"

noc@nocfa:~$ ls ~/signal/

SIGNAL

matrix @noc:nocfa.net Preferred channel.
email [email protected] The original federated system, if you must contact me outside of Matrix
discord nocfa Last resort — unless I recognise your name, I will likely not accept
forgejo git.nocfa.net/NocFA The primary self-hosted forge
github github.com/NocFA Where the commits go when they need to be seen
noc@nocfa:~$ neofetch

STATUS

──────────────
handle NocFA location Ireland interests systems, music, gaming, hardware, automation os Windows (gaming exile), macOS (headless, mostly), Linux (rhel, usually) editor Zed, neovim infra Proxmox, Docker, Ansible, Terraform languages Bash, Python, TS, Rust
Sysadmin by trade, tinkerer by compulsion. I run infrastructure, write scripts that replace me, and maintain a homelab that has no business being this complicated and running as hot as it does. If not that, I'm either gaming or discovering new artists..
noc@nocfa:~$ ./now-playing.sh
now playing
noc@nocfa:~$ cat creed.txt

Self-host all the things, trust no cloud you don't control.

If it can be automated, it should be. If it can be open source, it must be.

Uptime is earned, not given. Backups are tested, not assumed. Documentation is written for the version of you that will have forgotten everything in six months or if you're me, about 6 hours.

noc@nocfa:~$ watch -n 0.5 homelab-status

Machines

connecting...
noc@nocfa:~$ ls ~/projects/

Projects

MDSF Crew pre-launch

Crew-for-hire platform for Star Citizen. Recruiters post operations and assemble crews. Crew members list availability and build reputation through review-based rankings. Organisations manage squads, ranks, and fleets -- all tied to RSI-verified identities.

MDSF Crew landing page
frontend SvelteKit 2Svelte 5GSAP
backend Fastify 5TypeScriptNode.js 22
data PostgreSQL 16Drizzle ORMRedisPgBouncer
infra Cloudflare TunnelStreaming ReplicationDocker
auth Argon2idTOTP 2FADiscord OAuth2CSRF
payments StripeMulti-currencyWebhooks
integrations Discord BotBrevo SMTPRSI Scraping

features

Operations board with role-based crew assembly, squad management, and ship assignment
Review system with per-role experience tiers (Rookie through Elite)
Organisation system with RSI verification, persistent squads, ranks, alliances
Ship library (247 ships) with fleet management and org fleet pooling
Real-time notifications via WebSocket, Discord bot with slash commands
Subscription tiers, donation system with Hall of Fame, multi-currency pricing
Admin panel with moderation, audit logs, policy management, automated backups
Support ticket system, GDPR data export, account deletion
foo_gifart open source

A foobar2000 component that renders animated GIF files as album art. Drop it in, point the artwork panel at a .gif, and your covers come alive — static art is so last decade.

GIF
Track Title
Artist Name
language C++
platform foobar2000Windows
sdk foobar2000 SDKWIC
gindexer open source

C++ library that indexes a local music collection and resolves cover art by track metadata. Scans directories on startup, watches for changes, and returns matching cover art fast enough for real-time use in discord-music-presence.

language C++17
storage In-memoryLMDB
libraries TagLibefswlmdbxx
Segments open source

Single-binary task and project manager built as a faster replacement for Beads. It combines an LMDB-backed CLI, live web UI, and MCP tools for agent-friendly planning across projects.

Segments task list interface
language Go
storage LMDBJSONL export
surfaces CLIWeb UIMCP
shellwhy open source

CLI that answers "why is my shell doing this?" — inspects a shell session, applies per-shell startup-file rules, safely parses source statements, detects tooling hooks (starship, direnv, nvm, ...), and labels every file with a confidence level instead of pretending static analysis can prove runtime behavior.

shellwhy icon — a terminal with a question mark
language Rust
shells bashzshfishsh/dashkshtcshnu
output humanplainJSONstrace trace mode
noc-homelab open source

Four-machine homelab spanning macOS and Linux, connected over Tailscale. Runs media streaming, Matrix comms, game streaming, and monitoring through a central dashboard and agent API.

noc-homelab dashboard
infra TailscaleDockersystemdlaunchd
services Matrix/SynapseEmbyNextcloudGatus
language PythonBash
noc@nocfa:~$ ls -lt ~/remembrancer/

REMEMBRANCER

feed: rss.xml ↗

↑↓ pick a post · ↵ read · inside a post: j/k scroll, n next, q back

noc@nocfa:~$ tree ~/archivum/

ARCHIVUM

wiki /5 projects · 14 pages
Per-application docs

Documentation for each project, fed from Obsidian as markdown. Pick a page from the tree — or jump straight in:

segments single-binary task & project manager · 6 pages shellwhy explains which startup files control a shell session · 2 pages noc-homelab four-machine homelab across macOS, Linux and a VPS · 3 pages gindexer C++ music indexer that resolves cover art from track metadata · 2 pages foo_gifart animated GIF album art for foobar2000 · 1 page

From anywhere on the site: man segments in the prompt lands here.