NixOS/hosts/miniserver/configuration.nix

135 lines
3.2 KiB
Nix

{ pkgs, ... }: {
imports = [ ./hardware-configuration.nix ../../base.nix ];
my = {
emacs.enable = true;
apps.dictionaries.enable = true;
shell.tools.enable = true;
services.network.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 = true;
enableCron = false;
};
nextcloud = {
enable = true;
enableCron = true;
};
adguardhome.enable = false;
audiobookshelf.enable = false;
bazarr.enable = false;
collabora.enable = true;
flame.enable = true;
flameSecret.enable = true;
go-vod.enable = false;
kavita.enable = false;
lidarr.enable = false;
maloja.enable = true;
mealie.enable = true;
metube.enable = false;
microbin.enable = true;
multi-scrobbler.enable = true;
paperless.enable = true;
postgres.enable = true;
prowlarr.enable = false;
qbittorrent.enable = false;
radarr.enable = false;
ryot.enable = false;
shiori.enable = true;
sonarr.enable = false;
vaultwarden.enable = true;
};
};
fonts.fontconfig.enable = true;
networking = {
hostName = "miniserver";
firewall = {
allowedTCPPorts = [ 2049 ];
allowedUDPPorts = [ 2049 ];
};
};
nix = let
featuresList = [
"nixos-test"
"benchmark"
"big-parallel"
"kvm"
"gccarch-znver3"
"gccarch-skylake"
"gccarch-alderlake"
];
in {
distributedBuilds = true;
buildMachines = [{
hostName = "workstation";
system = "x86_64-linux";
sshUser = "nixremote";
maxJobs = 14;
speedFactor = 1;
supportedFeatures = featuresList;
}];
settings = {
cores = 3;
auto-optimise-store = true;
trusted-users = [ "nixremote" ];
system-features = featuresList;
};
};
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [ "openssl-1.1.1w" ];
};
security = {
rtkit.enable = true;
acme = {
acceptTerms = true;
defaults.email = "CaptainJawZ@outlook.com";
};
};
users = {
groups.nixremote.gid = 555;
users.nixremote = {
isNormalUser = true;
createHome = true;
group = "nixremote";
home = "/var/nixremote/";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICiyTwryzw8CblPldplDpVUkXD9C1fXVgO8LeXdE5cuR root@workstation"
];
};
};
environment.systemPackages = with pkgs; [ wget ];
services = {
btrfs.autoScrub.fileSystems = [ "/mnt/pool" ];
# minidlna = {
# enable = true;
# openFirewall = true;
# settings = {
# inotify = "yes";
# media_dir = [
# "/mnt/pool/glue"
# ];
# };
# };
};
}