Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Einführung

Zunächst die Basics. Wir haben 3 Server (VMs beim ZIM)

  • Teefax (134.99.147.42, teefax.hhu-fscs.de), das “Workhorse” der Fachschaft. Hier betreiben wir einen Großteil unserer Dienste
  • Verleihnix (134.99.147.43, verleihnix.hhu-fscs.de), hier liegt hauptsächlich ein Minecraft Server.
  • Sebigbos (134.99.147.41, sebigbos.hhu-fscs.de), verschimmelt gerade etwas vor sich hin.

Auf all diesen Server läuft NixOS. Teenix ist die Konfiguration die diese NixOS Systeme beschreibt.

Außerdem verfügen wir noch über einen Nfs Share (also ein Netzwerk Dateisystem), die NetApp. Dort liegen unsere “Massen Daten”, also der Inhalt der Cloud etc. Dies wird vom ZIM auch regelmässig gebackuped.

Übersicht

  • Teenix ist (offensichtlich) deklarativ. Wir möchten imperativen Zustand möglichst vermeiden.
  • Teenix setzt nicht auf docker, sondern auf NixOS Container. Diese können vollständig aus nix heraus konfiguriert werden und verhalten sich effektiv wie eine NixOS Maschine. Einige Services laufen trotzdem noch in docker, das wollen wir aber langfristig komplett abschaffen.
  • Teenix ist “impernanent”. Das heißt, das standardmässig alle Dateien bei einem Reboot gelöscht werden. Es ist jedoch möglich Dateien/Ordner als “persistent” zu markieren, diese liegen dann unter /persist. Der Vorteil davon ist das das Dateisystem standardmässig aufgeräumt bleibt und sich nicht Müll über Ratsgenerationen ansammelt, von dem niemand weiß ob er noch gebraucht wird.

Dateistruktur

Keine vollständige Auflistung, dient nur der groben Übersicht

├─ doc          - ein mdbook, die dokumentation die du gerade liest
├─ lib          - erweiterung der nixpkgs lib, verfügbar unter lib.teenix
├┬ mod          - das herz von teenix, hier liegen module die zwischen den verschiedenen hosts
││                unterschiedlich konfiguriert werden können.
│└── services   - die module für all unsere services
├┬ nixos        - konfigurationen der einzelnen hosts
│└─┬ seelax     - die konfiguration von seelax 
│  ├ sebigbos   - die konfiguration von sebigbos
│  ├ teefax     - die konfiguration von teefax
│  ├ verleihnix - die konfiguration von testfax
│  └ share      - geteilte konfiguration, sollte in jedem host unbedingt importiert werden
├┬ sops
│└─┬ secrets    - sops secrets
│  └ keys       - keys mit denen die secrets verschlüsselt sind
├─ pkgs         - eigene packages
├─ flake.nix    - der "einstieg" in die konfiguration
├─ overlays.nix - nixpkgs overlays
└─ .sops.yaml   - konfigurationsdatei für sops, nur wer hier eingetragen ist kann die secrets lesen