Blog
Notizen aus sieben Jahren Basteln, Bauen und Betreiben: Discord-Bots, Webdienste, Server und ein Minecraft-Netzwerk. Was funktioniert hat, was kaputtgegangen ist und was ich daraus gelernt habe.
Zuletzt erschienen
Neuere Beiträge
- D
Das Wiki ist das Pflichtenheft
Bevor ich ein zentrales Plugin baue, das dutzende ersetzen soll, muss ich wissen, was das Netzwerk heute tatsächlich tut. Warum die Dokumentation vor dem Code kommt — und wie ich fast anders entschieden hätte.
- doku
- planung
- minecraft
5 Min. Lesezeit - E
Ein fremdes Statistik-Plugin forken und umlackieren
Die Spielerstatistiken meines Netzwerks liefen über ein fremdes Plugin mit eigener Weboberfläche. Jetzt läuft ein eigener Fork — mit dem Aussehen meiner Seite und einer Lösung für Bedrock-Skins.
- minecraft
- eigenbau
- daten
5 Min. Lesezeit - D
Die eigene Abwehr hat Besucher ausgesperrt
Ein Besucher konnte die Karte genau einmal öffnen, danach nie wieder. Es lag nicht an seinem Anschluss, sondern an einer Schutzregel, die zu einem Kachelserver nicht passt.
- betrieb
- sicherheit
- fehlersuche
5 Min. Lesezeit - Z
Zwei Netze, die sich nicht sehen dürfen
Ein vollständiger Klon des Netzwerks für Testzwecke, auf einer eigenen Maschine. Die fünf Stellen, an denen ein Klon sonst ins Live-System schreibt — und warum eine davon nicht offensichtlich ist.
- infrastruktur
- sicherheit
- pelican
5 Min. Lesezeit - V
Verkaufen, was der Laden längst kann
Ich hatte eine Erweiterung gebaut, um Plugins zu verkaufen. Sie lief. Dann habe ich sie verworfen — weil das Shop-System es mit Bordmitteln kann und Bordmittel Updates überleben.
- shop
- produkt
- meinung
5 Min. Lesezeit - A
Alten Plugins die Version vorlügen
Zwei Techniken für Plugins, die es nicht mehr gibt: den Versionsabruf abfangen und interne Klassennamen umschreiben. Wo die Grenzen liegen — und wann man es lieber lässt.
- minecraft
- plugin
- bytecode
5 Min. Lesezeit - T
Tracker, die still sterben
Zwei Runden Fehlersuche an Portalen, die sich nicht schließen. Im Protokoll sah alles erfolgreich aus — weil eine Methode true zurückgibt, auch wenn sie nichts tut.
- minecraft
- eigenbau
- fehlersuche
5 Min. Lesezeit - M
Meine Arbeitsregel: 100, 95, fragen
Nach einer Woche, in der ich zu viel geraten habe, habe ich eine Regel aufgeschrieben. Sie ist banal, sie ist aus Schaden gelernt, und sie hat seitdem mehr verhindert als jede Prüfliste.
- handwerk
- meinung
- persoenlich
5 Min. Lesezeit - D
Die Warteschlange stand vier Tage still
Ein Arbeiter beendet sich planmäßig nach einer Stunde — und niemand startet ihn neu. Auf einem Laden, der Geld annimmt, fällt das erst auf, wenn ein Kunde seine Bestätigung nicht bekommt.
- shop
- betrieb
- fehlersuche
5 Min. Lesezeit
Archiv
Alle weiteren 118 Beiträge, nach Jahren.
2026
32 Beiträge- BetterModel ist reines Java — Bedrock sieht nichts davon5 Min. Lesezeit
- Ein Plugin statt siebenundfünfzig — der Plan hinter DreamCore5 Min. Lesezeit
- Custom-Items ohne das Plugin dahinter5 Min. Lesezeit
- Ein Texturenpaket fürs ganze Netz — und warum es zweimal kam5 Min. Lesezeit
- Ein Laden als einzelner Dienst statt drei Container5 Min. Lesezeit
- Portale, die hochkant stehen müssen5 Min. Lesezeit
- Eine Lobby aus dem Jahr 2017 auf einem Server von 20265 Min. Lesezeit
- Ein verwaistes Plugin forken — zwei Zeilen waren die Ursache5 Min. Lesezeit
- Drei Anläufe, einen Server auf 26.2 zu heben5 Min. Lesezeit
- Dream Survival löst Adventure ab5 Min. Lesezeit
- Der Build wollte sechseinhalb Gigabyte5 Min. Lesezeit
- Alle Welten auf einer Karte5 Min. Lesezeit
- Eine Rechteverwaltung für fünf Server5 Min. Lesezeit
- Eine fremde Lizenzprüfung übernehmen, ohne das Plugin anzufassen5 Min. Lesezeit
- Nachtschicht: Sicherungen, JVM-Grenzen und ein Hilfe-Menü5 Min. Lesezeit
- Die Lizenzverwaltung war seit Wochen funktionslos5 Min. Lesezeit
- Der Schalter, der auf dem Zielserver stehen muss5 Min. Lesezeit
- CrossLink entsteht: ein eigenes Plugin für zwei Server5 Min. Lesezeit
- Eine Bedrock-Welt nach Java holen5 Min. Lesezeit
- Umzug ins Internet: Proxy, Härtung, Überwachung5 Min. Lesezeit
- Eine Datenbank statt drei, und WAL als Standard5 Min. Lesezeit
- Der Build-Schalter im Panel war seit Tagen blind5 Min. Lesezeit
- Ein Kryptominer auf dem eigenen Server5 Min. Lesezeit
- Ökosystem-Review: eine Ticket-Route ohne Wache5 Min. Lesezeit
- Ein zweites Gehirn aufsetzen5 Min. Lesezeit
- Sicherheitsaudit: fünf schwere Treffer im eigenen Code5 Min. Lesezeit
- Das Schema neu aufsetzen, wenn niemand hinsieht5 Min. Lesezeit
- Warum eine Datenbank für drei Prozesse reicht5 Min. Lesezeit
- Crossplay ist kein Schalter5 Min. Lesezeit
- Zurück zu Minecraft — diesmal auf Bedrock5 Min. Lesezeit
- Pelican statt Pterodactyl: warum ich das Panel gewechselt habe5 Min. Lesezeit
- Ein Server für alles — die Rechnung geht nicht auf5 Min. Lesezeit
2025
14 Beiträge- Jahresrückblick 2025: das Jahr der eigenen Werkzeuge5 Min. Lesezeit
- CloudZentrale: ein Panel, das nur ich benutze5 Min. Lesezeit
- Bilder ohne fremdes CDN5 Min. Lesezeit
- Der Blog zieht von MDX-Dateien in die Datenbank5 Min. Lesezeit
- Das Wiki geht online — mit einem Testeintrag namens „test“5 Min. Lesezeit
- Hörbücher auf der eigenen Seite: ein Seitenprojekt5 Min. Lesezeit
- Ein Wiki für alles, was kein Blogeintrag ist5 Min. Lesezeit
- Statistiken, die nur ich sehe5 Min. Lesezeit
- Lizenzverwaltung mit Prüfspur5 Min. Lesezeit
- Rate-Limits dürfen fail-open sein — Auth nicht5 Min. Lesezeit
- CSRF in einer Middleware, nicht in jeder Route5 Min. Lesezeit
- OAuth-Token verschlüsseln, bevor jemand danach fragt5 Min. Lesezeit
- prisma db push statt Migrationen — bewusst5 Min. Lesezeit
- Vorsätze, die man messen kann5 Min. Lesezeit
2024
14 Beiträge- Jahresrückblick 2024: das Jahr der Entkopplung5 Min. Lesezeit
- Venator: eine Idee, die liegen blieb5 Min. Lesezeit
- fail-closed als Grundhaltung5 Min. Lesezeit
- Push-Benachrichtigungen, die auch ankommen5 Min. Lesezeit
- Eine App fürs Handy: React Native und Expo5 Min. Lesezeit
- Geheimnisse gehören nicht dauerhaft in die .env5 Min. Lesezeit
- Eine öffentliche URL, und alles andere auf localhost5 Min. Lesezeit
- Drei Prozesse, eine Datenbank5 Min. Lesezeit
- Hono statt Express, und warum das mehr als Geschmack war5 Min. Lesezeit
- Die Admin-API wird eigenständig5 Min. Lesezeit
- Von Postgres nach SQLite — der unpopuläre Umzug5 Min. Lesezeit
- Vier Jahre Yurna5 Min. Lesezeit
- Ein Kapitel schreiben statt Code: der Nebel über Aeloria5 Min. Lesezeit
- Warum ich anfange, alles aufzuschreiben5 Min. Lesezeit
2023
13 Beiträge- Jahresrückblick 2023: das Jahr der Schulden5 Min. Lesezeit
- Fehler, die ich zweimal gemacht habe5 Min. Lesezeit
- MDX als Inhaltsformat: Text, der Komponenten kennt5 Min. Lesezeit
- blackzack.dev, Version eins5 Min. Lesezeit
- Überwachung, die mich nachts nicht weckt5 Min. Lesezeit
- Docker endlich verstanden — nach zwei Jahren Copy-Paste5 Min. Lesezeit
- Redis optional machen war die beste Entscheidung des Jahres5 Min. Lesezeit
- Directus kam und ging5 Min. Lesezeit
- Lizenzschlüssel selbst bauen — und was daran heikel ist5 Min. Lesezeit
- Premium: zum ersten Mal über Geld nachdenken5 Min. Lesezeit
- Ticket-System v2: Transkripte, Kategorien, Automatik5 Min. Lesezeit
- Feature-Wildwuchs aufräumen, ohne Nutzer zu vergraulen5 Min. Lesezeit
- 150 Befehle sind kein Ziel, sondern eine Warnung5 Min. Lesezeit
2022
12 Beiträge- Jahresrückblick 2022: mehr Struktur, weniger Bastelei5 Min. Lesezeit
- Logs, die man nachts um drei lesen kann5 Min. Lesezeit
- Der App Router kam für mich zu früh5 Min. Lesezeit
- Postgres für einen Bot war eine Nummer zu groß5 Min. Lesezeit
- Statistiken, die niemand liest — und die drei, die zählen5 Min. Lesezeit
- discord.js v14: was der Umstieg wirklich gekostet hat5 Min. Lesezeit
- Reaction Roles und die Tücke der Events5 Min. Lesezeit
- Economy ohne Inflation: Zahlen, die nicht explodieren5 Min. Lesezeit
- Wer Self-Hosting anbietet, schreibt Dokumentation — oder bekommt Tickets5 Min. Lesezeit
- Die Domain yurna.info und was ein Name ausmacht5 Min. Lesezeit
- Mehrsprachigkeit von Anfang an wäre billiger gewesen5 Min. Lesezeit
- Monorepo oder nicht — ich habe mich falsch entschieden und dann richtig5 Min. Lesezeit
2021
12 Beiträge- Jahresrückblick 2021: das Jahr der Oberflächen5 Min. Lesezeit
- Bewerbungen, Whitelist und Menschen, die Formulare ausfüllen5 Min. Lesezeit
- Los Santos County: ein Dashboard für eine FiveM-Community5 Min. Lesezeit
- nginx, certbot und ein Dienst, der Neustarts übersteht5 Min. Lesezeit
- Sharding verstehen, bevor man es braucht5 Min. Lesezeit
- Musikbots sterben, und ich habe meinen freiwillig abgeschaltet5 Min. Lesezeit
- Das erste Ticket-System — und warum ich es zweimal gebaut habe5 Min. Lesezeit
- Giveaways sind schwerer, als sie aussehen5 Min. Lesezeit
- Prisma statt handgeschriebener Queries5 Min. Lesezeit
- Tailwind und das Ende meiner eigenen CSS-Dateien5 Min. Lesezeit
- Das Dashboard wird echt: Next.js und Discord-OAuth5 Min. Lesezeit
- Slash-Commands: die große Umstellung5 Min. Lesezeit
2020
13 Beiträge- Jahresrückblick 2020: das Jahr, in dem Yurna entstand5 Min. Lesezeit
- Ein Dashboard wäre schön — erste Skizze5 Min. Lesezeit
- Rate-Limits verstehen, bevor Discord es einem beibringt5 Min. Lesezeit
- Warum ich Präfixe satt hatte, bevor es Slash-Commands gab5 Min. Lesezeit
- Der Bot war drei Tage offline und niemand hat es mir gesagt5 Min. Lesezeit
- Bilder im Bot erzeugen, ohne den Bot einzufrieren5 Min. Lesezeit
- XP und Level: meine erste Formel, die keiner verstand5 Min. Lesezeit
- Moderationsbefehle und die Frage, wer eigentlich was darf5 Min. Lesezeit
- Von JSON-Dateien zu einer richtigen Datenbank6 Min. Lesezeit
- Lockdown: ein Discord-Server, der plötzlich voll war5 Min. Lesezeit
- Vom if-Wald zum Command-Handler5 Min. Lesezeit
- Yurna fängt an: ein Bot, der eigentlich nur Memes posten sollte6 Min. Lesezeit
- Vom Heimrechner auf einen vServer6 Min. Lesezeit
2019
8 Beiträge- Jahresrückblick 2019: ein Jahr Basteln ohne Plan5 Min. Lesezeit
- Von Spigot zu Paper — und warum ich anfing, TPS zu messen6 Min. Lesezeit
- Meine erste eigene Webseite war eine einzige index.html5 Min. Lesezeit
- Der erste Datenverlust: eine Welt, keine Sicherung5 Min. Lesezeit
- Ich habe meinen Bot-Token auf GitHub geschoben5 Min. Lesezeit
- Mein erster Discord-Bot war 400 Zeilen in einer Datei6 Min. Lesezeit
- Warum mein Server jeden Abend abstürzte — und was RAM damit zu tun hatte7 Min. Lesezeit
- Der erste eigene Server lief auf einem PC unter meinem Schreibtisch7 Min. Lesezeit