update hosts structure

This commit is contained in:
Hendrik Sokolowski 2023-11-10 15:41:48 +01:00
parent 1552a3227f
commit 5c26db7444
30 changed files with 93 additions and 289 deletions

View file

@ -1,21 +0,0 @@
{suites, ...}: {
### root password is empty by default ###
### default password: pub-solar, optional: add your SSH keys
imports =
suites.iso;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
fileSystems."/" = {device = "/dev/disk/by-label/nixos";};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.05"; # Did you read the comment?
}

View file

@ -1,54 +0,0 @@
{
config,
lib,
pkgs,
profiles,
...
}:
with lib; let
# Gets hostname of host to be bundled inside iso
# Copied from https://github.com/divnix/digga/blob/30ffa0b02272dc56c94fd3c7d8a5a0f07ca197bf/modules/bootstrap-iso.nix#L3-L11
getFqdn = config: let
net = config.networking;
fqdn =
if (net ? domain) && (net.domain != null)
then "${net.hostName}.${net.domain}"
else net.hostName;
in
fqdn;
in {
# build with: `nix build ".#nixosConfigurations.bootstrap.config.system.build.isoImage"`
imports = [
# profiles.networking
profiles.users.root # make sure to configure ssh keys
profiles.users.pub-solar
profiles.base-user
profiles.graphical
profiles.pub-solar-iso
];
config = {
boot.loader.systemd-boot.enable = true;
# will be overridden by the bootstrapIso instrumentation
fileSystems."/" = {device = "/dev/disk/by-label/nixos";};
system.nixos.label = "PubSolarOS-" + config.system.nixos.version;
# mkForce because a similar transformation gets double applied otherwise
# https://github.com/divnix/digga/blob/30ffa0b02272dc56c94fd3c7d8a5a0f07ca197bf/modules/bootstrap-iso.nix#L17
# https://github.com/NixOS/nixpkgs/blob/aecd4d8349b94f9bd5718c74a5b789f233f67326/nixos/modules/installer/cd-dvd/installation-cd-base.nix#L21-L22
isoImage = {
isoBaseName = mkForce (getFqdn config);
isoName = mkForce "${config.system.nixos.label}-${config.isoImage.isoBaseName}-${pkgs.stdenv.hostPlatform.system}.iso";
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.05"; # Did you read the comment?
};
}

View file

@ -1,14 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib;
with pkgs; let
psCfg = config.pub-solar;
in {
imports = [
./configuration.nix
];
}

View file

@ -1,7 +1,6 @@
{suites, ...}: { { ... }: {
imports = imports = [
[ ./configuration.nix
./chonk.nix ./hardware-configuration.nix
] ];
++ suites.chonk;
} }

View file

@ -1,18 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
];
config = {
nixpkgs.crossSystem.system = "aarch64-linux";
};
}

View file

@ -1,7 +1,6 @@
{suites, ...}: { { ... }: {
imports = imports = [
[ ./configuration.nix
./companion.nix ./hardware-configuration.nix
] ];
++ suites.companion;
} }

View file

@ -16,6 +16,9 @@
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
networking.useDHCP = false; networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true; networking.interfaces.eth0.useDHCP = true;
networking.interfaces.wlan0.useDHCP = false; networking.interfaces.wlan0.useDHCP = false;

View file

@ -1,16 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in
{
imports = [
./configuration.nix
];
config = {
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
};
}

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./cox.nix ./configuration.nix
] ++ suites.cox; ./hardware-configuration.nix
];
} }

View file

@ -10,6 +10,10 @@
./home-controller.nix ./home-controller.nix
]; ];
pub-solar.core.disk-encryption-active = false;
networking.networkmanager.enable = lib.mkForce false;
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.version = 2; boot.loader.grub.version = 2;

View file

@ -1,15 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
with pkgs;
let
psCfg = config.pub-solar;
in
{
imports = [
./configuration.nix
];
pub-solar.core.disk-encryption-active = false;
networking.networkmanager.enable = lib.mkForce false;
}

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./cube.nix ./configuration.nix
] ++ suites.cube; ./hardware-configuration.nix
];
} }

View file

@ -10,6 +10,8 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
pub-solar.core.disk-encryption-active = false; pub-solar.core.disk-encryption-active = false;
boot.loader.grub.enable = lib.mkForce false; boot.loader.grub.enable = lib.mkForce false;

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./falcone.nix ./configuration.nix
] ++ suites.falcone; ./hardware-configuration.nix
];
} }

View file

@ -1,16 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in
{
imports = [
./configuration.nix
];
config = {
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
};
}

View file

@ -29,6 +29,9 @@
device = "nodev"; device = "nodev";
}; };
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
system.stateVersion = "22.11"; # Did you read the comment? system.stateVersion = "22.11"; # Did you read the comment?

View file

@ -1,7 +1,6 @@
{suites, ...}: { { ... }: {
imports = imports = [
[ ./configuration.nix
./giggles.nix ./hardware-configuration.nix
] ];
++ suites.giggles;
} }

View file

@ -1,19 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
];
config = {
boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false;
};
}

View file

@ -4,6 +4,9 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let
psCfg = config.pub-solar;
in
{ {
imports = imports =
[ [
@ -11,6 +14,21 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
home-manager.users."${psCfg.user.name}".xdg.configFile = lib.mkIf psCfg.sway.enable {
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
};
pub-solar.paranoia.enable = true;
pub-solar.nextcloud.enable = true;
programs.ausweisapp.enable = true;
services.pcscd = {
enable = true;
plugins = [ pkgs.pcsc-cyberjack ];
};
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
time.hardwareClockInLocalTime = true; # easiest quirk for windows time offset feature time.hardwareClockInLocalTime = true; # easiest quirk for windows time offset feature

View file

@ -4,8 +4,13 @@
{ {
config, config,
pkgs, pkgs,
lib,
... ...
}: { }:
let
psCfg = config.pub-solar;
in
{
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
@ -13,6 +18,17 @@
./builder.nix ./builder.nix
]; ];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
environment.systemPackages = [pkgs.factorio-experimental];
pub-solar.audio.bluetooth.enable = false;
home-manager.users."${psCfg.user.name}".xdg.configFile = lib.mkIf psCfg.sway.enable {
"sway/config.d/10-inputs.conf".source = ./.config/sway/config.d/inputs.conf;
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
"sway/config.d/10-custom-keybindings.conf".source = ./.config/sway/config.d/custom-keybindings.conf;
};
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./norman.nix ./configuration.nix
] ++ suites.norman; ./hardware-configuration.nix
];
} }

View file

@ -1,28 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
];
config = {
boot.binfmt.emulatedSystems = ["aarch64-linux"];
environment.systemPackages = [pkgs.factorio-experimental];
pub-solar.audio.bluetooth.enable = false;
home-manager.users."${psCfg.user.name}".xdg.configFile = mkIf psCfg.sway.enable {
"sway/config.d/10-inputs.conf".source = ./.config/sway/config.d/inputs.conf;
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
"sway/config.d/10-custom-keybindings.conf".source = ./.config/sway/config.d/custom-keybindings.conf;
};
};
}

View file

@ -11,6 +11,7 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./redpanda.nix ./configuration.nix
] ++ suites.redpanda; ./hardware-configuration.nix
];
} }

View file

@ -1,17 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in
{
imports = [
./configuration.nix
];
#pub-solar.nextcloud.enable = lib.mkForce false;
config = {
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
};
}

View file

@ -11,6 +11,8 @@
./home-controller.nix ./home-controller.nix
]; ];
pub-solar.core.lite = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./ringo.nix ./configuration.nix
] ++ suites.ringo; ./hardware-configuration.nix
];
} }

View file

@ -1,13 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in
{
imports = [
./configuration.nix
];
config.pub-solar.core.lite = true;
}

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./surfplace.nix ./configuration.nix
] ++ suites.surfplace; ./hardware-configuration.nix
];
} }

View file

@ -1,11 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in
{
imports = [
./configuration.nix
];
}