mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
let
|
|
cfg = config.mods.server;
|
|
port = 2283;
|
|
in with lib; {
|
|
options.mods.server = {
|
|
videos = {
|
|
enable = mkEnableOption {
|
|
default = false;
|
|
description = "enables jellyfin server";
|
|
};
|
|
};
|
|
|
|
photos = {
|
|
enable = mkEnableOption {
|
|
default = false;
|
|
description = "enables immich server";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
services.jellyfin = mkIf cfg.videos.enable {
|
|
enable = true;
|
|
openFirewall = true;
|
|
user = "${config.mods.user.name}";
|
|
};
|
|
|
|
# mods.server.nginx.ports.photos = port;
|
|
services.nginx.virtualHosts."photos.muon.host" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."/" = {
|
|
proxyPass = "http://10.0.0.3:${toString port}";
|
|
proxyWebsockets = true; # needed if you need to use WebSocket
|
|
extraConfig =
|
|
# required when the server wants to use HTTP Authentication
|
|
"proxy_pass_header Authorization;";
|
|
};
|
|
};
|
|
services.immich = mkIf cfg.photos.enable {
|
|
enable = true;
|
|
openFirewall = true;
|
|
host = "0.0.0.0";
|
|
port = port;
|
|
};
|
|
users.users.immich =
|
|
mkIf cfg.photos.enable { extraGroups = [ "video" "render" ]; };
|
|
};
|
|
}
|