nixcfg/hosts/mauville/default.nix

171 lines
3.4 KiB
Nix
Raw Normal View History

2024-03-12 22:14:08 -04:00
# Custom desktop with AMD Ryzen 5 2600, 16GB RAM, AMD Rx 6700, and 1TB SSD + 2TB HDD.
{
2024-04-07 22:16:33 -04:00
config,
lib,
pkgs,
2024-04-07 22:16:33 -04:00
...
}: let
archiveDirectory = "/mnt/Archive";
domain = "raffauflabs.com";
mediaDirectory = "/mnt/Media";
in {
imports = [
./filesystems.nix
2024-05-27 21:39:30 -04:00
./hardware.nix
./home.nix
];
age.secrets = {
cloudflare.file = ../../secrets/cloudflare.age;
2024-06-25 21:47:48 -04:00
lastfmId = {
owner = "navidrome";
file = ../../secrets/lastFM/apiKey.age;
};
lastfmSecret = {
owner = "navidrome";
file = ../../secrets/lastFM/secret.age;
2024-06-25 21:47:48 -04:00
};
spotifyId = {
owner = "navidrome";
file = ../../secrets/spotify/clientId.age;
2024-07-04 21:03:49 -04:00
};
spotifySecret = {
owner = "navidrome";
file = ../../secrets/spotify/clientSecret.age;
};
};
2024-06-28 21:07:20 -04:00
boot.loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
};
2024-06-28 21:07:20 -04:00
networking.hostName = "mauville";
2024-06-30 23:01:57 -04:00
services = {
samba = {
enable = true;
openFirewall = true;
securityType = "user";
shares = {
Media = {
2024-06-07 13:14:34 -04:00
browseable = "yes";
comment = "Media @ ${config.networking.hostName}";
path = mediaDirectory;
"read only" = "no";
"guest ok" = "yes";
"create mask" = "0755";
"directory mask" = "0755";
};
Archive = {
2024-06-07 13:14:34 -04:00
browseable = "yes";
comment = "Archive @ ${config.networking.hostName}";
path = archiveDirectory;
"create mask" = "0755";
"directory mask" = "0755";
2024-06-07 13:14:34 -04:00
"guest ok" = "yes";
"read only" = "no";
};
};
};
samba-wsdd = {
enable = true;
openFirewall = true;
};
};
system.stateVersion = "23.11";
zramSwap.memoryPercent = 100;
ar = {
apps = {
2024-06-28 21:07:20 -04:00
firefox.enable = true;
nicotine-plus.enable = true;
podman.enable = true;
steam.enable = true;
virt-manager.enable = true;
};
base.enable = true;
desktop = {
greetd = {
enable = true;
autologin = {
enable = true;
user = "aly";
};
};
hyprland.enable = true;
steam.enable = true;
};
users = {
aly = {
enable = true;
password = "$y$j9T$SHPShqI2IpRE101Ey2ry/0$0mhW1f9LbVY02ifhJlP9XVImge9HOpf23s9i1JFLIt9";
};
dustin = {
enable = true;
password = "$y$j9T$3mMCBnUQ.xjuPIbSof7w0.$fPtRGblPRSwRLj7TFqk1nzuNQk2oVlgvb/bE47sghl.";
};
};
services = {
syncthing = {
enable = true;
syncMusic = true;
musicPath = "${mediaDirectory}/Music";
};
tailscale.enable = true;
};
};
raffauflabs = {
inherit domain;
enable = true;
containers = {
oci = {
audiobookshelf.enable = true;
freshRSS.enable = true;
plexMediaServer.enable = true;
transmission.enable = true;
};
};
services = {
ddclient = {
enable = true;
passwordFile = config.age.secrets.cloudflare.path;
protocol = "cloudflare";
};
forgejo.enable = true;
navidrome = {
enable = true;
lastfm = {
idFile = config.age.secrets.lastfmId.path;
secretFile = config.age.secrets.lastfmSecret.path;
};
spotify = {
idFile = config.age.secrets.spotifyId.path;
secretFile = config.age.secrets.spotifySecret.path;
};
};
};
};
}