{ pkgs, ... }:

{
  services = {
    photoprism = {
      enable = true;
      port = 2342;
      settings = {
        PHOTOPRISM_DEFAULT_LOCALE = "fr";
        PHOTOPRISM_ADMIN_USERNAME = "admin";
        PHOHOPRISM_SITE_URL = "https://photoprism.lab.dgnum.eu";
        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";
    };

    mysql = {
      enable = true;
      dataDir = "/data/mysql";
      package = pkgs.mariadb;
      ensureDatabases = [ "photoprism" ];
      ensureUsers = [
        {
          name = "photoprism";
          ensurePermissions = {
            "photoprism.*" = "ALL PRIVILEGES";
          };
        }
      ];
    };

    nginx.virtualHosts."photoprism.lab.dgnum.eu" = {
      enableACME = true;
      forceSSL = true;
      serverAliases = [ ];
      locations."/" = {
        proxyPass = "http://localhost:2342/";
        proxyWebsockets = true;
      };
    };
  };
}