# University PC NixOS config The repo here is located **originally** on my personal [Greg's Forgejo](https://forgejo.gregorbednov.ru/gregorbednov/configuration.nix). It was used as a ready-to-go declarative installation of all required software in Industrial Informatics Department in MIREA. So feel free to fork it and modify it. ## Architecture ### Context and requirements I worked on the config in university department with its own student PC machines fleet, about from 50 to 70 machines. - from 50 to 70 machines needed to install Linux for student work and a bunch of cross-platform apps (by the way most of PCs were on Ubuntu 20.04 and Ubuntu 22.04, each with unique history and packages set. And I installed NixOS on each). - non-NixOS (Debian) Server - able to host files, unable to switch fully on NixOS using [nixos-infect](https://github.com/elitak/nixos-infect) or something. It listens on `10.0.174.12` in my personal case; - me and my collegues couldn't operate on network routers and DNS servers, because it's not our competence (only central networking and security operating team could set up our routers and domain resolving, and would leave no exceptions without special cases in prior to security) - and on the other hand, students were already allowed to unplug Ethernet cables from PC and to plug it into their own laptops; as my collegues said, that's why none of them don't want to support (pseudo)static IPv4. and also, students in tech when something doesn't work properly *for them*, are trying to hack it --- so, may be we would get fake static IPs issues. - students vandals some settings sometimes, however it would be nice if they had customization options ### Description and solutions - Debian server `10.0.174.12` --- Yggdrasil Peer and Fileserver - NixOS builds `nixos.builds.node` virtual machine on it --- doesn't have static IP but has well-known static Yggdrasil IPv6 - 50-70x NixOSxWindows dual-boot PCs with - dynamic IPv4 - static Yggdrasil-overlayed IPv6 - configuration.nix and flake.nix in /etc/nixos, - all of hardware specifics is left in hardware-configuration.nix - any time student user can be reset completely with `resethome` command