1

Add jellyfin+picard containers + firewall settings

This commit is contained in:
2023-04-21 19:33:01 +02:00
parent ad182283ef
commit abc7707d88

View File

@ -59,7 +59,7 @@
loader.efi.efiSysMountPoint = "/boot/efi"; loader.efi.efiSysMountPoint = "/boot/efi";
# Make /tmp volatile # Make /tmp volatile
tmpOnTmpfs = true; tmp.useTmpfs = true;
}; };
security = { security = {
@ -113,6 +113,7 @@
# https://github.com/NixOS/nixpkgs/issues/179486 # https://github.com/NixOS/nixpkgs/issues/179486
i18n.supportedLocales = ["en_US.UTF-8/UTF-8" "de_DE.UTF-8/UTF-8"]; i18n.supportedLocales = ["en_US.UTF-8/UTF-8" "de_DE.UTF-8/UTF-8"];
# TODO: Networking system module
# NOTE: The systemd networking options are not very flexible, so this will be a problem for the laptop. (=> Use IWD for WiFi) # NOTE: The systemd networking options are not very flexible, so this will be a problem for the laptop. (=> Use IWD for WiFi)
systemd = { systemd = {
network = { network = {
@ -277,14 +278,24 @@
firewall = { firewall = {
enable = true; enable = true;
# networking.firewall.checkReversePath = "loose"; # networking.firewall.checkReversePath = "loose";
trustedInterfaces = [
"podman0"
];
allowedTCPPorts = []; allowedTCPPorts = [
22 # SSH
80 # HTTP
443 # HTTPS
5800 # Picard
8096 # Jellyfin
];
allowedTCPPortRanges = []; allowedTCPPortRanges = [];
allowedUDPPorts = [ allowedUDPPorts = [
9918 # Wireguard 9918 # Wireguard
18000 # Anno 1800 18000 # Anno 1800
24727 # AusweisApp2 24727 # AusweisApp2, alternative: programs.ausweisapp.openFirewall
]; ];
allowedUDPPortRanges = []; allowedUDPPortRanges = [];
}; };
@ -411,6 +422,7 @@
"realtime" "realtime"
"gamemode" "gamemode"
"docker" "docker"
"podman"
"adbusers" "adbusers"
"scanner" "scanner"
"lp" "lp"
@ -457,13 +469,15 @@
adb.enable = true; adb.enable = true;
dconf.enable = true; # NOTE: Also needed for Plasma Wayland (GTK theming) dconf.enable = true; # NOTE: Also needed for Plasma Wayland (GTK theming)
fish.enable = true; fish.enable = true;
firejail.enable = true; firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
git.enable = true; git.enable = true;
kdeconnect.enable = true; # Use this instead of HM for firewall setup kdeconnect.enable = true; # Use this instead of HM for firewall setup
neovim.enable = true; neovim.enable = true;
starship.enable = true; starship.enable = true;
thefuck.enable = true; thefuck.enable = true;
xwayland.enable = true; xwayland.enable = true;
# ausweisapp.openFirewall = true; # Directly set port in firewall
}; };
# List services that you want to enable: # List services that you want to enable:
@ -494,13 +508,13 @@
fwupd.enable = true; # Device firmware (I don't think I have any supported devices) fwupd.enable = true; # Device firmware (I don't think I have any supported devices)
locate.enable = true; # Periodically update index locate.enable = true; # Periodically update index
ntp.enable = true; # Clock sync ntp.enable = true; # Clock sync
packagekit.enable = true; # KDE Discover/Gnome Software # packagekit.enable = true; # KDE Discover/Gnome Software
samba = { # samba = {
package = pkgs.samba4Full; # package = pkgs.samba4Full;
enable = true; # enable = true;
openFirewall = true; # openFirewall = true;
}; # };
udev = { udev = {
packages = with pkgs; [ packages = with pkgs; [
@ -517,8 +531,51 @@
virtualisation = { virtualisation = {
docker = { docker = {
enable = false;
autoPrune.enable = true;
};
podman = {
enable = true; enable = true;
autoPrune.enable = true; autoPrune.enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
extraPackages = with pkgs; [];
};
# TODO: This (or even single containers) should have their own system modules
oci-containers.backend = "podman";
oci-containers.containers = {
jellyfin = {
image = "jellyfin/jellyfin";
autoStart = false;
ports = [
"8096:8096/tcp"
];
volumes = [
"jellyfin-cache:/cache:Z"
"jellyfin-config:/config:Z"
"/home/christoph/Videos/Movies:/media/Movies:ro,private"
"/home/christoph/Music/Spotify:/media/Music:ro,private"
];
};
picard = {
image = "mikenye/picard";
autoStart = false;
ports = [
"5800:5800"
];
volumes = [
"picard-config:/config:Z"
"/home/christoph/Music/Spotify:/storage:rw,private"
];
};
}; };
libvirtd.enable = true; libvirtd.enable = true;