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";
# Make /tmp volatile
tmpOnTmpfs = true;
tmp.useTmpfs = true;
};
security = {
@ -113,6 +113,7 @@
# https://github.com/NixOS/nixpkgs/issues/179486
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)
systemd = {
network = {
@ -277,14 +278,24 @@
firewall = {
enable = true;
# networking.firewall.checkReversePath = "loose";
trustedInterfaces = [
"podman0"
];
allowedTCPPorts = [];
allowedTCPPorts = [
22 # SSH
80 # HTTP
443 # HTTPS
5800 # Picard
8096 # Jellyfin
];
allowedTCPPortRanges = [];
allowedUDPPorts = [
9918 # Wireguard
18000 # Anno 1800
24727 # AusweisApp2
24727 # AusweisApp2, alternative: programs.ausweisapp.openFirewall
];
allowedUDPPortRanges = [];
};
@ -411,6 +422,7 @@
"realtime"
"gamemode"
"docker"
"podman"
"adbusers"
"scanner"
"lp"
@ -457,13 +469,15 @@
adb.enable = true;
dconf.enable = true; # NOTE: Also needed for Plasma Wayland (GTK theming)
fish.enable = true;
firejail.enable = true;
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
git.enable = true;
kdeconnect.enable = true; # Use this instead of HM for firewall setup
neovim.enable = true;
starship.enable = true;
thefuck.enable = true;
xwayland.enable = true;
# ausweisapp.openFirewall = true; # Directly set port in firewall
};
# 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)
locate.enable = true; # Periodically update index
ntp.enable = true; # Clock sync
packagekit.enable = true; # KDE Discover/Gnome Software
# packagekit.enable = true; # KDE Discover/Gnome Software
samba = {
package = pkgs.samba4Full;
enable = true;
openFirewall = true;
};
# samba = {
# package = pkgs.samba4Full;
# enable = true;
# openFirewall = true;
# };
udev = {
packages = with pkgs; [
@ -517,8 +531,51 @@
virtualisation = {
docker = {
enable = false;
autoPrune.enable = true;
};
podman = {
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;