summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/home/photoprism.nix
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs/home/photoprism.nix')
-rw-r--r--makefu/2configs/home/photoprism.nix150
1 files changed, 0 insertions, 150 deletions
diff --git a/makefu/2configs/home/photoprism.nix b/makefu/2configs/home/photoprism.nix
deleted file mode 100644
index 2f8a86430..000000000
--- a/makefu/2configs/home/photoprism.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ pkgs, lib, ...}:
-# Start | docker-compose up -d
-# Stop | docker-compose stop
-# Update | docker-compose pull
-# Logs | docker-compose logs --tail=25 -f
-# Terminal | docker-compose exec photoprism bash
-# Help | docker-compose exec photoprism photoprism help
-# Config | docker-compose exec photoprism photoprism config
-# Reset | docker-compose exec photoprism photoprism reset
-# Backup | docker-compose exec photoprism photoprism backup -a -i
-# Restore | docker-compose exec photoprism photoprism restore -a -i
-# Index | docker-compose exec photoprism photoprism index
-# Reindex | docker-compose exec photoprism photoprism index -a
-# Import | docker-compose exec photoprism photoprism import
-# -------------------------------------------------------------------
-let
- port = "2347";
- photodir = "/media/cryptX/photos";
- statedir = "/media/cryptX/lib/photoprism/appsrv";
- db-dir = "/media/cryptX/lib/photoprism/mysql";
- internal-ip = "192.168.111.11";
- sec = import <secrets/photoprism.nix>;
-in
-{
- virtualisation.oci-containers.backend = "docker";
-
- services.nginx.virtualHosts."photos" = {
- serverAliases = [
- "photos.lan"
- "foto" "foto.lan"
- "fotos" "fotos.lan"
- ];
-
- locations."/".proxyPass = "http://localhost:${port}";
- locations."/".proxyWebsockets = true;
- extraConfig = ''
- if ( $server_addr != "${internal-ip}" ) {
- return 403;
- }
- '';
- };
-
- systemd.services.workadventure-network = {
- enable = true;
- wantedBy = [ "multi-user.target" ];
- script = ''
- ${pkgs.docker}/bin/docker network create --driver bridge photoprism ||:
- '';
- after = [ "docker.service" ];
- before = [
- "docker-photoprism.service"
- "docker-mysql-photoprism.service"
- ];
- };
-
-
- virtualisation.oci-containers.containers.photoprism = {
- image = "photoprism/photoprism:preview";
- ports = ["${port}:${port}" ];
- volumes = [
- "${photodir}:/photoprism/originals"
- "${statedir}:/photoprism/storage"
- ];
- extraOptions = [
- "--security-opt" "seccomp=unconfined"
- "--security-opt" "apparmor=unconfined"
- "--network=photoprism"
- ];
- environment = {
- PHOTOPRISM_HTTP_PORT = port; # Built-in Web server port
- PHOTOPRISM_HTTP_COMPRESSION = "gzip"; # Improves transfer speed and bandwidth utilization (none or gzip)
- PHOTOPRISM_DEBUG = "false"; # Run in debug mode (shows additional log messages)
- # PHOTOPRISM_PUBLIC = "true"; # No authentication required (disables password protection)
- PHOTOPRISM_READONLY = "false"; # Don't modify originals directory (reduced functionality)
- PHOTOPRISM_EXPERIMENTAL = "true"; # Enables experimental features
- # PHOTOPRISM_DISABLE_WEBDAV = "false"; # Disables built-in WebDAV server
- PHOTOPRISM_DISABLE_SETTINGS = "false"; # Disables Settings in Web UI
- PHOTOPRISM_DISABLE_TENSORFLOW = "false"; # Disables using TensorFlow for image classification
- PHOTOPRISM_DARKTABLE_PRESETS = "false"; # Enables Darktable presets and disables concurrent RAW conversion
- PHOTOPRISM_DETECT_NSFW = "false"; # Flag photos as private that MAY be offensive (requires TensorFlow)
- PHOTOPRISM_UPLOAD_NSFW = "true"; # Allow uploads that MAY be offensive
- PHOTOPRISM_AUTH_MODE = "password";
- PHOTOPRISM_ADMIN_USER = "admin";
- PHOTOPRISM_ADMIN_PASSWORD = "admin";
-
- #PHOTOPRISM_DATABASE_DRIVER = "postgres";
- #PHOTOPRISM_DATABASE_SERVER = "postgres-prism:5432";
- #PHOTOPRISM_DATABASE_NAME = "photoprism";
- #PHOTOPRISM_DATABASE_USER = "photoprism";
- #PHOTOPRISM_DATABASE_PASSWORD = "photoprism";
-
- PHOTOPRISM_DATABASE_DRIVER= "mysql"; # Use MariaDB (or MySQL) instead of SQLite for improved performance
- PHOTOPRISM_DATABASE_SERVER= "mysql-photoprism:3306" ; # MariaDB database server (hostname:port)
- PHOTOPRISM_DATABASE_NAME= "photoprism"; # MariaDB database schema name
- PHOTOPRISM_DATABASE_USER= sec.db.username; # MariaDB database user name
- PHOTOPRISM_DATABASE_PASSWORD= sec.db.password; # MariaDB database user password
-
- PHOTOPRISM_SITE_URL = "http://localhost:2342/"; # Public PhotoPrism URL
- PHOTOPRISM_SITE_TITLE = "PhotoPrism";
- PHOTOPRISM_SITE_CAPTION = "FeMi Fotos";
- PHOTOPRISM_SITE_DESCRIPTION = "Unsere Fotos";
- PHOTOPRISM_SITE_AUTHOR = "FeMi";
- PHOTOPRISM_SPONSOR = "true";
-
- };
- };
-
- virtualisation.oci-containers.containers.mysql-photoprism = {
- image = "mariadb:10.5";
- extraOptions = [
- "--security-opt" "seccomp=unconfined"
- "--security-opt" "apparmor=unconfined"
- "--network=photoprism"
- ];
- ports = [ "3306:3306" ]; # no need to expose the database
- #cmd = [ "mysqld"
- # "--transaction-isolation=READ-COMMITTED"
- # "--character-set-server=utf8mb4"
- # "--collation-server=utf8mb4_unicode_ci"
- # "--max-connections=512"
- # "--innodb-rollback-on-timeout=OFF"
- # "--innodb-lock-wait-timeout=50"
- #];
- volumes= [ "${db-dir}:/var/lib/mysql" ];
- environment = {
- MYSQL_ROOT_PASSWORD = "dickidibutt";
- MYSQL_DATABASE= "photoprism";
- MYSQL_USER = sec.db.username;
- MYSQL_PASSWORD = sec.db.password;
- };
- };
- #virtualisation.oci-containers.containers.postgres-prism = {
- # image = "postgres:12-alpine";
- # ports = [ "5432" ]; # no need to expose the database
- # environment = {
- # POSTGRES_DB = "photoprism";
- # POSTGRES_USER = "photoprism";
- # POSTGRES_PASSWORD = "photoprism";
- # };
- #};
-
- systemd.services.docker-photoprism.serviceConfig = {
- StandardOutput = lib.mkForce "journal";
- StandardError = lib.mkForce "journal";
- };
- systemd.services.docker-mysql-photoprism.serviceConfig = {
- StandardOutput = lib.mkForce "journal";
- StandardError = lib.mkForce "journal";
- };
-}