NixOS/hosts/miniserver/configuration.nix

203 lines
4.2 KiB
Nix

{ ... }:
{
imports = [
./hardware-configuration.nix
../../base.nix
];
my = {
emacs.enable = true;
apps.dictionaries.enable = true;
services = {
network.enable = true;
wireguard.enable = true;
};
enableProxy = true;
shell = {
tools.enable = true;
multimedia.enable = true;
};
dev = {
nix.enable = true;
python.enable = true;
sh.enable = true;
};
units = {
download.enable = true;
stream-dl.enable = true;
};
scripts = {
run.enable = true;
split-dir.enable = true;
download.enable = true;
ffmpreg.enable = true;
ffmpeg4discord.enable = true;
manage-library.enable = true;
pika-list.enable = true;
find-dup-episodes.enable = true;
update-dns.enable = true;
};
servers = {
jellyfin = {
enable = false;
enableCron = false;
enableProxy = true;
hostName = "server";
};
nextcloud = {
enable = true;
enableCron = true;
enableProxy = true;
};
adguardhome.enable = false;
audiobookshelf = {
enable = true;
enableProxy = true;
};
bazarr = {
enable = false;
enableProxy = true;
hostName = "server";
};
collabora = {
enable = true;
enableProxy = true;
};
flame = {
enable = false;
enableProxy = false;
};
flameSecret = {
enable = false;
enableProxy = false;
};
go-vod.enable = false;
homepage = {
enable = true;
enableProxy = true;
};
kavita = {
enable = false;
enableProxy = true;
hostName = "server";
};
lidarr = {
enable = false;
enableProxy = true;
hostName = "server";
};
maloja = {
enable = true;
enableProxy = true;
};
mealie = {
enable = true;
enableProxy = true;
};
metube = {
enable = false;
enableProxy = false;
};
microbin = {
enable = true;
enableProxy = true;
};
multi-scrobbler = {
enable = true;
enableProxy = true;
};
paperless.enable = true;
postgres.enable = true;
prowlarr = {
enable = false;
enableProxy = true;
hostName = "server";
};
qbittorrent.enable = true;
unpackerr.enable = false;
radarr = {
enable = false;
enableProxy = true;
hostName = "server";
};
ryot = {
enable = true;
enableProxy = true;
};
shiori = {
enable = true;
enableProxy = true;
};
sonarr = {
enable = false;
enableProxy = true;
hostName = "server";
};
vaultwarden = {
enable = true;
enableProxy = true;
};
firefly-iii.enable = false;
};
};
networking = {
hostName = "miniserver";
firewall = {
allowedTCPPorts = [ 2049 ];
allowedUDPPorts = [ 2049 ];
};
};
nix =
let
featuresList = [
"nixos-test"
"benchmark"
"big-parallel"
"kvm"
"gccarch-znver3"
"gccarch-skylake"
"gccarch-alderlake"
];
in
{
settings.cores = 3;
buildMachines = [
{
hostName = "workstation";
system = "x86_64-linux";
sshUser = "nixremote";
maxJobs = 14;
speedFactor = 1;
supportedFeatures = featuresList;
}
];
};
nixpkgs = {
config.permittedInsecurePackages = [ "openssl-1.1.1w" ];
hostPlatform = "x86_64-linux";
};
users = {
groups.nixremote.gid = 555;
users.nixremote = {
isNormalUser = true;
createHome = true;
group = "nixremote";
home = "/var/nixremote/";
openssh.authorizedKeys.keyFiles = [ ../../secrets/ssh/ed25519_nixworkstation.pub ];
};
};
services = {
btrfs.autoScrub = {
enable = true;
fileSystems = [ "/" ];
};
minidlna = {
enable = false;
openFirewall = true;
settings = {
inotify = "yes";
media_dir = [ "/mnt/pool/" ];
};
};
};
}