komikan
This commit is contained in:
parent
7bbb687f37
commit
cdbe64e99b
37
hosts/komikan/config.nix
Normal file
37
hosts/komikan/config.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
{...}: {
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
authorizedKeysFiles = ["%h/.local/ssh/authorized_keys"];
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.samba = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
"workgroup" = "WORKGROUP";
|
||||||
|
"server string" = "komikan";
|
||||||
|
"netbios name" = "komikan";
|
||||||
|
"security" = "user";
|
||||||
|
"use sendfile" = "yes";
|
||||||
|
"hosts allow" = "192.168.0. 127.0.0.1 localhost 100.64.";
|
||||||
|
"hosts deny" = "0.0.0.0/0";
|
||||||
|
};
|
||||||
|
pool = {
|
||||||
|
"path" = "/mnt/pool";
|
||||||
|
"browseable" = "no";
|
||||||
|
"read only" = "no";
|
||||||
|
"guest ok" = "no";
|
||||||
|
"create mask" = "0644";
|
||||||
|
"directory mask" = "0755";
|
||||||
|
"force user" = "ahnwuoa";
|
||||||
|
"force group" = "users";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
|
}
|
||||||
39
hosts/komikan/default.nix
Normal file
39
hosts/komikan/default.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../../system
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./disk.nix
|
||||||
|
./config.nix
|
||||||
|
inputs.disko.nixosModules.disko
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = [pkgs.hd-idle];
|
||||||
|
networking.hostName = "komikan";
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
users.users.ahnwuoa = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = ["wheel"];
|
||||||
|
};
|
||||||
|
u.has = {
|
||||||
|
graphical = false;
|
||||||
|
wine = false;
|
||||||
|
virt = false;
|
||||||
|
container = false;
|
||||||
|
};
|
||||||
|
boot.loader.grub = {
|
||||||
|
useOSProber = false;
|
||||||
|
efiSupport = false;
|
||||||
|
};
|
||||||
|
systemd.services.hd-idle = {
|
||||||
|
description = "Disk spin down daemon";
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.hd-idle}/bin/hd-idle";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
boot.loader.efi.canTouchEfiVariables = false;
|
||||||
|
}
|
||||||
129
hosts/komikan/disk.nix
Normal file
129
hosts/komikan/disk.nix
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
disko.devices.disk = {
|
||||||
|
main = {
|
||||||
|
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02"; # for grub MBR
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disk1 = {
|
||||||
|
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "disk1";
|
||||||
|
passwordFile = "/tmp/pass.key";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/mnt/disk1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disk2 = {
|
||||||
|
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi2";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "disk2";
|
||||||
|
passwordFile = "/tmp/pass.key";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/mnt/disk2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disk3 = {
|
||||||
|
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi3";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "disk3";
|
||||||
|
passwordFile = "/tmp/pass.key";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/mnt/disk3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
parity = {
|
||||||
|
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi4";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "parity";
|
||||||
|
passwordFile = "/tmp/pass.key";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/mnt/parity";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.mergerfs
|
||||||
|
pkgs.snapraid
|
||||||
|
];
|
||||||
|
fileSystems."/mnt/pool" = {
|
||||||
|
fsType = "fuse.mergerfs";
|
||||||
|
device = "/mnt/disk*";
|
||||||
|
options = [
|
||||||
|
"cache.files=off"
|
||||||
|
"dropcacheonclose=true"
|
||||||
|
"category.create=eplus"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
environment.etc."snapraid.conf".text = ''
|
||||||
|
parity /mnt/parity/snapraid.parity
|
||||||
|
content /var/snapraid.content
|
||||||
|
content /mnt/disk1/general/snapraid.content
|
||||||
|
content /mnt/disk2/general/snapraid.content
|
||||||
|
content /mnt/disk3/general/snapraid.content
|
||||||
|
data d1 /mnt/disk1/
|
||||||
|
data d2 /mnt/disk2/
|
||||||
|
data d3 /mnt/disk3/
|
||||||
|
exclude /lost+found/
|
||||||
|
'';
|
||||||
|
}
|
||||||
28
hosts/komikan/hardware-configuration.nix
Normal file
28
hosts/komikan/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
|
||||||
|
boot.initrd.kernelModules = [];
|
||||||
|
boot.kernelModules = ["kvm-amd"];
|
||||||
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
||||||
12
hosts/komikan/users/ahnwuoa/default.nix
Normal file
12
hosts/komikan/users/ahnwuoa/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
../../../../user
|
||||||
|
];
|
||||||
|
|
||||||
|
home.username = "ahnwuoa";
|
||||||
|
u.has = {
|
||||||
|
graphical = false;
|
||||||
|
wine = false;
|
||||||
|
prog = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue