Compare commits
No commits in common. "e7c479d4330a48c6bcf5f7ee2c6399f2ec9eae55" and "c425b456f139e6920a341c27161a25ea2b8c4112" have entirely different histories.
e7c479d433
...
c425b456f1
|
@ -73,11 +73,6 @@ in {
|
||||||
privatePort = 8080;
|
privatePort = 8080;
|
||||||
};
|
};
|
||||||
|
|
||||||
photoprism = {
|
|
||||||
enable = true;
|
|
||||||
port = 8084;
|
|
||||||
};
|
|
||||||
|
|
||||||
restic-backup = {
|
restic-backup = {
|
||||||
enable = true;
|
enable = true;
|
||||||
repo = "b2:hades-backup-alarsyo";
|
repo = "b2:hades-backup-alarsyo";
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./paperless.nix
|
./paperless.nix
|
||||||
./photoprism.nix
|
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
./postgresql-backup.nix
|
./postgresql-backup.nix
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit
|
|
||||||
(lib)
|
|
||||||
mkEnableOption
|
|
||||||
mkIf
|
|
||||||
mkOption
|
|
||||||
;
|
|
||||||
|
|
||||||
cfg = config.my.services.photoprism;
|
|
||||||
my = config.my;
|
|
||||||
|
|
||||||
domain = config.networking.domain;
|
|
||||||
hostname = config.networking.hostName;
|
|
||||||
fqdn = "${hostname}.${domain}";
|
|
||||||
in {
|
|
||||||
options.my.services.photoprism = let
|
|
||||||
inherit (lib) types;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Photoprism config";
|
|
||||||
|
|
||||||
home = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "/var/lib/photoprism";
|
|
||||||
example = "/var/lib/photoprism";
|
|
||||||
description = "Home for the photoprism service, where data will be stored";
|
|
||||||
};
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.port;
|
|
||||||
default = 2342;
|
|
||||||
example = 8080;
|
|
||||||
description = "Internal port for Photoprism webapp";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
users.users.photoprism = {
|
|
||||||
isSystemUser = true;
|
|
||||||
home = cfg.home;
|
|
||||||
createHome = true;
|
|
||||||
group = "photoprism";
|
|
||||||
};
|
|
||||||
users.groups.photoprism = {};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts = {
|
|
||||||
"photoprism.${domain}" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = fqdn;
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
# FIXME: hardcoded tailscale IP
|
|
||||||
{
|
|
||||||
addr = "100.80.61.67";
|
|
||||||
port = 443;
|
|
||||||
ssl = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "100.80.61.67";
|
|
||||||
port = 80;
|
|
||||||
ssl = false;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString cfg.port}";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.acme.certs.${fqdn}.extraDomainNames = ["photoprism.${domain}"];
|
|
||||||
|
|
||||||
my.services.restic-backup = mkIf cfg.enable {
|
|
||||||
paths = [
|
|
||||||
cfg.home
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in a new issue