50 lines
2.2 KiB
Markdown
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
|