This commit is contained in:
parent
9132b33e91
commit
4aae45f13b
10 changed files with 588 additions and 180 deletions
|
|
@ -1,11 +1,63 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
# static server IP address, it must be always online and serve as Yggdrasil peer
|
||||
# (see config.services.ygggdrasil.settings.peers for details)
|
||||
# WARN: the peer should NOT connect Yggdrasil worldwide network
|
||||
# if your PC fleet shouldn't be globally accessible around the world
|
||||
#
|
||||
# статический IP адрес сервера, который должен быть всегда онлайн и служить пиром Yggdrasil
|
||||
# (см. подробности config.services.ygggdrasil.settings.peers)
|
||||
# ПРЕДУПРЕЖДЕНИЕ: этот пир не должен быть подключен к мировой сети Yggdrasil,
|
||||
# если конечно вы не хотите чтобы весь компьютерный парк был доступен из любой точки мира
|
||||
serverIP = "10.0.174.12";
|
||||
|
||||
# -------
|
||||
# Yggdrasil address cache build node. It should use the same NixOS config as others
|
||||
# It's NOT required to be the same server as ${serverIP} but it also should be always online
|
||||
# It CAN be a NixOS VM installed on the same server ${serverIP} autostarted
|
||||
#
|
||||
# Yggdrasil-адрес кэширующего сервера. На нем должна быть установлена NixOS с той
|
||||
# же конфигурацией, что и у остальных машин. Не обязательно, чтобы эта машина была той же,
|
||||
# что сервер ${serverIP}, но она также должна быть онлайн.
|
||||
# Это может быть виртуальная NixOS-машина, установленная на сервере ${serverIP} в режим автозапуска
|
||||
|
||||
buildNodeYggIP = "200:ccc6:1361:5c84:aba0:1244:35f5:c903";
|
||||
|
||||
# -------
|
||||
# here is your configuration repo URL. fork it and change it on your own if you want
|
||||
#
|
||||
# здесь требуется указать ваш URL-адрес репозитория с конфигурацией. fork-аете, и меняете на свой
|
||||
|
||||
configRepoUrl = "https://forgejo.gregorbednov.ru/gregorbednov/configuration.nix.git";
|
||||
|
||||
# -------
|
||||
# here is some university specifics, apps and resources
|
||||
# e.g. for MIREA it's wallpaper, university logo, utils to show uuniversity schedule week number and so on
|
||||
#
|
||||
# LEGALS: I am NOT a creator on wallpaper.svg,
|
||||
# I do NOT own wallpaper.svg, this doesn't represent any of my ideas or views,
|
||||
# that's just a logo (a coat of arms to be precise) of a university,
|
||||
# and it is in the public domain.
|
||||
#
|
||||
# здесь могут быть специфические вузовские данные и ресурсы,
|
||||
# например, обои, логотип университета, утилита для показа номера недели по расписанию, и так далее
|
||||
#
|
||||
# ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:
|
||||
# Я не являюсь владельцем файла wallpaper.svg, его добавление не репрезентует моих идей или взглядов,
|
||||
# это просто логотип (точнее герб) университета, и он является общественным достоянием.
|
||||
|
||||
university = import ../mirea-specific/university.nix;
|
||||
|
||||
in
|
||||
{
|
||||
isoImage.isoName = lib.mkForce "mirea-nixos-installer.iso";
|
||||
isoImage.isoName = lib.mkForce university.isoName;
|
||||
isoImage.squashfsCompression = "zstd -Xcompression-level 6";
|
||||
|
||||
services.getty.autologinUser = lib.mkForce "root";
|
||||
|
|
@ -19,15 +71,22 @@ in
|
|||
git
|
||||
pv
|
||||
curl
|
||||
(writeShellScriptBin "mirea-install" (
|
||||
(writeShellScriptBin university.installerBin (
|
||||
builtins.replaceStrings
|
||||
[ "@CONFIG_REPO_URL@" ]
|
||||
[ configRepoUrl ]
|
||||
[ "@CONFIG_REPO_URL@" "@DISTRO_TITLE@" ]
|
||||
[ configRepoUrl university.shortName ]
|
||||
(builtins.readFile ./mirea-install.sh)
|
||||
))
|
||||
];
|
||||
|
||||
# Yggdrasil запускается на установщике — благодаря ему доступен локальный кэш сборок
|
||||
# Yggdrasil-маршрутизация позволяет целевым ПК автоматически получать статический IPv6 даже в сетях DHCP,
|
||||
# что также запускается на установщике для максимальной гибкости.
|
||||
# Благодаря Yggdrasil может быть доступно удаленнное управление и локальный кэш сборок
|
||||
|
||||
# Yggdrasil routing above network allows any target PC to get automatically static IPv6 even on DHCP,
|
||||
# so installer is recommended to use Yggdrasil too for maximum scalability
|
||||
# With Yggdrasil routing it's easy to connect remotely, and you can use
|
||||
# nix build cache nodes with DHCP-addresses (e.g. other PCs)
|
||||
services.yggdrasil = {
|
||||
enable = true;
|
||||
persistentKeys = false;
|
||||
|
|
@ -49,7 +108,10 @@ in
|
|||
];
|
||||
trusted-substituters = [ "http://nixos.builds.node" ];
|
||||
connect-timeout = 5;
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
};
|
||||
|
||||
systemd.services.nix-daemon = {
|
||||
|
|
@ -64,10 +126,13 @@ in
|
|||
environment.etc."issue".text = ''
|
||||
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Установщик NixOS MIREA │
|
||||
│ Запустите: mirea-install │
|
||||
│ Установщик NixOS ${university.shortName}
|
||||
│ Запустите: ${university.installerBin}
|
||||
└─────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────┐
|
||||
│ NixOS Installer ${university.shortName}
|
||||
│ Run: ${university.installerBin}
|
||||
└─────────────────────────────────────────┘
|
||||
|
||||
'';
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
|
|
|
|||
Loading…
Reference in a new issue