initial commit
This commit is contained in:
commit
4fe3976a16
30
disko/btrfs-legacy.nix
Normal file
30
disko/btrfs-legacy.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ device }:
|
||||||
|
|
||||||
|
{
|
||||||
|
disk.main = {
|
||||||
|
type = "disk";
|
||||||
|
inherit device;
|
||||||
|
|
||||||
|
content = {
|
||||||
|
type = "msdos";
|
||||||
|
partitions = {
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@root" = { mountpoint = "/"; };
|
||||||
|
"@nix" = { mountpoint = "/nix"; };
|
||||||
|
"@var" = { mountpoint = "/var"; };
|
||||||
|
"@docker" = { mountpoint = "/var/lib/docker"; };
|
||||||
|
"@home" = { mountpoint = "/home"; };
|
||||||
|
"@snapshots" = { mountpoint = "/.snapshots"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
36
flake.nix
Normal file
36
flake.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
description = "NixOS server fleet";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
|
disko.url = "github:nix-community/disko";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs }:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
release = "25.11";
|
||||||
|
mainDisk = "/dev/sda";
|
||||||
|
myUser = "victor";
|
||||||
|
in {
|
||||||
|
nixosConfigurations = {
|
||||||
|
isengard = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
specialArgs = { inherit release mainDisk myUser; };
|
||||||
|
modules = [
|
||||||
|
inputs.disko.nixosModules.disko
|
||||||
|
|
||||||
|
./hosts/isengard.nix
|
||||||
|
./modules/base.nix
|
||||||
|
./modules/docker.nix
|
||||||
|
|
||||||
|
({ ... }: {
|
||||||
|
disko.devices = import ./disko/btrfs-legacy.nix {
|
||||||
|
device = mainDisk;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
hosts/isengard.nix
Normal file
25
hosts/isengard.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ config, pkgs, myUser, release, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking.hostName = "isengard";
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Bucharest";
|
||||||
|
|
||||||
|
users.users.myUser = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "docker" ];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOiNyGO4RAxSdxvn2ZIBZ2Ze4iVVMrBNmu/V9JO70PoT victor@battleship"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.useDHCP = true;
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = release;
|
||||||
|
}
|
||||||
|
|
||||||
20
modules/base.nix
Normal file
20
modules/base.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ config, pkgs, mainDisk, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = mainDisk;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
curl
|
||||||
|
htop
|
||||||
|
tmux
|
||||||
|
];
|
||||||
|
}
|
||||||
10
modules/docker.nix
Normal file
10
modules/docker.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ config, myUser, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualization.docker.rootless = {
|
||||||
|
enable = true;
|
||||||
|
setSocketVariable = true;
|
||||||
|
storageDriver = "btrfs";
|
||||||
|
users.users.myUser.extraGroups = [ "docker" ];
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user