Radish alpha
r
rad:z254T5p17bdFPmzfDojsdjo4HjpoZ
Radicle Infrastructure as Code (NixOS, OpenTofu, …)
Radicle
Git
radicle-infra os host dev seed files.nix
let
  name = {
    xyz = "files.radicle.xyz";
    dev = "files.radicle.dev";
  };
in {
  fileSystems."/var/www/${name.dev}" = {
    device = "/dev/disk/by-id/scsi-0HC_Volume_30083854";
    fsType = "ext4";
    options = ["discard" "defaults"];
  };

  services.nginx.virtualHosts.${name.xyz} = {
    globalRedirect = name.dev;
    redirectCode = 302;
    enableACME = true;
    forceSSL = true;
    serverName = name.xyz;
    extraConfig = ''
      add_header 'Access-Control-Allow-Origin' '*';
    '';
  };

  services.nginx.virtualHosts.${name.dev} = {
    root = "/var/www/${name.dev}";
    extraConfig = ''
      add_header 'Access-Control-Allow-Origin' '*';
      autoindex on;
    '';
    enableACME = true;
    forceSSL = true;
    serverName = name.dev;
  };

  users.users = {
    rudolfs = {
      isNormalUser = true;
      createHome = true;
      home = "/home/rudolfs";
      description = "Rudolfs";
      uid = 1003;
      openssh.authorizedKeys.keys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPueml1FxzjvwbD7vRZfwoaoyuxLy0L+WLBwSNiVoJe5"
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMTYHe+FdhR0YUTPfl26z6nxnDO1+R+/fjYH4IpnH4qC" # recovered from files.radicle.xyz
      ];
    };

    sebastian = {
      enable = false;
      isNormalUser = true;
      createHome = true;
      home = "/home/sebastian";
      description = "Sebastian";
      uid = 1004;
      openssh.authorizedKeys.keys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFw+wCPZUh8OndhgavJMSZluorVvzJjz22PH81XrkvIu"
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKU7IHRsae2q1/qd8NaWxfGhPEFGHwK1dcxvSjNdttjb" # recovered from files.radicle.xyz
      ];
    };

    lars = {
      isNormalUser = true;
      createHome = true;
      home = "/home/lars";
      description = "Lars";
      uid = 1005;
      openssh.authorizedKeys.keys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBppC96N69P8CxDm1jJhcutHLKWxJG4ew4R5b1A4WgKs"
      ];
    };

    levitte = {
      isNormalUser = true;
      createHome = true;
      home = "/home/levitte";
      description = "Richard Levitte";
      uid = 1006;
      openssh.authorizedKeys.keys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHxmgD3GmoPY/y9LZy51e5V4pTS87EPjKhOt8yQXUuW6"
      ];
    };

    daniel = {
      isNormalUser = true;
      createHome = true;
      home = "/home/daniel";
      description = "Daniel Norman";
      uid = 1007;
      openssh.authorizedKeys.keys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIEDJp1ceENURICK21NtcamG0EwDBIWxnHbYdHy6cANp"
      ];
    };
  };
}