{ lib, modulesPath, pkgs, ... }: let port = 2342; in { services.photoprism = { enable = true; port = port; settings = { PHOTOPRISM_DEFAULT_LOCALE = "fr"; PHOTOPRISM_ADMIN_USERNAME = "admin"; PHOHOPRISM_SITE_URL = "https://photoprism.cgiga.fr"; PHOTOPRISM_SITE_CAPTION = "PhotoPrism"; # DB access config PHOTOPRISM_DATABASE_DRIVER = "mysql"; PHOTOPRISM_DATABASE_NAME = "photoprism"; PHOTOPRISM_DATABASE_SERVER = "/run/mysqld/mysqld.sock"; PHOTOPRISM_DATABASE_USER = "photoprism"; }; originalsPath = "/data/photos"; address = "localhost"; #importPath = "/photoprism/imports"; passwordFile = "/passwords/photoprism"; }; services.mysql = { enable = true; dataDir = "/data/mysql"; package = pkgs.mariadb; ensureDatabases = [ "photoprism" ]; ensureUsers = [{ name = "photoprism"; ensurePermissions = { "photoprism.*" = "ALL PRIVILEGES"; }; }]; }; services.nginx.virtualHosts."photoprism.cgiga.fr" = { enableACME = true; forceSSL = true; serverAliases = []; locations."/" = { proxyPass = "http://localhost:${toString port}/"; proxyWebsockets = true; }; }; }