staging.inyokaproject.org

Neueste Artikel

heute

Thunderbird steht nicht mehr nur für einen E-Mail-Client. Mit Thunderbird Pro steht ein kostenpflichtiges Zusatzangebot in den Startlöchern. Erste Nutzer haben mittlerweile einen Zugang erhalten. Dieser Artikel bietet ausführliche erste Einblicke in Thunderbird Pro.

Das ist Thunderbird Pro

Thunderbird ist vor allem für seinen kostenlosen E-Mail-Client für Windows, macOS und Linux bekannt. Seit November 2024 gibt es Thunderbird auch für Android, Thunderbird für iOS ist in Entwicklung. Doch dabei soll es nicht bleiben: Die MZLA Technologies Corporation möchte ein Ökosystem aus Clients und Diensten als Alternative zu denen der Tech-Giganten wie Google Mail und Microsoft Office 365 etablieren, welches Open Source ist.

Thunderbird Pro besteht aktuell aus drei Produkten: Thundermail ist ein eigener E-Mail-Dienst, Thunderbird Appointment ist ein Dienst zur gemeinsamen Terminfindung und Thunderbird Send ist ein Dienst zum Versenden von Dateien.

Thunderbird Pro

Kosten von Thunderbird Pro

Thunderbird Pro wird jährlich abgerechnet und kostet 72 Euro im Jahr – das entspricht sechs Euro im Monat. Zumindest für Nutzer, die jetzt eine Einladung erhalten haben, wurde direkt im Warenkorb ein Rabatt für das erste Jahr angerechnet. So wurden nur 57,60 Euro abgebucht. Wahrscheinlich handelt es sich hierbei um eine Vergünstigung speziell für die frühen Tester.

Thundermail

Thundermail unterstützt neben den traditionellen Protokollen IMAP und SMTP auch das modernere JMAP. Das Protokoll POP3 wird hingegen nicht unterstützt. Der Server-Standort ist Deutschland, mit entsprechenden Vorteilen für den Datenschutz.

Für E-Mails stehen 30 GB Speicherplatz zur Verfügung und es können bis zu 15 E-Mail-Adressen angelegt werden. Dabei handelt es sich jeweils um Alias-Adressen, es können also nicht mehrere Postfächer mit einem Account genutzt werden. Als Domain können @thundermail.com sowie @tb.pro verwendet werden. Außerdem können bis zu drei benutzerdefinierte Domains verknüpft werden.

Die Thundermail-Oberfläche zeigt den verbrauchten Speicherplatz sowie Anweisungen zur Einrichtung im E-Mail-Client der Wahl an. Eine Weboberfläche gibt es aktuell noch nicht, daran wird aber für die Zukunft gearbeitet.

Es gibt eine Einstellung zur Konfiguration des Anzeige-Namens sowie die Möglichkeit, ein App-Passwort für E-Mail-Clients ohne Thundermail-Login zu vergeben.

Thundermail

Die Einrichtung erfolgt in Thunderbird besonders einfach, da es hier eine eigene Schaltfläche zur Anmeldung mit einem Thundermail-Konto gibt. Dies trifft sowohl in Kürze auf Thunderbird für den Desktop als auch jetzt schon auf Thunderbird für Android zu. Grundsätzlich kann Thundermail aber mit jedem E-Mail-Client genutzt werden.

Thundermail-Login in Thunderbird

Thunderbird Appointment

Thunderbird Appointment bietet direkt zum Start die Möglichkeit an, einen Thundermail-Kalender, einen CalDAV-Kalender oder einen Google-Kalender zu verbinden. Danach werden grundlegende Informationen zur Verfügbarkeit abgefragt. In einem nächsten Schritt kann noch eine Verknüpfung mit der Meeting-App Zoom hergestellt werden.

Thundrbird Appointment Thundrbird Appointment Thundrbird Appointment Thundrbird Appointmentq

Danach landet der Benutzer im Dashboard, worüber alle Termin-Buchungen zu sehen sind. Auch zum Ändern der Verfügbarkeiten, bestehender Buchungen sowie zum Kopieren des Buchungslinks gibt es hier schnelle Möglichkeiten.

Thunderbird Appointment

Die Verfügbarkeiten lassen sich noch einmal detaillierter konfigurieren, inklusive einem anpassbaren Buchungslink.

Thunderbird Appointment

In den Einstellungen von Thunderbird Appointment lässt sich unter anderem einstellen, mit welchem Tag die Woche beginnt, das Farbschema sowie die Sprache. Neben Englisch wird auch schon Deutsch unterstützt.

Die Buchungslinks können von jedem genutzt werden, auch von Nutzern, die selbst kein Nutzer von Thunderbird Pro sind.

Thunderbird Appointment Thunderbird Appointment Thunderbird Appointment Thunderbird Appointment

Thunderbird Send

Thunderbird Send nutzt eine Ende-zu-Ende-Verschlüsselung, sodass niemand außer Absender und Empfänger die versendeten Dateien betrachten kann. Aus diesem Grund besteht der erste Schritt darin, einen Wiederherstellungsschlüssel zu generieren.

Thunderbird Send

Wie bei Thundermail zeigt auch Thunderbird Send im Dashboard ganz oben den belegten Speicherplatz an. Hier stehen 60 GB zur Verfügung.

Thunderbird Send

Standardmäßig werden die Dateien nach 14 Tagen gelöscht, man kann aber auch kürze oder längere Zeiträume auwählen – oder Dateien dauerhaft zur Verfügung stellen. Optional ist es außerdem möglich, den Download mit einem Passwort zu schützen.

Thunderbird Send

Der Download ist natürlich auch wieder für Nutzer möglich, die kein Thunderbird Pro verwenden.

Thunderbird Send

Wird die dazugehörige Erweiterung für Thunderbird installiert, ist es außerdem möglich, Anhänge in E-Mails direkt aus Thunderbird heraus in einen Link für Thundermail umzuwandeln.

Thunderbird Send in Thunderbird

Flächendeckende Verfügbarkeit

Aktuell muss man sich noch auf eine Warteliste setzen lassen. Thunderbird Pro soll noch in diesem Jahr für alle interessierten Nutzer geöffnet werden.

Der Beitrag Ausführliche erste Einblicke in Thunderbird Pro erschien zuerst auf soeren-hentzschel.at.

Ein Major-Update steht an. Zudem binden wir Programme aus dem Rolling-Release-Zweig ein – und nutzen Software, ohne sie überhaupt zu installieren.



Es ist eine sehr günstige Fügung, dass in die noch laufende Artikelserie auch ein Major-Upgrade von NixOS fällt. Diese Steilvorlage nehme ich natürlich direkt auf.

Wer der Reihe gefolgt ist, hat mittlerweile ein solides NixOS-Setup auf einem oder sogar mehreren Rechnern. Das System läuft stabil, die Kommunikation mit Codeberg klappt reibungslos, und die zwei Skripte update-push und pull-update erledigen die Verwaltung mit einem einzigen Befehl. Eigentlich könnte man sich entspannt zurücklehnen.

Aber manchmal nervt es dann doch, wenn ein bestimmtes Programm in der stabilen Version ziemlich hinterherhinkt. Gerade beim Browser und meiner Fotosoftware machen ein paar Versionen manchmal einen echten Unterschied. Zum Glück hat NixOS auch dafür eine elegante Antwort parat.

Und dann gibt es noch die andere Seite: Was ist, wenn ich Chrome kurz für einen Test brauche, das Programm aber eigentlich nicht auf meinem System haben möchte? Auch dafür hat NixOS etwas Feines im Köcher.

Major Upgrade: Auf NixOS 26.05 wechseln

NixOS erscheint zweimal jährlich – im Mai und im November. Das Versionsschema ist dabei denkbar einfach: Jahr.Monat. Wir kommen gerade von 25.11 und wechseln auf 26.05.

Wichtig zu verstehen: update-push und pull-update führen zwar regelmäßig nix flake update aus – aber das aktualisiert nur die Pakete innerhalb des festgelegten Kanals. Solange nixos-25.11 in der flake.nix steht, bleibt man auf 25.11 – egal wie oft man updatet. Ein Versionssprung ist eine bewusste Entscheidung und passiert nie automatisch im Hintergrund. Das ist gewollt: kein ungewolltes Major-Upgrade, kein böses Erwachen am Montagmorgen.

Der Wechsel selbst ist erfreulich unspektakulär. Zwei Zeilen in der flake.nix ändern:

inputs = {
  # Von nixos-25.11 auf nixos-26.05
  nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";

  nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";

  home-manager = {
    # Auch home-manager auf release-26.05 anheben
    url = "github:nix-community/home-manager/release-26.05";
    inputs.nixpkgs.follows = "nixpkgs";
  };
};

Danach:

update-push

Das war's. NixOS baut das System neu, GNOME, Kernel und alle stabilen Pakete kommen auf den Stand von 26.05. Läuft etwas schief, ist ein Rollback wie immer mit einem Befehl erledigt – oder durch Auswahl einer älteren Generation im Bootmenü.

Tipp: Es empfiehlt sich, ein paar Wochen nach dem offiziellen Release zu warten. In dieser Zeit werden die meisten Kinderkrankheiten gemeldet und behoben. NixOS macht das Warten aber entspannter als anderswo – dank Rollback kann man auch früh wechseln ohne wirklich etwas riskieren zu müssen.

Wichtiger Hinweis zur home.stateVersion: In der home.nix gibt es eine Zeile home.stateVersion = "25.11". Diese darf beim Versionssprung nicht geändert werden – sie beschreibt den Stand zum Zeitpunkt der Erstinstallation und dient Home Manager zur internen Kompatibilität. Das ist eine der wenigen Zeilen in NNixOS, dieman wirklich in Ruhe lassen sollte!


Pakete aus unstable einbinden

In den vorherigen Teilen haben wir nixos-26.05 als unseren stabilen Kanal eingerichtet. Stabil heißt hier: die Paketversionen sind eingefroren und ändern sich bis zum nächsten NixOS-Release nicht mehr wesentlich. Das ist sicher, aber manchmal auch etwas angestaubt.

Daneben gibt es nixos-unstable – den Rolling-Release-Zweig. "Unstable" klingt beängstigender als es ist. Alle Pakete durchlaufen auch dort die automatisierte NixOS-Testsuite (Hydra), bevor sie im Unstable-Zweig landen. In der Praxis ist nixos-unstable auf dem Desktop sehr gut verwendbar. Der Unterschied zum stabilen Kanal: die Pakete sind aktueller, manchmal tagesaktuell.

Die Idee: das Beste aus beiden Welten

Ich möchte nicht das gesamte System auf unstable umstellen – das wäre für GNOME, Kernel und Systemdienste weder nötig noch sinnvoll. Was ich möchte, ist: für ausgewählte Programme die neueste Version, für den Rest die bewährte Stabilität.

NixOS macht das möglich indem man einfach beide Kanäle gleichzeitig einbindet und dann je Paket entscheidet, welcher Kanal verwendet werden soll.

Schritt 1: flake.nix anpassen

In der flake.nix den unstable-Kanal als zweiten Input hinzufügen:

inputs = {
  # Stabiler Kanal – für System, GNOME, Kernel
  nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";

  # Unstable-Kanal – für ausgewählte Programme
  nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";

  home-manager = {
    url = "github:nix-community/home-manager/release-26.05";
    inputs.nixpkgs.follows = "nixpkgs";
  };
};

Dann müssen die unstable-Pakete dem Rest des Systems bekannt gemacht werden. Das passiert über specialArgs (für die configuration.nix) und extraSpecialArgs (für die home.nix):

outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
  system = "x86_64-linux";

  # Unstable-Pakete als eigene Variable – allowUnfree nicht vergessen
  pkgs-unstable = import nixpkgs-unstable {
    inherit system;
    config.allowUnfree = true;
  };

  common-modules = [
    ./configuration.nix
    home-manager.nixosModules.home-manager
    {
      home-manager.useGlobalPkgs        = true;
      home-manager.useUserPackages      = true;
      home-manager.backupFileExtension  = "backup";

      # pkgs-unstable an home.nix weitergeben
      home-manager.extraSpecialArgs = { inherit pkgs-unstable; };

      home-manager.users.DEIN-USERNAME = import ./home.nix;
    }
  ];
in {
  nixosConfigurations = {
    DEIN-HOSTNAME = nixpkgs.lib.nixosSystem {
      inherit system;
      # pkgs-unstable auch an configuration.nix weitergeben
      specialArgs = { inherit pkgs-unstable; };
      modules = common-modules ++ [
        ./hardware-configuration.nix
        { networking.hostName = "DEIN-HOSTNAME"; }
      ];
    };
  };
};

Schritt 2: home.nix anpassen

Die home.nix muss pkgs-unstable als Argument empfangen:

# Erste Zeile anpassen:
{ config, pkgs, pkgs-unstable, ... }:

Danach kann man je Paket wählen: stabiler Kanal oder unstable? Das Prinzip ist denkbar einfach – statt pkgs.paketname schreibt man pkgs-unstable.paketname:

home.packages = [

  # Aus stable – ändert sich selten, läuft zuverlässig
  pkgs.git
  pkgs.starship

  # Aus unstable – immer die neueste Version
  pkgs-unstable.libreoffice-fresh    # Office-Suite
  pkgs-unstable.thunderbird          # E-Mail
  pkgs-unstable.obsidian             # Notizen (unfree)

];

Hinweis: Da pkgs-unstable explizit mit allowUnfree = true initialisiert wurde, funktionieren auch proprietäre Pakete wie Obsidian ohne weitere Konfiguration – vorausgesetzt nixpkgs.config.allowUnfree = true steht ebenfalls in der configuration.nix.

Schritt 3: System neu bauen

update-push

Beim ersten Mal dauert es etwas länger – Nix lädt jetzt zwei Kanäle und baut die unstable-Pakete erstmalig. Danach ist es wie gewohnt.

Was passiert beim Update?

Hier liegt eine wichtige Nuance. Das Skript update-push führt nix flake update aus – das aktualisiert die flake.lock für beide Kanäle. Stable-Pakete bekommen ihre regulären Sicherheits-Updates, unstable-Pakete rücken auf die tagesaktuellen Versionen vor. Das Beste aus beiden Welten, genau wie versprochen.

Sonderfall: Module aus unstable beziehen

Wer meiner Reihe aufmerksam gefolgt ist, stellt jetzt vielleicht fest: Firefox steht in der home.nix gar nicht als pkgs-unstable.firefox – Firefox ist bei uns als NixOS-Modul installiert. Und Module funktionieren anders als einfache Pakete.

Ein Modul wie programs.firefox ist tief ins System integriert. Es lässt sich nicht einfach auf pkgs-unstable umbiegen, weil das Modul intern auf das stabile pkgs.firefox zeigt. Der Trick heißt Overlay – man sagt NixOS: „Wenn du firefox aus pkgs holst, nimm bitte die unstable-Version."

Das passiert in der configuration.nix:

# pkgs-unstable wird via specialArgs übergeben (siehe flake.nix)
{ config, pkgs, pkgs-unstable, ... }:

{
  # Overlay: firefox aus pkgs wird durch die unstable-Version ersetzt
  nixpkgs.overlays = [
    (final: prev: {
      firefox = pkgs-unstable.firefox;
    })
  ];

  # Das Modul selbst bleibt unverändert – es greift nun automatisch
  # auf die unstable-Version zu
  programs.firefox = {
    enable        = true;
    languagePacks = [ "de" ];
  };
}

Das Schöne daran: Das Modul programs.firefox muss überhaupt nicht angefasst werden. Es merkt durch den Overlay nicht einmal, dass es jetzt eine andere Firefox-Version verwendet – es fragt einfach nach pkgs.firefox, und der Overlay liefert still und leise die unstable-Version.

Das gleiche Prinzip funktioniert für jedes andere Modul – überall wo pkgs.paketname im Hintergrund steht, kann man durch einen Overlay die unstable-Version einschleusen.


Wegwerf-Pakete – Software ohne Installation

Nixos hat noch einen Trick auf Lager, der mich beim ersten Mal wirklich begeistert hat. Die Frage: Was tun, wenn ich ein Programm einmalig brauche, es aber nicht dauerhaft installieren möchte?

Klassische Antwort: installieren, benutzen, deinstallieren – und dabei hoffen, dass keine Spuren zurückbleiben. Genau das ist unter normalen Linux-Systemen oft mühsam, weil Deinstallation selten wirklich vollständig ist.

NixOS-Antwort: einfach gar nicht erst installieren.

nix-shell – die Wegwerf-Umgebung

Der Befehl nix-shell -p paketname öffnet eine temporäre Shell in der das gewünschte Programm verfügbar ist. Verlässt man die Shell, ist das Programm wieder weg – aus dem PATH zumindest. Der Nix-Store räumt beim nächsten Garbage-Collection-Lauf auch den Rest auf.

Das Paradebeispiel ist Chrome. Google Chrome möchte ich nicht dauerhaft auf meinem System haben – aber manchmal brauche ich ihn kurz, um etwas in einem anderen Browser zu testen oder eine Seite zu besuchen, die Firefox partout nicht mag.

NIXPKGS_ALLOW_UNFREE=1 nix-shell -p google-chrome --impure

Die Umgebungsvariable NIXPKGS_ALLOW_UNFREE=1 ist nötig weil Chrome proprietär ist. Das --impure erlaubt Nix diese Variable zu lesen. Der Download dauert beim ersten Mal einen Moment – danach öffnet sich eine neue Shell in der google-chrome als Befehl bereitsteht:

google-chrome

Browser benutzen, fertig, Shell verlassen:

exit

Chrome ist wieder weg. Kein Eintrag in der home.nix, kein Rebuild, keine Spuren.

nix run – noch kürzer

Wer nicht einmal eine Shell öffnen möchte, kann nix run verwenden:

NIXPKGS_ALLOW_UNFREE=1 nix run --impure nixpkgs#google-chrome

Ein Befehl, Programm startet, fertig. Schließt man das Fenster, ist es vorbei.

Wann ist das sinnvoll?

Das ist nicht nur ein Spielzeug für Neugierige. Es gibt handfeste Anwendungsfälle:

  • Kompatibilitätstest: Wie sieht meine Webseite in Chrome aus?
  • Einmalige Aufgabe: Ein PDF-Werkzeug für genau dieses eine Dokument.
  • Ausprobieren: Bevor man ein Paket dauerhaft in die home.nix schreibt, einfach mal schauen ob es das Richtige ist.
  • Fremder Rechner: Auf einem Rechner den man nicht administriert, kann man so Software verwenden ohne etwas zu verändern.

Für freie Software entfällt die ganze NIXPKGS_ALLOW_UNFREE-Zeremonie – Chromium zum Beispiel geht einfach so:

nix-shell -p chromium

Der Unterschied zu nix-env

Aufmerksame Leserinnen und Leser erinnern sich vielleicht, dass wir in Teil 3 kurz nix-env -iA nixos.git verwendet haben – mit dem Hinweis, dass das nicht die bevorzugte Methode ist. Der Unterschied:

  • nix-env installiert dauerhaft ins Benutzerprofil – imperativ, der Zustand landet nicht in der Konfiguration
  • nix-shell -p ist temporär – verschwindet nach dem Schließen der Shell
  • home.nix ist deklarativ – der Nix-Way für alles was dauerhaft da sein soll

Für Git in Teil 3 war nix-shell -p git die eigentlich sauberere Wahl – die temporäre Shell hat ausgereicht um den einmaligen Setup-Schritt zu erledigen.

Fazit

Vier Werkzeuge, die das NixOS-Erlebnis noch runder machen: das Major Upgrade auf 26.05 in zwei Zeilen, pkgs-unstable für Programme wo die neueste Version wirklich zählt, der Overlay-Trick für Module wie Firefox, und nix-shell für alles was man einmal braucht und dann nie wieder sehen möchte. Zusammen ergibt das ein System das sowohl aktuell als auch stabil ist – und das trotzdem keine unnötige Software ansammelt.

Artikel der NixOS-Reihe


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

gestern

Mozilla hat einen neuen Dienst in Firefox integriert, der auf bequeme Weise das Teilen mehrerer Tabs, ganzer Lesezeichen-Ordner oder Tab-Gruppen erlaubt. Für die ersten Nutzer geht es bereits mit Firefox 152 los.

Das Teilen einzelner Links mit anderen Menschen ist in der Regel kein Problem. Man kopiert die URL zum Beispiel aus der Adressleiste und schickt diesen auf dem gewünschten Weg an eine andere Person. Etwas komplizierter wird es, wenn mehrere Links involviert sind. Natürlich kann man jeden Link einzeln kopieren und weiterschicken. Aber je mehr Links es sind, desto mehr Zeit nimmt dies in Anspruch.

Ein neuer Dienst, den Mozilla in Firefox integriert hat, schafft hier Abhilfe. Sobald mehrere Tabs markiert sind, steht ein neuer Eintrag im Kontextmenü zur Verfügung. Auch Tab-Gruppen sowie Lesezeichen-Ordner erhalten eine Schaltfläche. Über diese wird ein einzelner Link generiert, der dann mit anderen geteilt werden kann. Der Link ist sieben Tage lang gültig. Danach funktioniert dieser nicht mehr.

Mehrere Links teilen in Firefox 152 Mehrere Links teilen in Firefox 152 Mehrere Links teilen in Firefox 152

Nutzer, welche den geteilten Link aufrufen, sehen eine Übersichtsseite mit allen geteilten Websites. Diese können darüber dann aufgerufen werden. Selbstverständlich funktioniert dies auch für Nutzer, die keinen Firefox verwenden.

Mehrere Links teilen in Firefox 152

Mozilla beginnt mit der Ausrollung dieses neuen Features bereits mit Firefox 152, der nach aktueller Planung am 16. Juni 2026 erscheinen wird – dann allerdings erst für zwei Prozent der Nutzer, die Firefox in amerikanischem Englisch nutzen.

Der Beitrag Firefox bekommt Dienst zum Teilen von Links erschien zuerst auf soeren-hentzschel.at.

MMO-20044 geht in den regulären Betrieb.

Die Testphase ist abgeschlossen, der Produktionsserver läuft

Was gespielt wird: ein browserbasiertes Space-MMO. Rohstoffe abbauen, forschen, reisen, handeln, andere Spieler angreifen. Das Ziel ist der Genesis-Planet: wer ihn auf Level 5 bringt, startet einen 48-Stunden-Countdown. Läuft der durch, ist die Season vorbei und der Spieler gewinnt.

Technik: Python/FastAPI, PostgreSQL, HTMX. Kein JavaScript-Framework, kein Build-Step. Alles läuft serverseitig.

Registrierung ist offen unter zockertown.de/mmo-20044 . Spielstände aus der Testphase wurden nicht übernommen, alle starten neu.

Ein fetter Dank geht an die Spieler der Betaphase, die Fehler gemeldet und Verbesserungen vorgeschlagen haben. Das hat den Start besser gemacht, als er ohne dieses Feedback geworden wäre.

Was "20044" bedeutet: demnächst. 

2. Juni 2026

Mozilla hat mit Firefox 151.0.3 sein wöchentliches Korrektur-Update veröffentlicht. Dieser Artikel beschreibt die Änderungen des neuesten Updates.

Download Mozilla Firefox 151.0.3

Firefox 151.0.3 korrigiert das seit dem letzten Update deutlich zu große VPN-Symbol in der Navigationssymbolleiste.

Die Anpassungen der chinesischen Distribution von Firefox werden ab sofort ignoriert, nachdem Mozilla seine chinesische Tochtergesellschaft „Beijing Mozilla Online Ltd.” bereits Ende des vergangenen Jahres abgewickelt hatte.

Eine mögliche Absturzursache unter Linux wurde behoben, ebenso wie ein Webkompatibilitätsproblem sowie zwei Sicherheitslücken.

Der Beitrag Mozilla veröffentlicht Sicherheits-Update Firefox 151.0.3 erschien zuerst auf soeren-hentzschel.at.

1. Juni 2026

Die MZLA Technologies Corporation hat mit Thunderbird 19 ein Update für die Android-Version seines E-Mail-Clients veröffentlicht.

Download Thunderbird für Android

Mit Thunderbird 19 für Android ist es möglich, die verfügbaren Aktionen in den Benachrichtigungen zu konfigurieren. Dies schließt die Anzahl der möglichen Aktionen (keine bis zu drei), die Art der Aktionen sowie die Reihenfolge ein. Thunderbird wurde außerdem für die Einrichtung von Thundermail vorbereitet, dem kommenden E-Mail-Dienst der Thunderbird-Entwickler. Die Schriftgröße in den E-Mails passt sich darüber hinaus jetzt der eingestellten Schriftgröße des Gerätes an. Ansonsten bringt auch Thunderbird 19 wieder eine Reihe von Fehlerkorrekturen und Detail-Verbesserungen unter der Haube.

Der Beitrag Thunderbird 19 für Android veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Die Beta von MMO-20044 läuft seit ein paar Wochen, und es hat funktioniert: ein paar Spieler haben das Spiel gefunden, Feedback gegeben und Bugs aufgedeckt. Am Donnerstag, 04.06., geht die Beta zu Ende.

Direkt danach startet Season 1. Das bedeutet einen vollständigen Reset: alle Spieler, Planeten und Fortschritte werden gelöscht. Die Galaxie selbst bleibt erhalten.

Was Season 1 bringt

Das Spielziel ist jetzt klar definiert: wer als erstes den Genesis-Planeten auf Level 5 bringt, löst einen 48-Stunden-Countdown aus. Danach endet die Season. Der Sieger bekommt eine Trophäe, die dauerhaft im Profil sichtbar bleibt.

Dazu gibt es eine Rangliste, die sich an der Spielerzahl orientiert. Bei wenigen Spielern werden die besten drei angezeigt, bei mehr entsprechend mehr. Wer nicht in der Spitzengruppe steckt, sieht seine eigene Position mit den direkten Nachbarn.

Mitspielen

Das Spiel läuft unter zockertown.de/mmo. Registrierung ist offen, kein Account nötig außer einem Spielernamen und Passwort. Wer die Beta mitgemacht hat, muss sich neu registrieren.

MMO-20044 ist ein Browser-Spiel ohne Client, ohne App, ohne Push-Benachrichtigungen. Kein Tracking, keine Werbung, keine externen Ressourcen. Einloggen, schauen was passiert ist, Entscheidungen treffen, wieder ausloggen. Mehr ist es nicht, und das ist der Punkt.

Getreu dem Motto „Nutze Gutes und schreibe darüber“ stelle ich im heutigen Beitrag die Open-Source-Projekte lab-toolbox, kcli und kcli-toolbox vor.

Lab-toolbox

Die lab-toolbox ist ein Projekt von meinem TAM-Kollegen Chris Huang. Es handelt sich dabei um ein Python-Skript, welches die Erstellung von virtuellen Maschinen (VM) mit Red Hat Enterprise Linux (RHEL) unter KVM/QUEMU vereinfacht und beschleunigt.

Hinter der Idee zu diesem Projekt steckt dieser Anwendungsfall:

Als Plattform-TAMs müssen wir regelmäßig Dinge unter verschiedenen RHEL-Versionen testen. Häufig muss hierzu eine frische VM auf unserem Laptop herhalten, die nach dem Test auch direkt wieder entsorgt werden kann. Dies kann nun bspw. mit dem folgenden Kommando erledigt werden:

./create_vm.py --rhel 10 --hostname rhel10-1 --memory 4096 --vcpus 2

Mit diesem einen Befehl werden folgende Aufgaben ausgeführt:

  1. Es wird das aktuelle RHEL 10 Image auf der lokalen Festplatte genutzt, um eine RHEL 10 VM mit 4 GB RAM und 2 vCPU zu erstellen
  2. Das Skript fragt nach einem Passwort für den Konsolen-Login oder bietet an, sich ausschließlich per SSH einzuloggen
  3. Es generiert automatisch die Konfiguration für cloud-init, um:
    • den aktuellen Benutzer innerhalb der neuen VM zu erstellen
    • den SSH-Public-Key des Benutzers hinzuzufügen (automatisch oder per Option)

Ist die VM erstellt, können wir uns direkt mit unserem Benutzer und dessen SSH-Schlüssel einloggen.

Es gibt im Internet viele Wrapper-Skripte, welche die Einrichtung von lokalen VMs vereinfachen sollen. Mir gefällt an diesem besonders, dass es einen meiner häufigsten Anwendungsfälle auf den Punkt bedient. Dazu gibt es ein ausführliches README.md mit einer ausführlichen Dokumentation und einigen Beispielen.

Danke Chris, dass du dieses tolle Projekt mit uns teilst.

Kcli

Wenn es ein bischen mehr sein darf und z.B. folgende Funktionen gewünscht sind:

  • Deplyoment von Cloud-Images bei verschiedenen Providern (z.B. libvirt, KubeVirt, oVirt, OpenStack, VMware vSphere, AWS, Azure, GCP, IBM cloud and Hcloud) mit einem einzigen Werkzeug
  • Profile, um VMs mit der gleichen Hardware-Charakteristik zu starten
  • Komplette Labor-Umgebungen in YAML deklarieren und ausrollen
  • Große Auswahl an Cloud-Images verschiedener Linux-Distributionen
  • Einfache Verteilung und Integration von SSH-Schlüsseln
  • Automatische Registrierung von RHEL-VMs

Dann ist das Projekt kcli von meinem Kollegen Karim Boumedhel und vielen weiteren Beitragenden vielleicht etwas für euch. Wenn ihr jetzt neugierig geworden seid, werft für weitere Informationen einen Blick in die Dokumentation.

Als TAM und Sysadmin möchte ich auch komplexe Systeme testen, welche häufig aus mehreren VMs bestehen. Da mein Laptop hier schnell an seine Grenzen stößt, möchte ich diese Laborumgebungen auch bei anderen Anbietern bereitstellen können. Hierfür scheint mir dieses Projekt gut geeignet zu sein.

Kcli-toolbox

Dies ist der 0,5-Anteil der Vorstellungen in diesem Artikel. Damit ist nicht gemeint, dass es erst zur Hälfte fertig ist. Es ist vielmehr kein richtiges Projekt, sondern lediglich ein Containerfile und ein Custom-Toolbox-Build.

Toolbx ist ein Werkzeug für Linux, welches ein CLI für Softwareentwicklung und Troubleshooting bereitstellt, ohne dass ihr dafür alle notwendigen Werkzeuge auf eurem Host-System installieren müsst. Eine Toolbox basiert auf einem OCI-Container-Image. Es gibt sie in verschiedenen Geschmacksrichtungen. Bitte schaut für weitere Informationen in die Dokumentation.

Bei kcli-toolbox handelt es sich um ein Toolbox-Container-Image, bei dem kcli schon vorinstalliert ist. Das Image wird jeden Dienstag um 03:42 Uhr Ortszeit neu gebaut, um es auf einem aktuellen Stand zu halten.

Mir enthält der Abschnitt „Container Install“ der kcli-Dokumentation zu viele Optionen und aliases, die ich mir nicht merken möchte. Die Builds für EPEL-9 schlagen seit einiger Zeit fehl, so dass ich unter RHEL 9 nicht die letzte Version als RPM nutzen kann. Daher kam mir die Idee zu kcli-toolbox. Ich habe hiermit die aktuellste Version für Fedora 44 und kann diese so natürlich nutzen, als wäre sie als RPM-Paket installiert.

Probiert es doch gerne selbst einmal aus. Hinweise dazu findet ihr in der README.md.

31. Mai 2026

Als Black Swan bezeichnet man Ereignisse, die erst unvorstellbar erscheinen, dann die Welt verändern und im Nachhinein unvermeidlich wirken: Man hätte es doch wissen müssen.

LLMs in der Softwareentwicklung fühlen sich wie so ein Ereignis an, wenn man sich die Geschwindigkeit und Breite der Adaption und ihre Auswirkungen anschaut. Die Erwartung war: Robotik übernimmt erst körperlich schwerere Aufgaben, Automatisierung übernimmt dann die mühsamen, repetitiven Aufgaben und irgendwann wird Programmierung durch No-Code-Werkzeuge verborgen. Was stattdessen passiert, ist das Gegenteil von No-Code: eine Maschine, die unendlich viel Code ausspuckt und den Programmierer als quasi „den“ White-Collar-Beruf imitiert. Aus No-Code wird More-Code. Dadurch wird ausgerechnet zuerst der Programmierer zur Zielscheibe: Die teuren Positionen geraten unter Druck - und das auch noch zuerst.

Anders gefordert

Wer mit diesen Tools arbeitet, merkt schnell: Man kommt schneller zu Ergebnissen. Auch bei komplexen Anfragen, auch auf bestehenden Codebases.

Die kognitive Arbeit verschiebt sich dabei, sie verschwindet nicht. Früher hat man während des Schreibens ein mentales Modell aufgebaut und die Lösung entstand beim Denken in Code.

Heute bekommt man Code, den etwas anderes gedacht hat. Man muss dieses fremde Modell verstehen, beurteilen und einordnen. Das fordert nicht weniger, nur anders.

Vicki Boykis beschreibt es gut: es wird immer wichtiger, „in Form“ zu bleiben. Datenstrukturen, Pattern, Basics, weil das Urteilsvermögen über Code wichtiger wird als das Schreiben von Code. Wer die Grundlagen versteht, kann bewerten, und wer nur prompten kann, navigiert blind.

Beschleunigung in alle Richtungen

Die zweite Auswirkung ist einfacher zu beschreiben: Mehr. Von allem.

Das gilt nicht nur für die produktive Seite: Softwareprojekte werden zunehmend von KI-generierten Security-Reports und Exploits überschwemmt, weil – Überraschung – LLMs sich auch für die Schwachstellensuche einsetzen lassen. Kombiniert man das noch mit einem finanziellen Anreiz, entstehen Auswüchse, die jetzt wieder mühselig eingefangen werden müssen.

Das ist kein Randphänomen, Daniel Stenberg beschreibt es ganz gut. Zusammen mit den beobachteten Lieferkettenangriffen sind die AI Reports vermutlich eines der dominantesten Themen der IT-Sicherheit und des Open-Source-Ökosystems dieses Jahr. Die Beschleunigung trifft nicht nur die produktive und konstruktive Seite.

Wer LLMs als Werkzeug demokratisiert, demokratisiert auch Angriffsfähigkeit. Das ist keine Nebenwirkung. Das ist dasselbe Werkzeug, dasselbe Tempo. Die Last tragen die sowieso schon wenigen Maintainer, Entwickler und Admins, die das verarbeiten müssen.

Die Messlatte steigt

Entwickler waren teuer. Nicht aus Willkür, sondern weil die Arbeit schwer und das Angebot knapp ist. Die naive Annahme wäre: Wenn das Werkzeug die Arbeit erleichtert, sinkt der Druck. Das Gegenteil passiert.

Coding-Agents senken nicht die Schwierigkeit der Kernarbeit. Verstehen, beurteilen, verantworten – das bleibt schwer. Was sie verschieben, ist die Erwartung. Du hast doch jetzt die Werkzeuge. Die Benchmark ist nicht mehr der gute Entwickler, sondern der gute Entwickler mit Agenten. Also muss jeder für mehr getane Arbeit geradestehen. Gleiche kognitive Last, höheres Volumen obendrauf. Das ist kein neues Muster: Werkzeuge entlasten selten, sie heben die Norm.

Und genau deshalb heizt es sich an. Die Arbeit verdichtet sich auf weniger Schultern. Hiervon kann man fast schon täglich an vielen Stellen lesen, auch wenn KI dabei eher als Korrelation denn als Kausalität erscheint. Trotzdem setzt sich eine Erzählung fest: Jetzt gebe es KI und wer was reißen wolle, müsse jetzt mehr umsetzen. Näher ans Produkt, näher an den Kunden, näher an die Verantwortung.

Und teuer bleibt es ohnehin. Die Ersparnis, die man sich von den Werkzeugen versprach, taucht als neue Rechnung wieder auf: Was an Stellen wegfällt, fließt ins Token-Budget. „Tokenmaxxing“ nennt man das. Nur schrumpft diese Stelle nicht, sie wächst – weil billiger pro Anfrage eben nicht weniger Anfragen heißt, sondern mehr. Das Unternehmen spart nicht, es zahlt woanders, und meist mehr. Der Druck, der dabei entsteht, landet wieder bei denen, die noch da sind.

Was bleibt: die eigentliche Arbeit

Die eigentliche Frage ist nicht, was Maschinen übernehmen. Die Frage ist, was danach noch zählt. Bei Open Source zum Beispiel kann es nicht mehr nur die Verfügbarkeit von Funktionalität oder Alternativen zu proprietären Lösungen sein. Code generieren kann man sich selber. Was bleibt, ist das Projekt als kuriertes Ganzes: konsistentes Design, wenig Bugs, eine klare Vision, Vertrauen in die Maintainer. Das sind Gründe, warum man zu einem Projekt greift.

Und das gilt auch für den Beruf selbst. Die Essenz der Informatik war nie das Tippen. Sie war die Transformation: Ein Problem verstehen, eine Lösung entwerfen, die Umsetzung verantworten. Requirements Engineering und Implementierung sind zwei Seiten davon. Anforderungsanalyse erzeugt den erwarteten Zielzustand, der implementiert werden soll: aus Widersprüchen, impliziten Erwartungen und organisatorischen Realitäten. Das ist schwer zu formalisieren.

Wer erkennt die Anforderungen? Wer definiert das Problem, bevor es gelöst werden kann? Wer prüft, ob die Lösung das richtige Problem löst?

Das wird weiterhin Menschen brauchen. Doch sie werden viel mehr umsetzen müssen, daher stellt sich die Frage: Zu welchem Preis? Den werden wir in den nächsten Monaten sehen.

Heute habe ich in einem meiner Repositorys zwei aufeinanderfolgende Commits gefunden, welche die gleiche Commit-Nachricht hatten. Einer der Commits war leer, während mit dem anderen Änderungen durchgeführt wurden.

Wie es zu dem leeren Commit kam, kann ich nicht sagen, da beide Commits 2020 erstellt wurden. Ich kann lediglich sagen, dass ich damals als Versionsverwaltung Mercurial verwendet hatte.

Ich habe mir nun überlegt wie man unter Jujutsu allgemein leere Commits finden kann. Und diese dann bei Bedarf zu entfernen. Die Lösung war dank Revsets eigentlich recht einfach.

jj log -r '(empty() ~ merges() ~ root() ~ @)'

Hiermit werden alle Commits angezeigt, die folgende Eigenschaften haben.

  • Sie sind leer (abgesehen von der Commit-Nachricht).
  • Es handelt sich nicht um Merge-Commits.
  • Es handelt sich nicht um den Root-Commit.
  • Es handelt sich nicht um die Arbeitskopie.

Um alle gefundenen Commits zu entfernen, kann man folgenden Befehl verwenden.

jj abandon '(empty() ~ merges() ~ root() ~ @)'

Wenn nur ein bestimmter leerer Commit und nicht alle gelöscht werden sollen, kann man jj abandon -r $Change-ID ausführen. Anstelle von $Change-ID trägt man die Change-ID des betreffenden Commits ein.

Die Chancen stehen allerdings ziemlich gut, dass es “immutable Commits” betrifft, bei denen eine Änderung gesperrt ist. Will man diese Commits trotzdem ändern, muss man den Befehl um den Parameter --ignore-immutable erweitern. Da hierbei die gesamte folgende Historie geändert wird, sollte man sich aber daher die Nutzung von --ignore-immutable gut überlegen.

Mozilla hat Version 2.37 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Neben der Entfernung von Telemetrie in allen Clients bringt die neue Version vor allem für Apple-Nutzer einige Neuerungen.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.37

Mit dem Mozilla VPN 2.37 hat Mozilla Telemetrie aus seinen VPN-Clients weitestgehend entfernt. Übrig geblieben ist lediglich eine Diagnostik für Programmabstürze, wofür die bisherige Option weiterhin bestehen bleibt.

Auf iOS kann das Mozilla VPN jetzt via Siri aktiviert und deaktiviert werden. Außerdem kann das Ein- und Ausschalten über die Shortcuts-App von iOS automatisiert werden.

Außerdem auf iOS möglich ist es nun, einen Schalter zum Kontrollzentrum oder dem Sperrbildschirm hinzuzufügen. Auf den neuesten iPhones ist es möglich, das Mozilla VPN als Funktion der Aktionsschaltfläche zu wählen.

Auf macOS werden jetzt auch Nur-IPv6-Netzwerke unterstützt.

Unter Linux mit Gnome und Wayland wurde ein Problem mit den Fensterdekorationen behoben. Ebenso unter Linux behoben wurden Probleme, die in Nur-IPV6-Netzwerken während der Verwendung von Multi-Hop auftreten konnten.

Ansonsten bringt das Update auch wieder Fehlerbehebungen und Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.37 entfernt Telemetrie und bringt viele Neuerungen für Apple-Nutzer erschien zuerst auf soeren-hentzschel.at.

30. Mai 2026

Ich spiele selbst mit. Das wissen die meisten, die schon im globalen Chat unterwegs waren. Der Vorteil: ich merke recht schnell, wenn etwas nicht stimmt. Der Nachteil:
manchmal liegt der Entwickler in mir mit dem Spieler in mir im Clinch.

Aber zur Sache. Die Beta neigt sich dem Ende. In den nächsten Tagen kommt ein Reset, alle Spielstände werden zurückgesetzt, die Tester-Accounts fallen weg.

Wer bisher dabei war:

Danke. Es war ein holpriger Start mit einigen Bugs, aber das Feedback hat geholfen und einiges davon ist schon eingeflossen.

Die Abstimmung zum Spielziel habe ich ausgewertet. Das Saison-Modell hat gewonnen: ein klarer Zeitrahmen, ein klares Ziel, dann Reset und neue Runde.

Wie lang eine Saison geht und was den Sieger auszeichnet, dazu kommt noch ein separater Beitrag.

Bis zum Reset kommen noch ein paar Änderungen ins Spiel. Ich verrate noch nicht alles, aber: Planeten bekommen mehr Gewicht, nicht nur für die Produktion. Wer mehr davon hält, kommt auch in der Forschung weiter. Und eine der Rassen bekommt eine neue Technologie, die defensiv ausgerichtet ist. Welche das ist, findet sich im Spiel.

Für die erste Saison ist außerdem ein Abstimmungssystem geplant, direkt im Dashboard. Ich hatte bisher den globalen Chat dafür verwendet, was funktioniert hat, aber umständlicher war als es sein müsste.

Rückmeldungen wie immer: per Chat im Spiel, über das Feedback-Formular oder als Kommentar hier.

 

29. Mai 2026

Weitere Benutzer werden anlegt – am Beispiel eines Gastnutzers und einer neuen regulären Benutzerin. Nebeneffekt des heutigen Setups: Heute wird nochmal ganz klar, welche "Nixe" für was zuständig ist.



Nochmal kurz in Erinnerung gerufen: NixOS trennt sauber zwischen zwei Ebenen:

Ebene Wer verwaltet
System (configuration.nix, flake.nix) Admin (sudo)
Benutzerumgebung (home.nix) Benutzer selbst

Diese Trennung ermöglicht zwei sehr unterschiedliche Szenarien:
Einen Gastnutzer ohne Passwort dessen Umgebung der Admin vollständig
kontrolliert, und eine eigenständige Benutzerin die ihre Konfiguration
selbst verwaltet.

Im Beispiel habe ich die zusätzliche Nutzerin "Anna" getauft.

Anna Gast
Eigene Programme installieren und updaten ✅ selbst ❌ nur Admin
Desktop-Einstellungen ändern

Der Unterschied zwischen den zwei Szenarien

Anna (Standalone): Anna hat ihren eigenen unabhängigen Home Manager der nichts mit der flake.nix zu tun hat. Sie führt home-manager switch selbst aus.

Für Anna braucht NixOS nur zwei Dinge zu wissen:

  1. Dass der Benutzer anna existiert → configuration.nix
  2. Welches Passwort sie hat → sudo passwd anna

Alles andere – ihre Programme, ihr Theme, ihre Shell – ist Annas Privatangelegenheit und wird von ihr selbst über home-manager switch geregelt.

Gastnutzer (als NixOS-Modul): Hier definierst du, neben der configuration.nix, in der flake.nix, wie du mit Gästen umgehen möchtest. Du sagt NixOS: „Verwalte die Benutzerumgebung von gast mit dieser Datei (home-gast.nix)." NixOS baut die Gast-Umgebung beim nixos-rebuild dann automatisch ein.

Konfigurationsdateien zum Download

Wer das so umsetzen möchte, kann sich eine home-gast.nix, die home-anna.nix und einen Vorschlag für eine Nutzeranleitung HIER herunterladen.

Szenario A: Gastnutzer anlegen

Der Gastnutzer betritt das System ohne Passwort und bekommt eine feste
Ausstattung (Firefox, Thunderbird, LibreOffice) die nur der Admin ändern kann.

Schritt 1: Gastnutzer in configuration.nix anlegen

# In configuration.nix
users.users.gast = {
  isNormalUser = true;
  description  = "Gast";
  extraGroups  = [];        # Keine Berechtigungen – kein sudo!
  password     = "";        # Kein Passwort
};

# Leere Passwörter beim Login erlauben
security.pam.services.gdm-password.allowNullPasswords = true;
security.pam.services.login.allowNullPasswords = true;

Schritt 2: home-gast.nix erstellen

Einen Vorschlag für den Inhalt habe ich dir in einer home-gast.nix für den Download vorbereitet.
Du als Admin legst die Konfiguration des Gastnutzers nach deinen Vorstellungen an, editiere also ruhig meinen Vorschlag:

sudo nano /etc/nixos/home-gast.nix

Schritt 3: flake.nix um den Gastnutzer erweitern

Wenn ein Gastzugang auf allen Rechnern eingerichtet wird, dann geht das ungemein elegant durchg Ergänzen descommon-modules-Block in der flake.nix:

{
  home-manager.useGlobalPkgs = true;
  home-manager.useUserPackages = true;
  home-manager.backupFileExtension = "backup";
  home-manager.users.DEIN-USERNAME = import ./home.nix;
  home-manager.users.gast          = import ./home-gast.nix;  # ← neu
}

Soll nur der Heimrechner (im Beispiel ist der Hostname nixos) mit einem Gastzugang ausgestattet werden, dann statt des obigen Eintrags nur den rechnerspezifischen Block ergänzen:

# Nur auf dem Heimrechner "nixos"
  nixos = nixpkgs.lib.nixosSystem {
    modules = common-modules ++ [
      ./nixos.nix
      ./hardware-configuration.nix
      { home-manager.users.gast = import ./home-gast.nix; } # ← nur hier
    ];
};

Schritt 4: Dateirechte setzen

Der Gastnutzer bekommt keine Schreibrechte auf seine Konfigurationsdatei –
nur der Admin darf sie ändern:

# home-gast.nix gehört root, kein Schreibrecht für andere
sudo chmod 644 /etc/nixos/home-gast.nix
sudo chown root:root /etc/nixos/home-gast.nix

Schritt 5: Rebuild und sichern

cd /etc/nixos
sudo git add home-gast.nix
update-push

Nach dem Rebuild erscheint gast im (GDM-)Anmeldebildschirm – ohne Passwortfeld,
einfach anklicken und einloggen.

Szenario B: Eigenständige Benutzerin Anna anlegen

Anna bekommt einen vollwertigen Account und verwaltet ihre Konfiguration
komplett selbst – ohne den Admin zu benötigen.

Schritt 1: Anna in configuration.nix anlegen

users.users.anna = {
  isNormalUser = true;
  description  = "Anna";
  extraGroups  = [ "networkmanager" ];  # Kein "wheel" → kein sudo!
};

Kein wheel in extraGroups – Anna bekommt kein sudo und kann damit
weder nixos-rebuild noch Systemdateien ändern.

Schritt 2: Rebuild damit der Account existiert

update-push

Schritt 3: Passwort für Anna setzen

sudo passwd anna

Schritt 4: Initiale home-anna.nix vorbereiten

Wie eine home-anna.nix aussehen kann, habe ich ebenfalls als Download vorbereitet.

Du als Admin legst Annas initiale Konfiguration in ihrem Home-Verzeichnis ab:

sudo mkdir -p /home/anna/.config/home-manager
sudo cp /etc/nixos/home-anna.nix /home/anna/.config/home-manager/home.nix
sudo chown -R anna:users /home/anna/.config/home-manager

Anna bekommt damit eine fertige Startumgebung – alle auskommentierten
Programme kann sie nach Belieben selbst aktivieren.

Schritt 5: Anna richtet ihren eigenen Home Manager ein

Dir als Administrator empfehle ich, dass du dich einmal selbst als Anna anmeldest und die Umgebung im Terminal einrichtest - das würde sie selbst überfordern:

# Als anna – kein sudo!
nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
nix-channel --update
nix-shell '' -A install

Damit Anna weiß, wie sie sich in NixOS zurechtfindet, habe ich ihr eine kleine Anleitung erstellt.

Die Kurzfassung für Anna:

# Programme hinzufügen: home.nix editieren, dann:
home-manager switch

Zusammenfassung: Welcher Weg für wen?

Szenario Ansatz Konfiguration liegt in
Gastnutzer Admin verwaltet alles /etc/nixos/home-gast.nix
Eigenständige Benutzerin User verwaltet selbst ~/.config/home-manager/home.nix
also nicht in /etc/nixos
Admin (Du) Home, Konfiguration, Flakes /etc/nixos/home.nix /etc/nixos/configuration.nix /etc/nixos/flake.nix

Alle drei Szenarien laufen friedlich nebeneinander – jeder Benutzer auf seiner eigenen Ebene.

Artikel der NixOS-Reihe


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

28. Mai 2026

Vor einigen Wochen hatte ich eine Idee: ein textbasiertes Browser-Space-MMO, angelehnt an ein Konzept, das ich 2004 mal skizziert hatte. Dass es in 22 Entwicklungssessions live gehen und eine aktive Community anziehen würde, hatte ich nicht erwartet. Dieser Artikel beschreibt, wie das möglich war.

Der ehrliche Spoiler: Ich hatte Hilfe

MMO-20044 wurde nicht allein von mir programmiert. Mein Entwicklungspartner heißt Claude, ein KI-Assistent von Anthropic. Aber "KI hat den Code geschrieben" trifft es nicht richtig. Die Realität ist differenzierter und, wie ich finde, interessanter.

Superpowers: Der Workflow macht den Unterschied

Das Entscheidende liegt nicht im KI-Modell selbst, sondern in einem Workflow-Framework namens Superpowers, einem strukturierten System für KI-gestützte Softwareentwicklung. Der Ablauf für jedes Feature sieht so aus:

  1. Brainstorming: Ich beschreibe die Idee, die KI stellt gezielte Fragen, wir erarbeiten gemeinsam ein Design
  2. Spec schreiben: Ein vollständiges Designdokument wird erstellt und von mir genehmigt
  3. Implementierungsplan: Jede Aufgabe wird in kleine, testbare Schritte aufgeteilt
  4. Subagent-Driven Development: Für jede Aufgabe wird ein frischer KI-Subagent beauftragt, der TDD (Test-Driven Development) folgt
  5. Zwei Review-Stufen: Erst prüft ein Spec-Reviewer, ob die Anforderungen erfüllt sind, dann ein Code-Quality-Reviewer, ob der Code sauber ist

Das klingt aufwändiger als "schreib mir eine Funktion", und das ist es auch. Aber genau das macht den Unterschied zwischen Code-Snippets und einem echten Produkt.

Was ich beigetragen habe

Meine Rolle war die des Produktmanagers und Spieldesigners. Ich habe entschieden:

  • Welche Features gebaut werden (und welche nicht, YAGNI ist ein echtes Prinzip)
  • Wie das Spielgefühl sein soll: Ticks als Währung, prozedurales Universum, taktischer Kampf
  • Wann etwas gut genug ist und wann es noch überarbeitet werden muss
  • Wie auf Community-Feedback reagiert wird

Kein einziger Implementierungsvorschlag wurde blind übernommen. Jede Spec habe ich gelesen und freigegeben, jedes Feature im Browser getestet.

22 Sessions, 311 Tests, eine lebendige Community

Das Ergebnis nach 22 Entwicklungssessions:

  • Tick-Engine, prozedurales Universum, 8 Rassen mit eigenem Forschungsbaum
  • Kampfsystem mit Narrativ, Spionage, NPC-Handelsrasse
  • Planetenproduktion, Reisen, Besiedeln, Action-Queue
  • Auth, Admin-CLI, Feedback-System, Rangliste
  • Chat-System (Global + Direktnachrichten) mit Bad-Word-Filter und Ungelesen-Indikator
  • 311 automatisierte Tests, kein manuelles Klicken um Regressionen zu finden

Was mich am meisten überrascht hat: Die Community ist aktiv. Spieler melden Exploits (1-Tick-Angriffe wurden am ersten Tag gefunden und gefixt), wünschen sich Features (parallele Forschungsslots kamen auf Feedback) und diskutieren im integrierten Chat über das Spielziel.

Was ich gelernt habe

KI-gestützte Entwicklung ist kein Autopilot. Der strukturierte Workflow, Spec vor Code, Tests vor Implementierung, Review nach jeder Aufgabe, ist nicht optional, sondern der Kern des Ansatzes. Ohne diesen Rahmen entstehen schnell technische Schulden, die jede Geschwindigkeit wieder auffressen.

Die Ideen kommen vom Menschen. Die KI kann keine gute Spielmechanik erfinden, die ich nicht zuvor als Anforderung formuliert habe. Was sie kann: diese Ideen zuverlässig, schnell und mit hoher Codequalität umsetzen.

Das Spiel ist kostenlos und werbefrei spielbar. Wer neugierig ist: zockertown.de/mmo/

Update: Forschung, Kampf und Reisen verbessert

Das Feedback der ersten Tage hat direkt zu mehreren Verbesserungen geführt — das ist genau der Grund, warum ein offener Beta-Test so wertvoll ist.

Forschung: schneller und paralleler

Auf Wunsch mehrerer Spieler wurde die Forschungsdauer von 6 auf 3 Stunden halbiert. Zusätzlich gibt es jetzt zwei parallele Forschungsslots — ihr könnt also gleichzeitig zwei Technologien erforschen oder upgraden. Die Forschungsseite zeigt euch, wie viele Slots gerade belegt sind.

Exploit-Fix: 1-Tick-Angriffe

Ein cleverer Spieler hat entdeckt, dass man mit massenhaften 1-Tick-Angriffen anderen Spielern künstlich Siege bescheren konnte — und damit die Rangliste manipulierte. Das ist jetzt behoben: Ein Angriff kostet mindestens 50 Ticks, und auf denselben Spieler kann man nur einmal pro Stunde angreifen. Danke für den Hinweis!

Reisedauer sichtbar

Ebenfalls auf Feedback-Basis: Auf der Reiseseite steht jetzt neben den Tick-Kosten auch die Reisedauer in Stunden und Minuten — inklusive Bonus durch Antriebstechnologien.

Weiter so — jeder Hinweis hilft, das Spiel besser zu machen.

Bitte sagt auch eure Meinung zum Spielziel, bin gespannt

 

27. Mai 2026

Die MZLA Technologies Corporation hat mit Thunderbird 151.0.1 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 151.0.1

Mit Thunderbird 151.0.1 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht und behebt damit ein Problem beim Weiterleiten von Exchange-Nachrichten.

Der Beitrag Thunderbird 151.0.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Seit einigen Tagen läuft MMO-20044 in der Beta – und eine kleine, aber aktive Gruppe von Spielern nutzt das Spiel tatsächlich und schreibt mir, was ihnen auffällt. Konkret, direkt, manchmal schonungslos. Genau so soll das sein.

Zeit für einen kurzen Überblick: Was habt ihr gemeldet – und was ist daraus geworden?

Forschung ist jetzt mehr als ein einmaliges Häkchen

Ein häufiger Hinweis war, dass Forschung sich zu sehr nach einem Einmal-Klick anfühlt: erforscht, fertig, weiter. Das war richtig beobachtet. Jetzt gibt es für mehrere Technologien bis zu drei Stufen. Bergbau-Technologie auf Stufe 3 bringt spürbar mehr Rohstoff-Ertrag als Stufe 1. Schildtechnik und Pilotentraining skalieren ebenso – wer investiert, merkt den Unterschied im Kampf.

Planetenproduktion hängt jetzt wirklich an der Technik

Vorher hat ein Gesteinsplanet automatisch Rohstoffe produziert – egal ob Bergbau-Technologie erforscht war oder nicht. Das hat den Forschungsbaum ein bisschen sinnlos gemacht. Jetzt gilt: kein Tech, kein Ertrag. Und mit jeder Stufe steigt die Rate.

Feedback anonym senden – jetzt möglich

Bisher war das Feedback-Formular immer mit dem Spielernamen verknüpft. Wer lieber anonym schreiben wollte, hatte keine Wahl. Das ist behoben: Ihr könnt jetzt selbst entscheiden, ob ihr anonym, mit Spielernamen oder mit echtem Namen schreibt.

Kleinere Dinge

  • Die Laufschrift mit den Neuigkeiten im Spiel ist jetzt langsamer und weniger aufdringlich – mit einer kurzen Pause bevor sie von vorne beginnt.
  • Navigation-Links sind heller und besser lesbar.
  • Diverse Bugs, die ihr gemeldet habt, sind still und leise behoben.

Ein ehrliches Dankeschön an alle, die tatsächlich spielen und sich die Zeit nehmen, mir zu schreiben. Ihr seht Dinge, die ich als Entwickler nicht sehe – weil ich das Spiel kenne und ihr es entdeckt. Das macht einen echten Unterschied.

Das Spiel ist noch nicht fertig. Aber es macht schon jetzt mehr Spaß als der erste Deploy – das ist eure Leistung genauso wie meine.

MMO-20044 spielen

Eins noch — eine Frage an euch:

Wäre eine regelmäßige Übersicht interessant? Also: Was wurde gemeldet, was davon ist umgesetzt worden, was kommt als nächstes? Quasi ein kurzes „Aus der Werkstatt"-Update
nach jeder Entwicklungsrunde.

 Schreibt mir gern eine kurze Rückmeldung — entweder per Feedback-Formular im Spiel oder direkt hier in den Kommentaren.

 

"MMO-20044 Beta: Danke für euer Feedback!" vollständig lesen

26. Mai 2026

Mozilla hat mit Firefox 151.0.2 sein wöchentliches Korrektur-Update veröffentlicht. Dieser Artikel beschreibt die Änderungen des neuesten Updates.

Download Mozilla Firefox 151.0.2

Ein Problem unter macOS wurde behoben, bei dem Smartcards und Sicherheitsschlüssel Zertifikate nicht automatisch laden konnten.

Situationen, die bei Verwendung der geteilten Ansicht von Tabs zu einem unerwarteten Schließen von Tabs führen konnten, wurden korrigiert.

Es wurde ein Problem behoben, bei dem das Zwischenspeichern neuer Inhalte nicht mehr funktionierte, sobald der Festplatten-Cache voll war. Dies konnte dazu führen, dass Ressourcen bei jedem Besuch erneut aus dem Netzwerk heruntergeladen wurden.

Ein möglicher Absturz unter Windows wurde behoben, der bei Eingabe von vereinfachtem Chinesisch mit der Sogou-Eingabemethode auftrat. Außerdem wurde ein Absturz behoben, der Nutzer von macOS 26.5 betroffen hat.

Eine Reihe von Webkompatibilitätsproblemen wurden gelöst.

Auch in Zusammenhang mit dem KI-Feature Smart Window sowie der VPN-Integration wurden noch einmal Verbesserungen vorgenommen.

Leider hat das Update auf Firefox 151.0.2 eine Regression eingeführt, die dafür sorgt, dass die VPN-Schaltfläche in der Navigationssymbolleiste viel zu groß erscheint. Eine Korrektur hierfür befindet sich bereits in Arbeit.

Der Beitrag Mozilla veröffentlicht Firefox 151.0.2 erschien zuerst auf soeren-hentzschel.at.

Seit dem Beta-Start hat sich einiges getan im MMO-20044. Zwei neue Runden Entwicklung, zwei echte Verbesserungen die direkt spürbar sind.

Planeten arbeiten jetzt für euch

Bisher waren Planeten im Wesentlichen Standorte — man konnte sie besiedeln, aber sie taten nichts von alleine. Das hat sich geändert: Jeder Planetentyp produziert jetzt stündlich Ressourcen, passiv im Hintergrund.

  • Gesteinsplaneten liefern +10 Rohstoffe/Stunde
  • Ozeanplaneten liefern +10 Kristalle/Stunde
  • Gasplaneten liefern +3 Artefakte/Stunde

Das Dashboard zeigt jetzt auch an, was eure besiedelten Planeten stündlich produzieren — ein direkter Anreiz, die Galaxie zu erkunden und die richtigen Welten zu besiedeln.

Forschungsbaum endlich sichtbar

Den Forschungsbaum gab es schon länger, aber bisher war er etwas abstrakt. Jetzt gibt es eine echte Baumvisualisierung mit Unicode-Boxzeichen, die zeigt welche Technologien voneinander abhängen — und jede Tech hat eine kurze Beschreibung was sie bringt. Kein Raten mehr.

Feedback-Funktion

Ihr habt jetzt einen direkten Kanal: Im Spiel gibt es unter "Feedback" ein einfaches Textfeld. Was ihr schreibt landet bei mir — und der Kontext wird automatisch mitgeschickt: welche Planeten ihr habt, welche Technologien, was gerade läuft. Das hilft enorm beim Debuggen und beim Verstehen was im Spiel tatsächlich passiert.

Also: Wenn etwas komisch ist, wenn etwas nervt, oder wenn ihr eine Idee habt — einfach das Feedback-Formular nutzen. Ich lese alles.

Das Spiel läuft unter https://zockertown.de/mmo/.

MMO-20044 Beta-Update: Feedback, Planeten und Forschungsbaum
  

Seit dem Start des Beta-Tests haben rund zehn Spielerinnen und Spieler das Spiel ausprobiert — danke für das frühe Interesse und das erste Feedback!

  In den letzten Tagen habe ich drei neue Features nachgezogen:

  Planetenproduktion
  Besiedelte Planeten bringen jetzt stündlich Ressourcen. Gesteinsplaneten liefern +10 Rohstoffe, Ozeanplaneten +10 Kristalle, Gasplaneten +3 Artefakte pro Stunde. Im
  Dashboard ist die Produktion direkt am Planeten-Badge sichtbar.

  Forschungsbaum-Visualisierung
  Die Forschungsseite zeigt die Abhängigkeiten jetzt als Baumstruktur im Linux-tree-Stil — mit Boxzeichen, Beschreibungen und klarem Überblick, was was voraussetzt.

  In-Game Feedback
Über den neuen "Feedback"-Link in der Navigation können direkt aus dem Spiel heraus Nachrichten an mich schicken. Der Spielerkontext (Planeten, Forschungsstand, laufende
Aktionen) wird automatisch mitgeschickt — das hilft enorm beim Debuggen und Verbessern.

Das Spiel ist weiterhin unter https://zockertown.de/mmo/ erreichbar. Wer noch mitspielen möchte: einfach registrieren, kein Invite nötig.

 

25. Mai 2026

  Vor ein paar Wochen habe ich angefangen, ein altes Spielkonzept von 2004 umzusetzen: ein tick-basiertes Browser-Space-Strategiespiel, solo betrieben, ohne Client-Download,
   ohne 24/7-Zwang. Heute ist es soweit für die erste Runde Beta-Test.

  Wer mitmachen will: https://zockertown.de/mmo/

  ---
  Was ist das überhaupt?
  
  Ein rundenbasiertes Weltraumspiel im Browser. Keine Echtzeit-Schlachten, kein ständiges Einloggen nötig. Das Spiel läuft über Ticks — die Grundwährung für alles: Forschung
   starten, reisen, Planeten besiedeln, angreifen, spionieren.

  Du bekommst 2 Ticks pro Minute, kannst bis zu 30.000 speichern (~10 Tage Inaktivität). Wer selten einloggt, verliert keinen Anschluss — aber wer aktiv ist und Ticks klug
  einsetzt, hat einen echten Vorteil.

  ---
  Ticks sind der knappe Faktor — das ist Absicht
  
  Das klingt erst mal simpel, ist aber der zentrale Hebel des Spiels. Ticks kosten:

Aktion Kosten Bemerkung
Forschung starten 350–600 Ticks je nach Tech  
Angriff anteilig vom Kampfergebnis  
Spionagesonde 200 Ticks Um Angriffe zu planen
Reisen / Besiedeln distanzabhängig  
Handeln / Plündern 50 - 200 Ticks  

  Dazu kommen Wartezeiten:

Forschung dauert 6 Stunden, Besiedlung 1 Stunde, Reisen je nach Distanz und Antriebstechnik. Du kannst also nicht einfach mit einem Berg Ticks
  alles auf einmal machen — Planung lohnt sich.

  ---
  Was gibt es zu testen?
  
  Forschungsbaum (13 Technologien)
  Antriebe, Schilde, Waffen, Community-Bonusse — und neu: drei Spionagetechs. Wer die Grundvoraussetzungen erforscht, schaltet jeweils die nächste Stufe frei. Die Forschung
  wird günstiger, je mehr Spieler sie bereits haben (Community-Bonus).

  Kampfsystem
  Taktisch, max. 10 % Zufall. Angriff kostet Ticks, bringt aber Beute wenn erfolgreich. Kampfberichte zeigen den genauen Verlauf.

  Spionage (neu)
  Bevor du angreifst, kannst du eine Sonde schicken. Je nach Forschungsstand deiner Rasse und der Abwehr des Gegners erfährst du mehr oder weniger: von einer groben
  Einschätzung bis zum genauen Tick-Stand und der Rasse. Wird die Sonde abgefangen, erfährt der Verteidiger deinen Namen. Keine Spionagetechs? Kein Problem — dann greifst du
   halt blind an.

  Handel
  Ein NPC-Händler fliegt regelmäßig verschiedene Systeme an und bietet Rohstoffe, Kristalle und Artefakte an — oder kauft. Wer zur richtigen Zeit am richtigen Ort ist,
  profitiert.

  Highscore
  Ticks + Planeten × 500 + Technologien × 100 + Siege × 200 — wer was wie priorisiert, ist offen.

  ---
  Was ist noch Beta?

  - Balancing ist nicht final — Tick-Kosten, Kampfwerte und Wahrscheinlichkeiten können sich noch ändern
  - Rassen-Portraits sind Platzhalter (SVG-Symbole), echte Bilder kommen später
  - Spielziel / Win-Condition ist noch nicht implementiert — die aktuelle Runde läuft auf Highscore
  - Fehler und Ungereimtheiten: einfach melden

  ---
  Feedback

  Direkt an mich — Forum, Nachricht, oder wie auch immer ihr mich erreicht.

Was fühlt sich falsch an, was fehlt, was nervt? Genau das interessiert mich jetzt.

 

23. Mai 2026

Was ist Yanking? Bei modalen Editoren wie vim oder Helix kann man es sich als das Kopieren von Inhalten in Register oder temporären Buffern vorstellen. Also wie eine Zwischenablage.

Im Falle des Editors Helix kann man mit dem Befehl “c” Text ändern und mit dem Befehl “d” löschen. In der Standardkonfiguration wird allerdings der jeweilige ursprüngliche Text auch automatisch “ge-yanked”. Mich und andere Nutzer nervt das allerdings. Warum muss ein Text, den man löscht oder ändert, automatisch in der Zwischenablage landen? Es mag Anwendungsfälle geben, bei denen es sinnvoll ist. Aber das dürfte meiner Meinung nach eher die Ausnahme sein.

Das Gute an Helix ist, dass man bezüglich der Shortcuts recht flexibel ist. Wer also bei “c” und “d” kein Yanking haben will, kann folgendes in die Konfiguration eintragen.

A-d = "delete_selection"
d = "delete_selection_noyank"
A-c = "change_selection"
c = "change_selection_noyank"

Damit wird mit “c” und “d” kein Yanking genutzt. Aber mit “ALT-d” oder “ALT-c” hingegen schon.

Was ist Yanking? Bei modalen Editoren wie vim oder Helix kann man es sich als das Kopieren von Inhalten in Register oder temporären Buffern vorstellen. Also wie eine Zwischenablage.

Im Falle des Editors Helix kann man mit dem Befehl “c” Text ändern und mit dem Befehl “d” löschen. In der Standardkonfiguration wird allerdings der jeweilige ursprüngliche Text auch automatisch “ge-yanked”. Mich und andere Nutzer nervt das allerdings. Warum muss ein Text, den man löscht oder ändert, automatisch in der Zwischenablage landen? Es mag Anwendungsfälle geben, bei denen es sinnvoll ist. Aber das dürfte meiner Meinung nach eher die Ausnahme sein.

Das Gute an Helix ist, dass man bezüglich der Shortcuts recht flexibel ist. Wer also bei “c” und “d” kein Yanking haben will, kann folgendes in die Konfiguration eintragen.

A-d = "delete_selection"
d = "delete_selection_noyank"
A-c = "change_selection"
c = "change_selection_noyank"

Damit wird mit “c” und “d” kein Yanking genutzt. Aber mit “ALT-d” oder “ALT-c” hingegen schon.

22. Mai 2026

In diesem Teil optimieren wir die Kommunikation mit Codeberg, so dass keine Passwörter mehr eingegeben werden müssen. Git- und Codeberg-Troubleshooting inklusive.



Entgegen der ursprünglichen Planung, hier und heute keine durchgreifenden großen Änderungen am System. Das Multi-User-Setup kommt dann nächste Woche.

Ich habe die Reihenfolge geändert, weil ich mich an meinen eigenen Setup-Prozess erinnerte: Mit NixOS selbst hatte ich selten mal größere Probleme, eigentlich nur hier und da mal eine Klammer zu viel oder ein Semikolon zu wenig. Wenn ich in etwas eine Eleganz in der Logik entdecke, und auf NixOS trifft das für mich zu, dann flutscht es meistens. Aber ich gebe zu, dass mich Git oder Codeberg, oder beides zusammen, manchmal an den Rand des Wahnsinns getrieben haben. Da können die zwei genannten Protagonisten natürlich selbst nichts dafür, ich hatte mich bei der ganzen Lernkurverei wohl öfter mal verfahren.

Zum Glück habe ich mir angewöhnt Problem und Lösungsschritte immer gleich in meinem Second-Brain (Obsidian) zu dokumentieren, daher heute daraus ein ordentlicher Rollout; wie gesagt mit dem Hintergedanken, dass es jetzt nach dem Setup für viele hilfreich sein kann.

Passwortlose Kommunikation mit Codeberg via SSH

Bisher fragt git push und git pull nach Benutzername und Passwort bzw. Access Token.
Mit einem SSH-Schlüssel entfällt das vollständig – für immer. Das ist doch mal echte Entlastung.

Schritt 1: SSH-Schlüssel generieren

ssh-keygen -t ed25519 -C "DEIN-USERNAME@codeberg"

Alle Rückfragen einfach mit Enter bestätigen. Es entstehen zwei Dateien:

  • ~/.ssh/id_ed25519 – der private Schlüssel (niemals weitergeben!)
  • ~/.ssh/id_ed25519.pub – der öffentliche Schlüssel (wird bei Codeberg hinterlegt)

Schritt 2: Öffentlichen Schlüssel bei Codeberg hinterlegen

cat ~/.ssh/id_ed25519.pub

Die Ausgabe vollständig kopieren, dann bei Codeberg:
Einstellungen → SSH-Schlüssel → Neuen Schlüssel hinzufügen

Titel frei wählen (Tipp Hostname), Schlüssel einfügen, speichern.

Schritt 3: Schlüssel auch für root verfügbar machen

Da update-push und pull-update sudo git verwenden, braucht auch
root Zugriff auf den Schlüssel:

sudo mkdir -p /root/.ssh
sudo cp ~/.ssh/id_ed25519 /root/.ssh/id_ed25519
sudo cp ~/.ssh/id_ed25519.pub /root/.ssh/id_ed25519.pub
sudo chmod 600 /root/.ssh/id_ed25519

Schritt 4: Verbindung testen

# Normaler Benutzer – einmalige Bestätigung mit "yes"
ssh -T git@codeberg.org

# Root – einmalige Bestätigung mit "yes"
sudo ssh -T git@codeberg.org

Beide Male sollte etwas grob in folgender Art erscheinen:

Hi there, DEIN-USERNAME! You've successfully authenticated...

Schritt 5: Remote-URL auf SSH umstellen

cd /etc/nixos
sudo git remote set-url origin git@codeberg.org:DEIN-USERNAME/NixOS.git

Ab jetzt laufen update-push und pull-update komplett ohne Passwortabfrage durch.

Hinweis zur home.nix: Die Skripte update-push und pull-update
müssen nicht angepasst werden. Sie verwenden sudo git push und
sudo git fetch ohne explizite SSH-Angabe. Sobald die Remote-URL in
Schritt 5 auf SSH umgestellt ist und root den Schlüssel kennt, nutzen
diese Befehle automatisch SSH – ohne eine einzige Zeile im Skript zu ändern.

Hinweis zu anderen Hosts: Diesen Schritt muss man einmal auf jedem Rechner machen. Tipp: Schlüsseldatei auf Codeberg mit dem Hostnamen versehen, z. B. username@hostname.

Git- und Codeberg-Troubleshooting

Ich habe nachfolgend mal alles gesammelt, was bei mir so schief lief (ganz schön viel) und wie man den Knoten lösen kann.

Grundregel

Codeberg ist immer die Quelle der Wahrheit. Was dort steht, ist das was zählt. Der lokale Stand ist temporär – er kann jederzeit von Codeberg wiederhergestellt werden.

Diagnose-Befehle

Diese Ausgaben können manchmal hilfreich sein um diese in einem Forum oder an eine KI weiterzugeben, wenn unten genannte Fehlerprofile nicht zutreffen.

# Wo bin ich? Nur zur Sicherheit ;)
pwd

# Lokaler Status – was hat sich geändert?
sudo git status

# Commit-Historie anzeigen
sudo git log --oneline -10

# Welche Remote-URL ist eingetragen?
sudo git remote -v

# Unterschied zwischen lokalem Stand und Codeberg
sudo git diff origin/master

Problem 1: "Kein Git-Repository"

Schwerwiegend: Kein Git-Repository (oder irgendeines der Elternverzeichnisse): .git

Ursache: Du bist im falschen Verzeichnis – wahrscheinlich in ~ statt in /etc/nixos.

Lösung:

cd /etc/nixos

Problem 2: Authentifizierung fehlgeschlagen (HTTPS)

remote: Die Zugangsdaten sind inkorrekt oder abgelaufen.

Ursache: HTTPS statt SSH, falsches Passwort oder abgelaufener Token.

Lösung – einmalig auf SSH umstellen:

# SSH-Key generieren (falls noch nicht vorhanden)
ssh-keygen -t ed25519 -C "DEIN-USERNAME@codeberg"

# Öffentlichen Key bei Codeberg hinterlegen
cat ~/.ssh/id_ed25519.pub
# → Codeberg → Einstellungen → SSH-Schlüssel

# Key auch für root verfügbar machen
sudo mkdir -p /root/.ssh
sudo cp ~/.ssh/id_ed25519 /root/.ssh/id_ed25519
sudo cp ~/.ssh/id_ed25519.pub /root/.ssh/id_ed25519.pub
sudo chmod 600 /root/.ssh/id_ed25519

# Verbindung testen (einmalige Bestätigung mit "yes")
ssh -T git@codeberg.org
sudo ssh -T git@codeberg.org

# Remote-URL umstellen
cd /etc/nixos
sudo git remote set-url origin git@codeberg.org:DEIN-USERNAME/NixOS.git

Problem 3: SSH schlägt fehl – "Connection closed"

The authenticity of host 'codeberg.org' can't be established.
Connection closed by ... port 22

Ursache: Root kennt Codeberg noch nicht (known_hosts fehlt) oder Root-SSH-Key fehlt.

Lösung:

# Einmalige Bestätigung für root
sudo ssh -T git@codeberg.org
# → "yes" eingeben

# Falls danach immer noch fehlgeschlagen: Root-Key prüfen
ls /root/.ssh/id_ed25519
# Falls fehlend: siehe Problem 2 ab "Key auch für root verfügbar machen"

Problem 4: Push abgelehnt – "fetch first"

! [rejected] master -> master (fetch first)
Aktualisierungen wurden zurückgewiesen, weil das Remote-Repository
Commits enthält, die lokal nicht vorhanden sind.

Ursache: Auf einem anderen Rechner wurde etwas gepusht das dieser Rechner noch nicht kennt.

Lösung – Codeberg-Stand holen und zusammenführen:

cd /etc/nixos
sudo git fetch origin
sudo git reset --hard origin/master

Danach pull-update ausführen um das System neu zu bauen.

Problem 5: Branches auseinandergelaufen – "Vorspulen nicht möglich"

Hinweis: Abweichende Branches können nicht vorgespult werden.
Schwerwiegend: Vorspulen nicht möglich, breche ab.

Ursache: Lokaler und Codeberg-Branch haben unterschiedliche Commits – keiner ist ein direkter Nachfolger des anderen.

Lösung – Codeberg gewinnt immer:

cd /etc/nixos
sudo git fetch origin
sudo git reset --hard origin/master

Das überschreibt den lokalen Stand vollständig mit Codeberg. Eigene lokale Commits gehen dabei verloren – das ist in diesem Workflow gewollt, weil Codeberg die Quelle der Wahrheit ist.

Problem 6: Zu einem bestimmten alten Stand zurückkehren

Du möchtest einen früheren Zustand wiederherstellen – z. B. vor einer fehlerhaften Änderung.

Schritt 1: Gewünschten Commit finden

sudo git log --oneline -10

Beispielausgabe:

7e1bc10 Revert "System aktualisiert 2026-05-08"
da7898a Revert "System aktualisiert 2026-05-12"
dfba16b System aktualisiert 2026-05-12
aa6e666 System aktualisiert 2026-05-12   ← gewünschter Stand
8750d80 System aktualisiert 2026-05-08

Schritt 2: Auf diesen Stand zurücksetzen

sudo git reset --hard aa6e666

Schritt 3: System neu bauen

sudo nixos-rebuild switch --flake /etc/nixos#(hostname)

Schritt 4: Codeberg ebenfalls zurücksetzen

sudo git push --force-with-lease origin master

--force-with-lease ist sicherer als --force: Es schlägt fehl wenn jemand anderes zwischenzeitlich gepusht hat – und schützt so vor versehentlichem Überschreiben fremder Änderungen.

Problem 7: hardware-configuration.nix fehlt nach git reset

error: path '...hardware-configuration.nix' does not exist

Ursache: Die hardware-configuration.nix war nie in Git getrackt oder wurde beim Reset überschrieben.

Lösung:

# Neu generieren
sudo nixos-generate-config

# In Git aufnehmen
cd /etc/nixos
sudo git add hardware-configuration.nix
sudo git commit -m "hardware-configuration wiederhergestellt"
sudo nixos-rebuild switch --flake /etc/nixos#(hostname)
sudo git push origin master

Kurzreferenz: Die wichtigsten Rettungsbefehle

Situation Befehl
Aktuellen Codeberg-Stand holen sudo git fetch origin && sudo git reset --hard origin/master
Zu altem Commit zurückkehren sudo git reset --hard COMMIT-HASH
Codeberg auf lokalen Stand zwingen sudo git push --force-with-lease origin master
Commit-Historie anzeigen sudo git log --oneline -10
Lokale Änderungen verwerfen sudo git checkout -- .
Remote-URL prüfen sudo git remote -v

Artikel der NixOS-Reihe


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

21. Mai 2026

Mozilla hat Firefox 151.0.1 veröffentlicht und behebt damit Abstürze auf Systemen mit bestimmten Prozessoren.

Download Mozilla Firefox 151.0.1

Nur zwei Tage nach Veröffentlichung von Firefox 150 hat Mozilla Firefox 151.0.1 veröffentlicht. Behoben werden damit Abstürze, welche nur auf Systemen mit einer Raptor Lake CPU von Intel auftreten. Außerdem wurde ein Problem in Zusammenhang mit der Web Serial API behoben.

Der Beitrag Mozilla veröffentlicht Firefox 151.0.1 erschien zuerst auf soeren-hentzschel.at.