{ config, pkgs, lib, ... }: let domain = "photos.giugl.io"; in { services.photoprism = { enable = true; package = pkgs.unstablePkgs.photoprism; originalsPath = "/var/lib/private/photoprism/originals"; address = "0.0.0.0"; settings = { PHOTOPRISM_DEFAULT_LOCALE = "en"; PHOTOPRISM_DATABASE_DRIVER = "mysql"; PHOTOPRISM_DATABASE_NAME = "photoprism"; PHOTOPRISM_DATABASE_SERVER = "/run/mysqld/mysqld.sock"; PHOTOPRISM_DATABASE_USER = "photoprism"; PHOTOPRISM_SITE_URL = "https://${domain}"; PHOTOPRISM_SITE_TITLE = "PePrism"; PHOTOPRISM_FFMPEG_ENCODER = "nvidia"; PHOTOPRISM_INIT = "tensorflow"; NVIDIA_VISIBLE_DEVICES = "all"; NVIDIA_DRIVER_CAPABILITIES = "compute,video,utility"; PHOTOPRISM_FFMPEG_BIN = "${pkgs.ffmpeg}/bin/ffmpeg"; }; }; architect.vhost.${domain} = { dnsInterfaces = [ "tailscale" "lan" ]; locations."/" = { port = config.services.photoprism.port; allowLan = true; allow = [ config.architect.networks."tailscale".net ]; proxyWebsockets = true; }; }; }