Ayo the pizza here (restructuring)
This commit is contained in:
		
							
								
								
									
										15
									
								
								hosts/marisa/boot.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								hosts/marisa/boot.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
{config, ...}:
 | 
			
		||||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
    initrd.availableKernelModules = [ "xhci_pci" "usb_storage" "usbhid" "uas" "pcie-brcmstb"];
 | 
			
		||||
    loader = {
 | 
			
		||||
      grub.enable = false;
 | 
			
		||||
      generic-extlinux-compatible.enable= true;
 | 
			
		||||
      raspberryPi= {
 | 
			
		||||
        version = 4;
 | 
			
		||||
        firmwareConfig = "dtparam=sd_poll_once=on";
 | 
			
		||||
        enable = true;  
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								hosts/marisa/default.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								hosts/marisa/default.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
{config, pkgs, ...}:
 | 
			
		||||
{
 | 
			
		||||
  imports = 
 | 
			
		||||
  [
 | 
			
		||||
    ./networking.nix
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./boot.nix
 | 
			
		||||
    ./services.nix
 | 
			
		||||
  ];
 | 
			
		||||
  programs.gnupg.agent.enable = pkgs.lib.mkForce false;
 | 
			
		||||
  system.stateVersion = "21.05";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								hosts/marisa/hardware.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								hosts/marisa/hardware.nix
									
									
									
									
									
										Executable 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, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix/store" =
 | 
			
		||||
    { device = "/nix/store";
 | 
			
		||||
      fsType = "none";
 | 
			
		||||
      options = [ "bind" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {
 | 
			
		||||
      device = "/swapfile";
 | 
			
		||||
      priority = 0;
 | 
			
		||||
      size = 10240;
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
 | 
			
		||||
  hardware.firmware = [ pkgs.raspberrypiWirelessFirmware ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								hosts/marisa/networking.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										39
									
								
								hosts/marisa/networking.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
{config, pkgs, ...}:
 | 
			
		||||
{
 | 
			
		||||
  networking = {
 | 
			
		||||
    hostName = "Marisa";
 | 
			
		||||
    firewall = {
 | 
			
		||||
      allowedTCPPorts = [ 22 80 6060 5001 8800 8888 ];
 | 
			
		||||
      allowedUDPPorts = [ 17840 ];
 | 
			
		||||
    };
 | 
			
		||||
    wireless = {
 | 
			
		||||
      enable = false;
 | 
			
		||||
      iwd.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    interfaces = {
 | 
			
		||||
      wlan0 = {
 | 
			
		||||
        useDHCP = false;
 | 
			
		||||
        ipv4.addresses = [ {
 | 
			
		||||
          prefixLength = 24;
 | 
			
		||||
          address = "192.168.0.159";
 | 
			
		||||
        } ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    wireguard.interfaces.wg0 = {
 | 
			
		||||
      ips = [ "10.55.0.2/24" ];
 | 
			
		||||
      listenPort = 17840;
 | 
			
		||||
      privateKeyFile = "/var/wg";
 | 
			
		||||
      peers = [
 | 
			
		||||
        {
 | 
			
		||||
          #Oracle VM1
 | 
			
		||||
          publicKey = "z0Y2VNEWcyVQVSqRHiwmiJ5/0MgSPM+HZfEcwIccSxM=";
 | 
			
		||||
          allowedIPs = [ "10.55.0.0/24" ];
 | 
			
		||||
          endpoint = "weirdnatto.in:17840";
 | 
			
		||||
          persistentKeepalive = 25;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    defaultGateway = "192.168.0.1";
 | 
			
		||||
    nameservers = [ "1.1.1.1" "8.8.8.8" ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										100
									
								
								hosts/marisa/services.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										100
									
								
								hosts/marisa/services.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
{lib, config, pkgs, ...}:
 | 
			
		||||
{
 | 
			
		||||
  services = {
 | 
			
		||||
    openssh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      permitRootLogin = "yes";
 | 
			
		||||
    };
 | 
			
		||||
    vault = {
 | 
			
		||||
      package = pkgs.vault-bin; enable = true;
 | 
			
		||||
      tlsCertFile = "/var/certs/cert.pem";
 | 
			
		||||
      tlsKeyFile = "/var/certs/key.pem";
 | 
			
		||||
      address = "0.0.0.0:8800";
 | 
			
		||||
      extraSettingsPaths = [ /var/vault/vault.hcl ];
 | 
			
		||||
      storageBackend = "postgresql";
 | 
			
		||||
      extraConfig = ''
 | 
			
		||||
        api_addr = "https://127.0.0.1:8800"
 | 
			
		||||
        ui = true
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
    vault-agent = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        vault = {
 | 
			
		||||
          address = "https://10.55.0.2:8800";
 | 
			
		||||
          client_cert = "/var/vault/cert.pem";
 | 
			
		||||
          client_key = "/var/vault/key.pem";
 | 
			
		||||
        };
 | 
			
		||||
        auto_auth = {
 | 
			
		||||
          method = [
 | 
			
		||||
            {
 | 
			
		||||
              "cert" = {
 | 
			
		||||
                name = "Marisa";
 | 
			
		||||
              };
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
        template = [
 | 
			
		||||
          {
 | 
			
		||||
            source = pkgs.writeText "gitea.tpl" ''
 | 
			
		||||
              {{ with secret "kv/systems/Marisa/gitea" }}{{ .Data.data.gitea }}{{ end }}
 | 
			
		||||
            '';
 | 
			
		||||
            destination = "/var/secrets/gitea.key";
 | 
			
		||||
          }
 | 
			
		||||
          {
 | 
			
		||||
            source = pkgs.writeText "wg.tpl" ''
 | 
			
		||||
              {{ with secret "kv/systems/Marisa/wg" }}{{ .Data.data.private }}{{ end }}
 | 
			
		||||
            '';
 | 
			
		||||
            destination = "/var/secrets/wg.key";
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    postgresql = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      port = 6060;
 | 
			
		||||
      enableTCPIP = true;
 | 
			
		||||
      authentication = ''
 | 
			
		||||
        local gitea all ident map=gitea-map
 | 
			
		||||
        host vault all 10.55.0.2/32 md5
 | 
			
		||||
        host all all 192.168.0.110/32 md5
 | 
			
		||||
        '';
 | 
			
		||||
      identMap = ''
 | 
			
		||||
        gitea-map gitea gitea
 | 
			
		||||
        '';
 | 
			
		||||
    };
 | 
			
		||||
    gitea = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      appName = "Natto Tea";
 | 
			
		||||
      rootUrl = "https://git.weirdnatto.in/";
 | 
			
		||||
      cookieSecure = true;
 | 
			
		||||
      httpPort = 5001;
 | 
			
		||||
      database = rec {
 | 
			
		||||
        createDatabase = false;
 | 
			
		||||
        port = 6060;
 | 
			
		||||
        name = "gitea";
 | 
			
		||||
        user = name;
 | 
			
		||||
        passwordFile = "/var/secrets/gitea.key";
 | 
			
		||||
        type = "postgres";
 | 
			
		||||
      };
 | 
			
		||||
      settings = {
 | 
			
		||||
        oauth2_client = {
 | 
			
		||||
          ENABLE_AUTO_REGISTRATION = true;
 | 
			
		||||
          UPDATE_AVATAR = true;
 | 
			
		||||
        };
 | 
			
		||||
        ui = {
 | 
			
		||||
          DEFAULT_THEME="arc-green";
 | 
			
		||||
        };
 | 
			
		||||
        security = {
 | 
			
		||||
          LOGIN_REMEMBER_DAYS = 50;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  users.users.root.openssh.authorizedKeys.keys = [
 | 
			
		||||
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHingN2Aho+KGgEvBMjtoez+W1svl9uVoa4vG0d646j"
 | 
			
		||||
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPX1HDzWpoaOcU8GDEGuDzXgxkCpyeqxRR6gLs/8JgHw"
 | 
			
		||||
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK06ZUa9BKmZ6m+xapBjOAm10OCLzxIm8ais20wQC47m"
 | 
			
		||||
  ];
 | 
			
		||||
  security.pki.certificateFiles = [ ../../cert.pem ];
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user