aboutsummaryrefslogtreecommitdiff
path: root/hosts/sagittarius/default.nix
blob: 4b2246ad8d02501de59c675606655165235488e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
  pkgs,
  lib,
  config,
  ...
}:
{
  imports = [
    # Include the results of the hardware scan.
    ./hardware.nix
    ./home.nix
    ./ssh.nix
    ./web
    ./sops.nix
  ];

  boot.loader.grub.device = "/dev/sda";
  time.timeZone = "Europe/Helsinki";

  environment.systemPackages = [ pkgs.rclone ];
  fileSystems."/mnt/storage-box" = {
    device = "storage-box:/";
    fsType = "rclone";
    options =
      let
        opts = lib.concatStringsSep "," [
          "nodev"
          "allow_other"
          "args2env"
          "config=${config.sops.secrets.storage-box-rclone-conf.path}"
          "noauto"
          "x-systemd.automount"
          "x-systemd.idle-timeout=60"
          "x-systemd.device-timeout=5s"
          "x-systemd.mount-timeout=5s"
          "gid=${toString config.users.groups.storage-box.gid}"
        ];
      in
      # No clue whether doing it like this is neccessary, but the wiki does it
      # like this
      [ opts ];
  };

  networking = {
    hostName = "sagittarius";
    useNetworkd = true;
    firewall.allowedTCPPorts = [ 22 ];
  };
  systemd.network = {
    enable = true;
    networks."10-wan" = {
      matchConfig.Name = "enp1s0";
      networkConfig.DHCP = "ipv4";
      address = [ "2a01:4f9:c012:c7a7::/64" ];
      routes = [ { Gateway = "fe80::1"; } ];
    };
  };

  # Set the max amout of space used for logs
  services.journald.extraConfig = ''
    SystemMaxUse=100M
  '';

  services.comin = {
    enable = true;
    remotes = [
      {
        name = "origin";
        url = "https://git.sorre.xyz/miranb/nixos-config.git";
        branches.main.name = "main";
        auth.access_token_path = config.sops.secrets."sorre-forgejo-access-token".path;
      }
    ];
  };

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";

  programs.gnupg.agent = {
    enable = true;
    enableSSHSupport = true;
  };

  users = {
    groups.storage-box = { };
    users = {
      ascella = {
        isNormalUser = true;
        extraGroups = [ "wheel" ];
        openssh.authorizedKeys.keys = [
          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiDCf9LMx9diW5BveEju9w2Xv2kk7qKCyLESLyymzih ihp@ihp-laptop"
          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM4aG8NI25TgjcDevjsY/Y6d3iYsQxSEtIpsqprMHmad osiris@underworld"
        ];
      };
    };
  };

  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It‘s perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  system.stateVersion = "23.05"; # Did you read the comment?
}