144 lines
2.8 KiB
Nix
144 lines
2.8 KiB
Nix
{ pkgs, config, ... }:
|
|
let
|
|
immichDataDir = "/mnt/storage/immich";
|
|
syncthingDataDir = "/mnt/storage/syncthing";
|
|
smtp = {
|
|
host = "horologium.uberspace.de";
|
|
port = 587;
|
|
username = "noreply@${config.networking.domain}";
|
|
from = "noreply@${config.networking.domain}";
|
|
heloName = config.networking.domain;
|
|
};
|
|
in
|
|
{
|
|
services.postgresql.package = pkgs.postgresql_17;
|
|
|
|
modules.storageBoxMounts = {
|
|
${immichDataDir} = {
|
|
path = "/backup/immich";
|
|
user = "u407959";
|
|
};
|
|
|
|
${syncthingDataDir} = {
|
|
path = "/backup/syncthing";
|
|
user = "u407959";
|
|
uid = config.users.users.syncthing.uid;
|
|
gid = config.users.groups.syncthing.gid;
|
|
};
|
|
};
|
|
|
|
modules.services = {
|
|
immich = {
|
|
enable = true;
|
|
subdomain = "img";
|
|
dataDir = immichDataDir;
|
|
storageDirs = [ syncthingDataDir ];
|
|
version = "v1.125.7";
|
|
};
|
|
};
|
|
|
|
services = {
|
|
hastebin = {
|
|
enable = true;
|
|
subdomain = "bin";
|
|
};
|
|
|
|
readeck = {
|
|
enable = true;
|
|
subdomain = "read";
|
|
settings.email = {
|
|
host = smtp.host;
|
|
port = smtp.port;
|
|
username = smtp.username;
|
|
encryption = "starttls";
|
|
from = smtp.from;
|
|
from_noreply = smtp.from;
|
|
};
|
|
};
|
|
|
|
donetick = {
|
|
enable = true;
|
|
subdomain = "do";
|
|
settings = {
|
|
email = {
|
|
host = smtp.host;
|
|
port = smtp.port;
|
|
email = smtp.username;
|
|
};
|
|
};
|
|
};
|
|
|
|
grafana = {
|
|
enable = true;
|
|
subdomain = "graph";
|
|
settings.smtp = {
|
|
enabled = true;
|
|
host = smtp.host;
|
|
port = smtp.port;
|
|
user = smtp.username;
|
|
from_address = smtp.from;
|
|
};
|
|
};
|
|
|
|
owncast = {
|
|
enable = true;
|
|
subdomain = "stream";
|
|
};
|
|
|
|
gtrackmap = {
|
|
enable = true;
|
|
subdomain = "trackmap";
|
|
port = 3001;
|
|
};
|
|
|
|
invidious = {
|
|
enable = true;
|
|
subdomain = "vid";
|
|
};
|
|
|
|
syncthing = {
|
|
enable = true;
|
|
subdomain = "sync";
|
|
dataDir = syncthingDataDir;
|
|
};
|
|
|
|
tailscale.enable = true;
|
|
|
|
gotosocial = {
|
|
enable = true;
|
|
subdomain = "social";
|
|
settings = {
|
|
smtp-host = smtp.host;
|
|
smtp-port = smtp.port;
|
|
smtp-username = smtp.username;
|
|
smtp-from = smtp.from;
|
|
instance-languages = [ "de" "fi" "en" ];
|
|
};
|
|
};
|
|
|
|
vaultwarden = {
|
|
enable = true;
|
|
subdomain = "pw";
|
|
config = {
|
|
YUBICO_CLIENT_ID = 86799;
|
|
SMTP_HOST = smtp.host;
|
|
SMTP_FROM = smtp.from;
|
|
SMTP_FROM_NAME = "Vaultwarden";
|
|
SMTP_USERNAME = smtp.username;
|
|
SMTP_PORT = smtp.port;
|
|
HELO_NAME = smtp.heloName;
|
|
};
|
|
};
|
|
|
|
workout-tracker = {
|
|
enable = true;
|
|
subdomain = "fit";
|
|
};
|
|
|
|
workout-sync = {
|
|
enable = true;
|
|
subdomain = "ws";
|
|
};
|
|
};
|
|
}
|