Cleanup racknerd

This commit is contained in:
iofq 2024-08-04 22:18:19 -05:00
parent 0108b1a575
commit 58d198e530
14 changed files with 96 additions and 297 deletions

View file

@ -26,19 +26,4 @@ in {
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen1
];
};
rknrd = inputs.nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs system pkgs;
host = {
hostName = "rknrd";
inherit (attrs) username;
};
};
modules =
defaultModules
++ [
./configuration.nix
./racknerd/configuration.nix
];
};
}

View file

@ -1,84 +0,0 @@
{
inputs,
pkgs,
config,
...
}: {
imports = [
./hardware-configuration.nix
./minecraft.nix
inputs.ethereum-nix.nixosModules.default
];
environment.systemPackages = with pkgs; [
nfs-utils
vim
inputs.ethereum-nix.packages.${system}.rocketpool
docker-compose
];
environment.interactiveShellInit = ''
alias rp='rocketpool --allow-root'
'';
virtualisation = {
docker = {
enable = true;
};
};
boot.tmp.cleanOnBoot = true;
zramSwap.enable = false;
networking = {
hostName = "rknrd";
nameservers = [
"1.1.1.1"
"8.8.8.8"
];
firewall = {
enable = true;
allowedTCPPorts = [22];
allowedUDPPorts = [];
logRefusedConnections = true;
};
};
services.openssh.enable = true;
services.tailscale.enable = true;
users.users = {
root = {
openssh.authorizedKeys.keys = [''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILU2TUxKyGKoZ68IG4hw23RmxVf72u5K9W0StkgTr0b2 e@t14''];
};
e = {
isNormalUser = true;
extraGroups = ["wheel" "docker"];
openssh.authorizedKeys.keys = [''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILU2TUxKyGKoZ68IG4hw23RmxVf72u5K9W0StkgTr0b2 e@t14''];
};
};
virtualisation.oci-containers.containers = {
signal-api = {
image = "bbernhard/signal-cli-rest-api:latest";
ports = ["100.73.10.99:8080:8080"];
volumes = [
"/root/signal-cli:/home/.local/share/signal-cli"
];
};
};
systemd.timers."signal-upload" = {
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "*:0/5";
Unit = "signal-upload.service";
};
};
systemd.services."signal-upload" = {
script = ''
${pkgs.curl}/bin/curl -X GET -H "Content-Type application/json" 'http://rknrd.tailc353f.ts.net:8080/v1/receive/+14145029897' && ${pkgs.docker}/bin/docker run --rm --env-file=${config.sops.secrets."b2-photos-s3/env".path} -v /root/signal-cli/attachments:/root/data public.ecr.aws/aws-cli/aws-cli s3 mv /root/data/ s3://iofq-photos/signal --endpoint-url=https://s3.us-west-004.backblazeb2.com --recursive
'';
serviceConfig = {
Type = "oneshot";
User = "root";
};
};
security.sudo.wheelNeedsPassword = false;
nix.settings.trusted-users = ["e"];
system.stateVersion = "22.11";
}

View file

@ -1,16 +0,0 @@
{
lib,
modulesPath,
...
}: {
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
boot.loader.grub.device = "/dev/vda";
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
boot.initrd.kernelModules = ["nvme"];
fileSystems."/" = {
device = "/dev/vda1";
fsType = "ext4";
};
swapDevices = [{device = "/dev/vda2";}];
}

View file

@ -1,56 +0,0 @@
{
config,
pkgs,
...
}: {
sops = {
defaultSopsFile = ../../secrets/restic.yaml;
age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
secrets = {
"b2-minecraft/env" = {};
"b2-minecraft/repo" = {};
"b2-minecraft/password" = {};
"b2-photos-s3/env" = {};
};
};
services.restic.backups = {
b2-minecraft = {
initialize = true;
environmentFile = config.sops.secrets."b2-minecraft/env".path;
repositoryFile = config.sops.secrets."b2-minecraft/repo".path;
passwordFile = config.sops.secrets."b2-minecraft/password".path;
paths = [
"/var/lib/minecraft"
];
timerConfig = {
OnCalendar = "00:05";
};
pruneOpts = [
"--keep-daily 3"
"--keep-weekly 1"
"--keep-monthly 1"
];
};
};
services.minecraft-server = {
enable = true;
eula = true;
openFirewall = true;
declarative = true;
package = "${pkgs.minecraft-server}";
serverProperties = {
white-list = true;
server-port = 25565;
gamemode = "survival";
enable-command-block = "true";
motd = "whaa";
max-players = "10";
view-distance = 16;
};
whitelist = {
cjriddz = "cf36e5f7-6e7f-490a-ba76-65016338e7b4";
k359 = "a5ccc07c-144d-4dd0-b07c-48c4d5302b58";
};
};
}

View file

@ -25,7 +25,9 @@
OnCalendar = "01:00";
};
pruneOpts = [
"--keep-last 14"
"--keep-daily 14"
"--keep-monthly 6"
"--keep-yearly 1"
];
};
};

View file

@ -1,4 +1,5 @@
{
config,
pkgs,
attrs,
...
@ -11,8 +12,6 @@ in {
./nano.nix
./backups.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
environment.systemPackages = with pkgs; [
cryptsetup
@ -20,9 +19,16 @@ in {
];
environment.extraInit = "[[ -f ${homeManagerSessionVars} ]] && source ${homeManagerSessionVars} && echo 'x' > /tmp/test";
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
supportedFilesystems = ["zfs"];
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
zfs.forceImportRoot = false;
};
# Networking
networking = {
nameservers = ["1.1.1.1#one.one.one.one"];
hostId = "1185c58e";
networkmanager = {
enable = true;
dns = "systemd-resolved";
@ -35,16 +41,6 @@ in {
logRefusedConnections = true;
};
};
services.resolved = {
enable = true;
fallbackDns = [
"1.1.1.1#one.one.one.one"
];
extraConfig = ''
DNSOverTLS=yes
'';
};
services.tailscale.enable = true;
# Services
virtualisation = {
@ -53,48 +49,59 @@ in {
dockerCompat = true;
};
};
programs.light.enable = true;
security.pam.services.swaylock = {};
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
programs.ssh = {
startAgent = true;
};
services.flatpak.enable = true;
services.dbus.enable = true;
programs.hyprland.enable = true;
xdg.portal = {
enable = true;
xdgOpenUsePortal = false;
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
services.tlp = {
enable = true;
settings = {
WIFI_PWR_ON_BAT = "off";
START_CHARGE_THRESH_BAT0 = 80;
STOP_CHARGE_THRESH_BAT0 = 85;
RADEON_DPM_STATE_ON_AC = "performance";
RADEON_DPM_STATE_ON_BAT = "battery";
RADEON_POWER_PROFILE_ON_AC = "high";
RADEON_POWER_PROFILE_ON_BAT = "low";
programs = {
light.enable = true;
hyprland.enable = true;
ssh = {
startAgent = true;
};
};
services = {
resolved = {
enable = true;
fallbackDns = [
"1.1.1.1#one.one.one.one"
];
extraConfig = ''
DNSOverTLS=yes
'';
};
tailscale.enable = true;
avahi.enable = true; # chromecast
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
flatpak.enable = true;
dbus.enable = true;
services.ratbagd.enable = true; # Logitech
services.keyd = {
enable = true;
keyboards = {
default = {
ids = ["*"];
settings = {
main = {
pause = "timeout(esc, 150, space)";
scrolllock = "layer(shift)";
tlp = {
enable = true;
settings = {
WIFI_PWR_ON_BAT = "off";
START_CHARGE_THRESH_BAT0 = 80;
STOP_CHARGE_THRESH_BAT0 = 85;
};
};
ratbagd.enable = true; # Logitech
keyd = {
enable = true;
keyboards = {
default = {
ids = ["*"];
settings = {
main = {
pause = "timeout(esc, 150, space)";
scrolllock = "layer(shift)";
};
};
};
};
@ -115,6 +122,5 @@ in {
spleen
];
fonts.fontconfig.defaultFonts.monospace = ["UbuntuMono"];
boot.kernelPackages = pkgs.linuxPackages_latest;
system.stateVersion = "22.11";
}