configuration.nix/README.md
Gregory Bednov ef7981a517
All checks were successful
/ build-installer (push) Successful in 38s
Create README.md
2026-09-14 16:48:26 +03:00

50 lines
2.2 KiB
Markdown

# 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