Skip to content
View Schnuecks's full-sized avatar

Highlights

  • Pro

Block or report Schnuecks

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.

Content in all repositories owned by your account will be closed.
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
Schnuecks/README.md

Hi, I'm Schnuecks 👋

🇩🇪 Auf Deutsch lesen

Hallo, ich bin Schnuecks! 3D-Druck-Fan und Homelab-Bastler aus Deutschland. Ich baue kleine selbstgehostete Werkzeuge für mein eigenes Setup und teile sie, wenn sie auch anderen helfen können.

  • 🖨️ 3D-Druck mit einem Bambu Lab P2S und einem Prusa Mini+
  • 🏠 Homelab & Self-Hosting: eigene Dienste zuhause, in Docker
  • 🐍 Meistens Python, Rust dazu etwas Shell
  • 🌐 Alle Projekte auf einen Blick: schnuecks.dev/de

Ich entwickle mit einem KI-Assistenten an meiner Seite. Er schreibt einen guten Teil von Code, Tests und Doku, aber was gebaut wird, wie es sich verhält und was am Ende veröffentlicht wird, entscheide ich. Jedes Release läuft vorher eine Weile auf meiner eigenen Hardware.

Wichtiger als jede Funktion ist mir dabei die Sicherheit: Wenn sich etwas nicht sicher umsetzen lässt, baue ich es lieber gar nicht. Deshalb durchläuft jedes Projekt bei jeder Änderung seine Tests, einen Container-Scan (Trivy) und Dependabot; die Web-Apps werden zusätzlich mit OWASP ZAP gescannt. Vor der Veröffentlichung bekommt jedes Projekt einen Sicherheits-Review: Funde werden mit einem Test nachgestellt, behoben und danach erneut geprüft – nachzulesen in den Changelogs. Etwas gefunden? Jedes Repository hat eine Sicherheitsrichtlinie, um es vertraulich zu melden.

Wenn dir meine Projekte helfen, kannst du mir gern auf Ko-fi einen Kaffee ausgeben ☕

Unterstütze mich auf Ko-fi


Ein selbstgehostetes Archiv für deine 3D-Drucke. PlateShelf liest geslicte Dateien aus Bambu Studio, OrcaSlicer, PrusaSlicer, Cura und anderen und zeigt sie so übersichtlich wie dein Slicer: Platten mit Vorschau, Druckzeit, Filament, Kosten und eine 3D-Vorschau der echten Druckbahnen.

  • Direktimport von Bambu-Lab-, Prusa- (PrusaLink), Klipper- (Moonraker) und **OctoPrint-**Druckern
  • Druckverlauf mit Statistik, Notizen je Druck und eigenen Fotos vom fertigen Druck
  • Benutzerkonten mit Rollen, Passkeys, Single Sign-on, tägliche Sicherungen, sechs Sprachen, helles und dunkles Design
  • Läuft als ein einziger Docker-Container auf PC, NAS oder Raspberry Pi

PlateShelf-Übersicht aller Projekte PlateShelf mit der 3D-Vorschau der Druckbahnen


Einem Gerät in Home Assistant ein neues Leben geben. Nine Lives ersetzt ein Gerät, ohne etwas kaputtzumachen: Das neue Gerät übernimmt Entity-IDs, Einstellungen und Verlauf des alten, und Automationen, Dashboards und das Energie-Dashboard laufen einfach weiter – zum Beispiel beim Umzug von Sensoren von Zigbee auf Thread/Matter.

  • Entitäten nach Typ und Einheit gepaart, mit Vorschau jeder Änderung und Rückgängig mit einem Klick
  • Verlauf und Langzeitstatistik laufen weiter, Zählerstände ohne Sprung im Energie-Dashboard
  • Verweise mitgezogen: Geräte-Trigger, Dashboards, Gruppen und andere Helfer; YAML-Dateien werden nur gemeldet
  • Tauscht sogar, wenn das alte Gerät schon in der App des Herstellers gelöscht wurde; Installation über HACS

Nine Lives ordnet die Entitäten des alten und neuen Geräts einander zu Vorschau von Nine Lives mit übernommenen IDs und umgeschriebenen Verweisen


DMARC- und TLS-Berichte im Klartext. mailreports holt die täglichen DMARC- und SMTP-TLS-Berichte deiner Domains aus einem Postfach und erklärt sie: wer in deinem Namen E-Mails versendet hat, ob sie echt waren und wie die empfangenden Server damit verfahren sind – statt XML und Fehlercodes.

  • Jeder Berichtseintrag erklärt, Absender eingeordnet als eigene Server, beauftragte Dienste, Weiterleitungen oder Unbekannte, mit Reverse-DNS und Netz
  • DNS-Prüfung für DMARC, SPF, DKIM, MTA-STS und TLS-RPT und eine Empfehlung, wann die Richtlinie strenger werden kann
  • Benachrichtigungen per Pushover, ntfy, Webhook oder E-Mail, dazu eine Wochenübersicht
  • Passkeys, Single Sign-on, sechs Sprachen; ein Container, eine SQLite-Datei. Mehr auf schnuecks.dev

mailreports-Übersicht mit der DMARC-Bestehensquote zweier Domains mailreports erklärt einen DMARC-Bericht Eintrag für Eintrag


Ein schlanker, selbstgehosteter API-Server für die RustDesk-App. RDAPI ergänzt deinen eigenen ID- und Relay-Server um das, was ein Haushalt oder ein kleines Team braucht: Anmeldung in der App, ein Adressbuch, das dir auf jedes Gerät folgt, eine Geräteliste und einen Verlauf eingehender Verbindungen.

  • Adressbuch pro Benutzer mit Tags, auf allen deinen Geräten gleich
  • Geräteliste mit Online-Status und Verbindungsverlauf: wer sich wann und wie lange verbunden hat
  • Zwei-Faktor-Anmeldung, Passkeys und Single Sign-on über OpenID Connect
  • Weboberfläche in sechs Sprachen, tägliche Sicherungen, ein Container mit einer SQLite-Datei

Öffentliche Beta: Alles funktioniert, aber eine angemeldete App kann sich erst verbinden, wenn RustDesk die Korrektur für seinen ID-Server veröffentlicht. Mehr auf schnuecks.dev.

RDAPI-Geräteliste in der Weboberfläche RDAPI-Verbindungsverlauf


Am Rad drehen und einen zufälligen 3D-Druck entdecken. Print Roulette wählt ein Modell von MakerWorld, Printables, Cults3D oder Thingiverse und verlinkt direkt auf dessen Seite – für die Abende, an denen du etwas drucken willst, aber nicht weißt, was.

  • Glücksrad in den Farben der Plattformen: für eine zufällige Plattform drehen oder direkt auf einer würfeln
  • Vorschaubild, Titel und Ersteller, Filter für kostenlose Modelle und gegen NSFW-Inhalte
  • Keine Datenbank, keine Anmeldung, kein Tracking, sechs Sprachen, helles und dunkles Design
  • Ein kleiner Container ohne Abhängigkeiten außer der Python-Standardbibliothek

Print Roulette mit Glücksrad, Ergebnis und Verlauf Print Roulette auf dem Handy im hellen Design


Traefik-Hostnamen als lokale DNS-Einträge in Pi-hole v6. Starte einen Container mit einer Host()-Regel, und eine Minute später löst sein Name im ganzen Netz auf; entfernst du ihn, verschwindet auch der Eintrag.

  • A-, AAAA- oder CNAME-Einträge, für einen oder mehrere Pi-holes gleichzeitig
  • Sicher gebaut: löscht nur Einträge, die es selbst angelegt hat, verzögertes Löschen, Probelauf-Modus
  • Domainfilter, ruhige Logs und ein kleiner Container ohne Root-Rechte für amd64 und arm64

3D printing enthusiast and homelab tinkerer from Germany. I build small self-hosted tools for my own setup and share them when they might be useful to others too.

  • 🖨️ 3D printing on a Bambu Lab P2S and a Prusa Mini+
  • 🏠 Homelab & self-hosting: my own services at home, running in Docker
  • 🐍 Mostly Python, Rust with a bit of Shell
  • 🌐 All my projects at a glance: schnuecks.dev

I build my projects with an AI assistant by my side. It writes a good share of the code, tests and docs, but what gets built, how it behaves and what finally gets released is my decision. Every release runs on my own hardware for a while first.

Security matters more to me than any feature: if something can't be done securely, I'd rather not build it at all. That's why every project runs its test suite, a container scan (Trivy) and Dependabot on each change; the web apps are also scanned with OWASP ZAP. Before going public, each project gets a security review: findings are reproduced with a test, fixed, and the fix is checked again – you can follow it in the changelogs. Found something? Every repository has a security policy for reporting it privately.

If my projects are useful to you, you can buy me a coffee ☕ on Ko-fi

Support me on Ko-fi


A self-hosted archive for your 3D prints. PlateShelf reads sliced files from Bambu Studio, OrcaSlicer, PrusaSlicer, Cura and others and shows them as clearly as your slicer does: plates with previews, print time, filament, costs and a 3D preview of the actual toolpaths.

  • Direct import from Bambu Lab, Prusa (PrusaLink), Klipper (Moonraker) and OctoPrint printers
  • Print history with statistics, notes per print and your own photos of the result
  • User accounts with roles, passkeys, single sign-on, daily backups, six languages, light and dark theme
  • Runs as a single Docker container on a PC, NAS or Raspberry Pi

PlateShelf overview of all projects PlateShelf 3D preview of the toolpaths


Give a device a new life in Home Assistant. Nine Lives replaces a device without breaking anything: the new device takes over the entity IDs, settings and history of the old one, so automations, dashboards and the energy dashboard simply keep working – for example when moving sensors from Zigbee to Thread/Matter.

  • Entities paired by type and unit, with a preview of every change and one-click undo
  • History and long-term statistics continue, meter sums without a jump in the energy dashboard
  • References taken along: device triggers, dashboards, groups and other helpers; YAML files are only reported
  • Swaps even when the old device was already deleted in the manufacturer's app; installed via HACS

Nine Lives pairing the entities of the old and the new device Nine Lives preview with the entity IDs taken over and the rewritten references


DMARC and TLS reports in plain words. mailreports fetches the daily DMARC and SMTP TLS reports for your domains from a mailbox and explains them: who sent email in your name, whether it was genuine and what the receiving servers did with it – instead of XML and result codes.

  • Every report record explained, senders classified as your own servers, services, forwarders or unknown, with reverse DNS and network
  • DNS check for DMARC, SPF, DKIM, MTA-STS and TLS-RPT, and a recommendation when the policy can be tightened
  • Notifications via Pushover, ntfy, webhook or email, plus a weekly summary
  • Passkeys, single sign-on, six languages; one container, one SQLite file. More at schnuecks.dev

mailreports overview with the DMARC pass rate of two domains mailreports explaining a DMARC report record by record


A lean self-hosted API server for the RustDesk app. RDAPI adds what a household or a small team needs on top of your own ID and relay server: signing in to the app, an address book that follows you to every device, a device list and a history of incoming connections.

  • Address book per user with tags, synchronised between all your devices
  • Device list with online status and a connection history: who connected when and for how long
  • Two-factor sign-in, passkeys and single sign-on via OpenID Connect
  • Web interface in six languages, daily backups, one container with one SQLite file

Public beta: everything works, but a signed-in app can only connect once RustDesk releases its ID server fix. More at schnuecks.dev.

RDAPI device list in the web interface RDAPI connection history


Spin the wheel and discover a random 3D print. Print Roulette picks a model from MakerWorld, Printables, Cults3D or Thingiverse and links straight to its page, for the evenings when you want to print something but don't know what.

  • Prize wheel in the platform colours: spin for a random platform or roll on one directly
  • Preview image, title and creator, filters for free models and for hiding NSFW content
  • No database, no login, no tracking, six languages, light and dark mode
  • A small container with no dependencies beyond the Python standard library

Print Roulette with the prize wheel, a result and the history Print Roulette on a phone in light mode


Traefik hostnames as local DNS records in Pi-hole v6. Start a container with a Host() rule and its name resolves on your network a minute later; remove it and the record goes away again.

  • A, AAAA or CNAME records, for one or several Pi-holes at once
  • Safe by design: only deletes records it created itself, delayed deletion, dry-run mode
  • Domain filter, quiet logs and a small non-root container for amd64 and arm64

Popular repositories Loading

  1. plateshelf plateshelf Public

    Self-hosted archive for your 3D prints. Reads sliced files from Bambu Studio, OrcaSlicer, PrusaSlicer and Cura: plates, print time, filament, costs and a 3D toolpath preview. Imports straight from …

    Python 5

  2. rdapi rdapi Public

    Lean self-hosted API server for the RustDesk app: sign-in, address book, devices, history

    Python 2

  3. traefik-pihole-sync traefik-pihole-sync Public

    Sync hostnames from Traefik routers into Pi-hole v6 local DNS records

    Python 1

  4. virtual-klipper-printer virtual-klipper-printer Public

    Forked from mainsail-crew/virtual-klipper-printer

    Run a simulated Klipper 3D-Printer in a Docker container

    Shell

  5. print-roulette print-roulette Public

    Spin the wheel and discover a random 3D print from MakerWorld, Printables, Cults3D or Thingiverse. Tiny self-hosted web app, no dependencies, Docker ready.

    Python

  6. Schnuecks Schnuecks Public

    Profile README