From 5cd19867b702c648fff64cdd399d173005468d6e Mon Sep 17 00:00:00 2001
From: Stefan Koelle A peek under the hood of my homelab. Proxmox, Synology, Docker, and how everything is wired together. Prometheus and Grafana form the central monitoring stack for the whole
-homelab, running as Docker containers on the NAS. Prometheus runs as a Docker container on the Synology NAS with a
+bind-mounted data directory for persistence. Grafana is deployed as a
+sibling container, connected to Prometheus as its primary datasource.
+Both containers are defined in a single Docker Compose file and managed
+via Portainer. The Prometheus configuration file defines scrape targets,
+scrape intervals (15 seconds for hosts, 60 seconds for network devices),
+and retention policies. Basic alerting is configured through Prometheus Alertmanager, which
+sends notifications to a dedicated Telegram channel for critical events
+like host-down or disk-full conditions. The dead-man's-switch pattern
+ensures that if Prometheus itself stops scraping, an alert fires within
+minutes. More sophisticated alerting rules (disk space prediction,
+temperature thresholds) are planned but not yet implemented. AmigaOS 3.2.3 runs beautifully both on FPGA and on modern ARM boards — the question is which trade-offs you're willing to accept. AmigaOS 3.2.3 runs beautifully both on FPGA and on modern ARM boards — the question is which trade-offs you're willing to accept. Both approaches have their place, and the choice often comes down to what you're trying to do: run demos at perfect timing, or tinker with software at higher resolutions. The MiSTer shines when timing accuracy matters. Demos that rely on
+cycle-exact raster effects, games that use custom hardware tricks, and
+software that depends on precise interrupt timing all benefit from the
+FPGA's hardware-level reproduction. The Minimig-AGA core also provides
+a more authentic floppy drive experience, including the characteristic
+drive sounds and seek times that software sometimes depends on for
+loading screens and copy protection. The Pi is better for productivity and development work. Higher RTG
+resolutions make Workbench usable on modern monitors. The ability to
+easily swap between AmigaOS versions and hard disk images makes it
+ideal for testing software. And the lower cost means you can dedicate
+a Pi to Amiga development without tying up expensive FPGA hardware. Most Amiga software works on both platforms, but there are edge cases.
+Some demos use raster tricks that only work on real AGA hardware or the
+MiSTer's FPGA core. Some productivity software depends on specific
+accelerator card features that neither platform emulates perfectly.
+And the perennial question of Kickstart ROM versions — 3.1 for
+compatibility, 3.2 for features — applies equally to both setups. Both setups now run side by side without any real winner — MiSTer for authenticity and demos, the Pi for tinkering and RTG resolutions. The obvious question is "why bother?" — the Atari ST was never designed
+for the internet, and the experience of using it online is objectively
+worse than any modern device. But that's not the point. The real
+satisfaction comes from making old hardware do things it was never
+designed to do, understanding the networking stack at a level that modern
+abstractions hide, and experiencing the dial-up era's BBS culture on
+original hardware. Bulletin board systems from the dial-up era are still running today,
+maintained by enthusiasts who keep the old software alive. Connecting to
+one from an original Atari ST — via a Wi-Fi modem emulation — is a
+genuinely nostalgic experience. The ANSI art login screens, the message
+boards, the file sections, the door games — it's all exactly as it was
+in the early 1990s. The main difference: instead of tying up a phone
+line, the connection goes over Wi-Fi to a BBS that's accessible from
+anywhere in the world. The biggest lesson: networking on retro hardware is 90% patience and
+10% actual configuration. The STinG stack is well-documented but
+fragile — wrong TCP/IP settings silently break connections without
+useful error messages. The ESP32 Wi-Fi modules are cheap and flexible
+but require careful firmware selection for the specific use case. And
+terminal emulation is a rabbit hole of character sets, escape sequences,
+and display quirks that haven't been relevant for decades but still
+matter when connecting to a BBS that renders ANSI art. If you're chasing BBS nostalgia on real hardware: budget far more patience for the networking layer than for the actual computer. The 1980s hardware is the easy part; convincing 2020s Wi-Fi and modern BBS ANSI dialects to cooperate is the real challenge. Long before Atari ST and Amiga took over the retro corner, a Vobis-Highscreen 486 DX2-66 in its distinctive Colani-designed tower case was the main PC. Decades later, it's kept around as both a museum piece and a genuine gaming machine, running alongside a MiSTer FPGA equivalent. Long before Atari ST and Amiga took over the retro corner, a Vobis-Highscreen 486 DX2-66 in its distinctive Colani-designed tower case was the main PC. The original hardware is long gone, but the entire setup has been recreated 1:1 on MiSTer FPGA — same DOS version, same drivers, same AUTOEXEC.BAT and CONFIG.SYS, same directory structure. The Vobis-Highscreen was a premium PC in its day — the Colani design gave it a distinctive curved case that still looks futuristic. Inside it ran an Intel 486 DX2 at 66MHz with 8MB of RAM, a Sound Blaster 16, and a Tseng ET4000 graphics card. A 200MB hard drive and a 3.5" floppy drive completed the setup. The machine was the go-to system for early-90s classics like Doom, Wing Commander, Duke Nukem 3D, and Lemmings. The AO486 core on MiSTer FPGA reproduces the original hardware with near-perfect accuracy. The key was not just getting the hardware emulation right, but rebuilding the exact software environment: the same MS-DOS version, the same memory managers (HIMEM.SYS, EMM386), the same Sound Blaster drivers, and the same AUTOEXEC.BAT and CONFIG.SYS tuning that made the original machine run smoothly. Even the directory structure and file names match the original setup. The point isn't just to play DOS games — it's to preserve the exact computing experience from that era. The way DOS memory management worked, the way sound drivers had to be configured manually, the way batch files chained together to create a usable environment. This level of detail is lost when you just launch a DOS game from a modern frontend. The MiSTer setup recreates the entire boot process, from BIOS POST to the C:\> prompt, just as it was in the mid-90s. The MiSTer AO486 core handles the emulation convincingly. Timing accuracy is good enough for games that rely on cycle-sensitive behavior. Sound Blaster emulation covers the standard OPL3 FM synthesis and digital audio. The main trade-off is that some hardware-specific quirks — like the exact timing of the ET4000 graphics card or the behavior of specific ISA bus peripherals — aren't perfectly replicated. But for the purpose of preserving a working DOS environment, it's more than sufficient. Hardware I've collected and kept running over the years. From Atari ST and Amiga to MiSTer FPGA and DOS towers. Hardware I've collected and kept running over the years. From Atari ST and Amiga to MiSTer FPGA and DOS environments. The office houses the main retro computing workstation. The three Mega ST 4 machines each have a defined role: one runs GEM-based productivity software, one is set up for MIDI music production with a connected synthesizer, and one serves as the development machine for ST software. The Mega ST 2 is the backup and testing machine. The MiSTer FPGA handles Amiga and DOS emulation with near-perfect timing accuracy, while the MiST provides a dedicated Atari ST experience without the overhead of the MiSTer's larger feature set. The Batocera box in the living room takes a completely different approach — it's not about hardware authenticity, it's about convenience. A compact PC boots directly into the Batocera frontend, providing a console-like experience for casual retro gaming on the TV. Controllers are wireless, the interface is controller-friendly, and the focus is on games that work well from a couch rather than demos or productivity software that needs a keyboard and mouse. All machines share the same network infrastructure, with FTP access to the NAS for file transfers. Disk images and software archives are stored centrally and served to individual machines as needed. The MiSTer and MiST both use SD cards for storage, while the original hardware uses CompactFlash adapters or SCSI-to-IDE bridges depending on the machine. The Raspberry Pi 400 accesses the same NFS shares as the other Pis in the flat. The honest status update: several open items remain — documenting the exact handheld models, and waiting on the A1200 Mini pre-order. Retro computing, it turns out, is never really "done."What's monitored
@@ -27,6 +29,23 @@ homelab, running as Docker containers on the NAS.
+Network printer Toner level, page count, online/offline status via SNMP How it's deployed
+Alerting
+Open items
+Running AmigaOS in 2026: MiSTer FPGA vs Amiberry on Pi
Two Roads to the Same Workbench
@@ -18,5 +18,29 @@ parent: "/"
+When to choose MiSTer
+When to choose Amiberry on Pi
+The compatibility question
+Why connect a 40-year-old computer to the internet
+The BBS experience
+Lessons learned
+The 486 DX2-66 Tower: An Original PC Living Alongside Its FPGA Twin
+The 486 DX2-66: Rebuilding a DOS Era on MiSTer FPGA
Original Hardware vs FPGA Twin
+The original hardware
+The MiSTer recreation
+Why a 1:1 recreation
+What's preserved
-
+AO486 vs real hardware
+The office setup in detail
+The living room setup
+How it all connects
+
If the A1200 ships on time and delivers on the promised feature set, it could become the default entry point for people curious about the Amiga. The original hardware is getting harder to find in good condition, -and the capacitor-bomb主板 issue means that even working units need +and the capacitor-bomb motherboard issue means that even working units need recapping. A modern, reliable reproduction — even if it's software emulation — lowers the barrier significantly. The 25 pre-installed games give newcomers a curated starting point, and the USB sideloading support diff --git a/smarthome/balkonpi/index.njk b/smarthome/balkonpi/index.njk index 28d4901..a610233 100644 --- a/smarthome/balkonpi/index.njk +++ b/smarthome/balkonpi/index.njk @@ -11,7 +11,10 @@ layout: base.njk
A Raspberry Pi Zero W mounted near the balcony acts as a small, self-contained smart-balcony controller: light control, an internet radio player, sensor readings, and its own backup/monitoring, all on -very modest hardware.
+very modest hardware. The goal is to make the balcony a more pleasant +space — light control when it gets dark, background music while sitting +outside, and temperature readings to know what to expect before stepping +out.The Pi Zero W is connected to an ESP32 microcontroller that handles +the actual light switching via a relay module. Communication happens +over HTTP — the Pi sends a simple request to toggle the relay, and the +ESP32 responds with the current light state. The ESP32 also reads a +DHT22 temperature and humidity sensor, publishing the values to MQTT +for the home dashboard. This split makes sense: the Pi handles the +user-facing logic (audio, buttons, internet radio), while the ESP32 +handles the real-time hardware control.
+Despite the very limited RAM, this Pi still participates in the same Prometheus monitoring pattern as the rest of the fleet — with the metrics @@ -33,6 +46,7 @@ configuration to the NAS over the internal network.
The heart of the homelab. Home Assistant, MQTT sensors, dashboards, and automation projects that make everyday life a little more interesting.
{% include "card-grid.njk" %} + + diff --git a/smarthome/octoprint/index.njk b/smarthome/octoprint/index.njk index b99cfef..6576100 100644 --- a/smarthome/octoprint/index.njk +++ b/smarthome/octoprint/index.njk @@ -10,7 +10,9 @@ layout: base.njkA Raspberry Pi 3B runs OctoPrint for remote 3D-printer control, plus a live camera stream so print progress can be checked without walking over -to the printer.
+to the printer. This eliminates the need to stand next to the printer +watching the first layer — a quality-of-life improvement that's hard to +go back from once you've experienced it.The camera setup uses a standard USB webcam connected to the Pi. The +camera-server project provides two streaming modes: MJPEG for the +OctoPrint dashboard (low latency, works in any browser) and HLS for +remote viewing over slower connections. The MJPEG stream is the primary +way to check on prints — it loads quickly and updates in real time in the +OctoPrint web interface.
+This Pi originally also had a small status display attached; the display was later moved to the backup Pi (which benefits more from local, @@ -30,6 +40,16 @@ that point to better reflect its now-singular focus on the printer.
After moving this Pi to a newer OS release, boot configuration files moved to a new path — editing the old path silently does nothing, which is an easy trap when following older notes or tutorials for the same -hardware.
+hardware. The lesson: always verify that configuration changes actually +take effect, especially after OS upgrades on embedded hardware. + +Running OctoPrint in Docker on a Pi 3B might seem like overkill, but +it provides consistency with the rest of the fleet. The same Portainer +interface manages this container alongside the NAS services, the same +monitoring stack collects its metrics, and the same backup strategy +covers its configuration. The overhead of Docker on ARM is minimal for a +single-container setup, and the operational benefits justify the small +resource cost.
diff --git a/smarthome/tubearchivist/index.njk b/smarthome/tubearchivist/index.njk index 1e7065e..5b180c6 100644 --- a/smarthome/tubearchivist/index.njk +++ b/smarthome/tubearchivist/index.njk @@ -10,7 +10,9 @@ layout: base.njkTubeArchivist runs on the Synology NAS via Docker Compose, self-hosting a searchable archive of downloaded YouTube content (Elasticsearch + -Redis + the TubeArchivist app itself).
+Redis + the TubeArchivist app itself). It's used to archive channels +worth rewatching — tutorials, long-form content, and anything that might +disappear behind copyright strikes or channel deletions.Running Elasticsearch on Synology's DSM kernel isn't fully @@ -23,8 +25,16 @@ without it, rather than fighting the kernel.
TubeArchivist data is split into two categories with different backup +priorities. The downloaded media files and Elasticsearch metadata are +backed up as part of the NAS backup volumes, since they take significant +time to re-download and re-index. The Redis cache is excluded — it only +holds session data and can be safely rebuilt on restart.
+| Data | Included in NAS backup? |
|---|---|
| Redis cache | No — safe to delete/rebuild, only holds session data |
Channels are added via the TubeArchivist web interface, which provides +a YouTube-like browsing experience for the archived content. New videos +from subscribed channels are automatically downloaded on a schedule. The +search function indexes titles, descriptions, and metadata, making it +easy to find specific videos in a large archive. The system runs headless +on the NAS with no dedicated display — all interaction happens through the +web interface or the companion mobile app.
+ diff --git a/stefankoelle/pdf/cv.pdf b/stefankoelle/pdf/cv.pdf index dc2a8a48ed81e2f53f6d39c823154afa5b3d8976..82f5ebeb7ada968e6fc19e39ac37721ce0a4d2a5 100644 GIT binary patch delta 12448 zcmV;RFkjEc@B+o~0~(D)9=aIaAd(QsrZxe1GKcFN%(C9QawuCq+j}< wJy2nUoO
z$WM4T1xlto--LB3wq#9T)r-f+sZU8arf6yq1|MNm1UWR$+-J?e25fjM0Bmbe*gQM1
zqUTb>Y;Iu9QjUDk+5W*`M*6W2+B-iunt%E;nQC9o#yx63zp_0WbN80`(1Pq!-1MdV
z{7aZQm3<1+m-F*4bNU&SyZy#ag<|K8?YSK{cPSLRZXyHM3@jp#uZd?p5^W4y4(e5|
z1$S2WgoX7~bI*)ZOHY5+(C`@*I2gSxCH9GA5H7}jOx`s*m`F-^pUqj9;nHNpFn>hWrtyc*WRR_Y4pk9(CbgUmxwFZb
zHow+zyQ}N1hVjVF32~bh_zWYQ`nG>Uo&9oOc7tD7yHTGk%hNY_5a9?s2xAfU#h_7U
zo&F?u&JiR0g@^w4wN$TBwOQQoFYz+U5!`6v@bn3z{VX@iH@C9Pa=oj|_}oewXB4FH
z8GmO17NKhwO|@XRnfa6i07>=9N9Bv%;j^xH^9@m*$*ZO|Ax
zuR)oZs6?U2af%io4k4BB2xa66bP#{Qj_{JvbPtj9;en@(Q}?4?^V^w8q~hCOL0!~M
zB$?~K57|?4=>(n)846O6HI7
z?ixyFCXhF~4)yS~m!cqEmS3So=pP)+Mx