Merge branch 'main' of github.com:wi11-holdsworth/dots
This commit is contained in:
commit
c15cdd66d9
26 changed files with 250 additions and 182 deletions
|
|
@ -12,9 +12,9 @@
|
|||
"immich"
|
||||
"jellyfin"
|
||||
"karakeep"
|
||||
"kavita"
|
||||
"lidarr"
|
||||
"miniflux"
|
||||
"radicale"
|
||||
"nginx"
|
||||
"ntfy-sh"
|
||||
"paperless"
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
"qbittorrent"
|
||||
"radarr"
|
||||
"radicale"
|
||||
"readarr"
|
||||
"sonarr"
|
||||
"syncthing"
|
||||
"vaultwarden"
|
||||
|
|
|
|||
|
|
@ -2,12 +2,11 @@
|
|||
# keep-sorted start
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
# keep-sorted end
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5000";
|
||||
port = 5000;
|
||||
in
|
||||
{
|
||||
imports = [ inputs.copyparty.nixosModules.default ];
|
||||
|
|
@ -20,7 +19,7 @@ in
|
|||
e2dsa = true;
|
||||
e2ts = true;
|
||||
e2vu = true;
|
||||
p = lib.toInt port;
|
||||
p = port;
|
||||
};
|
||||
|
||||
accounts.will.passwordFile = config.age.secrets.copyparty-will.path;
|
||||
|
|
@ -37,7 +36,7 @@ in
|
|||
nginx.virtualHosts."copyparty.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5984";
|
||||
port = 5984;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -12,7 +8,7 @@ in
|
|||
databaseDir = "/srv/couchdb";
|
||||
viewIndexDir = "/srv/couchdb";
|
||||
configFile = "/srv/couchdb";
|
||||
port = lib.toInt port;
|
||||
inherit port;
|
||||
extraConfig = {
|
||||
chttpd = {
|
||||
require_valid_user = true;
|
||||
|
|
@ -41,7 +37,7 @@ in
|
|||
nginx.virtualHosts."couchdb.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,17 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5011";
|
||||
port = 5011;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
flaresolverr = {
|
||||
enable = true;
|
||||
port = lib.toInt port;
|
||||
inherit port;
|
||||
};
|
||||
|
||||
nginx.virtualHosts."flaresolverr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
port = "5004";
|
||||
port = 5004;
|
||||
genSecrets =
|
||||
secrets:
|
||||
lib.genAttrs secrets (secret: {
|
||||
|
|
@ -25,11 +25,13 @@ let
|
|||
# keep-sorted start
|
||||
"immich"
|
||||
"jellyfin"
|
||||
"kavita-api"
|
||||
"lidarr"
|
||||
"miniflux"
|
||||
"paperless"
|
||||
"prowlarr"
|
||||
"radarr"
|
||||
"readarr"
|
||||
"sonarr"
|
||||
# keep-sorted end
|
||||
];
|
||||
|
|
@ -38,90 +40,11 @@ in
|
|||
services = {
|
||||
homepage-dashboard = {
|
||||
enable = true;
|
||||
listenPort = lib.toInt port;
|
||||
listenPort = port;
|
||||
allowedHosts = "homepage-dashboard.fi33.buzz";
|
||||
services = [
|
||||
# keep-sorted start block=yes
|
||||
{
|
||||
"Cloud Services" = [
|
||||
{
|
||||
"copyparty" = {
|
||||
"description" = "Cloud file manager";
|
||||
"icon" = "sh-copyparty.svg";
|
||||
"href" = "https://copyparty.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"CouchDB" = {
|
||||
"description" = "Obsidian sync database";
|
||||
"icon" = "couchdb.svg";
|
||||
"href" = "https://couchdb.fi33.buzz/_utils/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"ntfy" = {
|
||||
"description" = "Notification service";
|
||||
"icon" = "ntfy.svg";
|
||||
"href" = "https://ntfy-sh.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Radicale" = {
|
||||
"description" = "CalDAV/CardDAV service";
|
||||
"icon" = "radicale.svg";
|
||||
"href" = "https://radicale.fi33.buzz";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Syncthing" = {
|
||||
"description" = "Decentralised file synchronisation";
|
||||
"icon" = "syncthing.svg";
|
||||
"href" = "https://syncthing.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"qBittorrent" = {
|
||||
"description" = "BitTorrent client";
|
||||
"icon" = "qbittorrent.svg";
|
||||
"href" = "https://qbittorrent.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Vaultwarden" = {
|
||||
"description" = "Password manager";
|
||||
"icon" = "vaultwarden.svg";
|
||||
"href" = "https://vaultwarden.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Media Management" = [
|
||||
{
|
||||
"Lidarr" = {
|
||||
"description" = "Music collection manager";
|
||||
"icon" = "lidarr.svg";
|
||||
"href" = "https://lidarr.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "lidarr";
|
||||
"url" = "https://lidarr.fi33.buzz/";
|
||||
"key" = "@lidarr@";
|
||||
"enableQueue" = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Prowlarr" = {
|
||||
"description" = "Indexer management tool";
|
||||
"icon" = "prowlarr.svg";
|
||||
"href" = "https://prowlarr.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "prowlarr";
|
||||
"url" = "https://prowlarr.fi33.buzz/";
|
||||
"key" = "@prowlarr@";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Radarr" = {
|
||||
"description" = "Movie collection manager";
|
||||
|
|
@ -148,6 +71,51 @@ in
|
|||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Lidarr" = {
|
||||
"description" = "Music collection manager";
|
||||
"icon" = "lidarr.svg";
|
||||
"href" = "https://lidarr.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "lidarr";
|
||||
"url" = "https://lidarr.fi33.buzz/";
|
||||
"key" = "@lidarr@";
|
||||
"enableQueue" = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Readarr" = {
|
||||
"description" = "Book collection manager";
|
||||
"icon" = "readarr.svg";
|
||||
"href" = "https://readarr.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "readarr";
|
||||
"url" = "https://readarr.fi33.buzz/";
|
||||
"key" = "@readarr@";
|
||||
"enableQueue" = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Prowlarr" = {
|
||||
"description" = "Indexer management tool";
|
||||
"icon" = "prowlarr.svg";
|
||||
"href" = "https://prowlarr.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "prowlarr";
|
||||
"url" = "https://prowlarr.fi33.buzz/";
|
||||
"key" = "@prowlarr@";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"qBittorrent" = {
|
||||
"description" = "BitTorrent client";
|
||||
"icon" = "qbittorrent.svg";
|
||||
"href" = "https://qbittorrent.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
|
|
@ -188,6 +156,18 @@ in
|
|||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Kavita" = {
|
||||
"description" = "Book reader";
|
||||
"icon" = "kavita.svg";
|
||||
"href" = "https://kavita.fi33.buzz/";
|
||||
"widget" = {
|
||||
"type" = "kavita";
|
||||
"url" = "https://kavita.fi33.buzz/";
|
||||
"key" = "@kavita-api@";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Miniflux" = {
|
||||
"description" = "RSS aggregator";
|
||||
|
|
@ -215,6 +195,52 @@ in
|
|||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Services" = [
|
||||
{
|
||||
"copyparty" = {
|
||||
"description" = "Cloud file manager";
|
||||
"icon" = "sh-copyparty.svg";
|
||||
"href" = "https://copyparty.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"CouchDB" = {
|
||||
"description" = "Obsidian sync database";
|
||||
"icon" = "couchdb.svg";
|
||||
"href" = "https://couchdb.fi33.buzz/_utils/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"ntfy" = {
|
||||
"description" = "Notification service";
|
||||
"icon" = "ntfy.svg";
|
||||
"href" = "https://ntfy-sh.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Radicale" = {
|
||||
"description" = "CalDAV/CardDAV service";
|
||||
"icon" = "radicale.svg";
|
||||
"href" = "https://radicale.fi33.buzz";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Syncthing" = {
|
||||
"description" = "Decentralised file synchronisation";
|
||||
"icon" = "syncthing.svg";
|
||||
"href" = "https://syncthing.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Vaultwarden" = {
|
||||
"description" = "Password manager";
|
||||
"icon" = "vaultwarden.svg";
|
||||
"href" = "https://vaultwarden.fi33.buzz/";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Utilities" = [
|
||||
{
|
||||
|
|
@ -226,7 +252,6 @@ in
|
|||
}
|
||||
];
|
||||
}
|
||||
# keep-sorted end
|
||||
];
|
||||
settings = {
|
||||
title = "Mission Control";
|
||||
|
|
@ -237,21 +262,21 @@ in
|
|||
{
|
||||
"Media Streaming" = {
|
||||
style = "row";
|
||||
columns = 4;
|
||||
columns = 3;
|
||||
useEqualHeights = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Services" = {
|
||||
style = "row";
|
||||
columns = 3;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Media Management" = {
|
||||
style = "row";
|
||||
columns = 4;
|
||||
useEqualHeights = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Cloud Services" = {
|
||||
style = "row";
|
||||
columns = 3;
|
||||
useEqualHeights = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
@ -300,7 +325,7 @@ in
|
|||
nginx.virtualHosts."homepage-dashboard.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "2283";
|
||||
port = 2283;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
immich = {
|
||||
enable = true;
|
||||
port = lib.toInt "${port}";
|
||||
inherit port;
|
||||
mediaLocation = "/srv/immich";
|
||||
};
|
||||
|
||||
|
|
@ -28,7 +24,7 @@ in
|
|||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/" = {
|
||||
proxyPass = "http://[::1]:${port}";
|
||||
proxyPass = "http://[::1]:${toString port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
let
|
||||
port = "8096";
|
||||
port = 8096;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -12,7 +12,7 @@ in
|
|||
nginx.virtualHosts."jellyfin.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
let
|
||||
port = "5014";
|
||||
port = 5014;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
karakeep = {
|
||||
enable = true;
|
||||
extraEnvironment = {
|
||||
PORT = port;
|
||||
PORT = toString port;
|
||||
DISABLE_NEW_RELEASE_CHECK = "true";
|
||||
};
|
||||
};
|
||||
|
|
@ -14,7 +14,7 @@ in
|
|||
nginx.virtualHosts."karakeep.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
25
modules/nixos/features/kavita.nix
Normal file
25
modules/nixos/features/kavita.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = 5015;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
kavita = {
|
||||
enable = true;
|
||||
dataDir = "/srv/kavita";
|
||||
settings.Port = port;
|
||||
tokenKeyFile = config.age.secrets.kavita.path;
|
||||
};
|
||||
|
||||
nginx.virtualHosts."kavita.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
age.secrets.kavita.file = ../../../secrets/kavita.age;
|
||||
}
|
||||
|
|
@ -1,23 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5012";
|
||||
port = 5012;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
lidarr = {
|
||||
enable = true;
|
||||
dataDir = "/srv/lidarr";
|
||||
settings.server.port = lib.toInt port;
|
||||
settings.server = {
|
||||
inherit port;
|
||||
};
|
||||
group = "media";
|
||||
};
|
||||
|
||||
nginx.virtualHosts."lidarr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
port = "5010";
|
||||
port = 5010;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -12,7 +12,7 @@ in
|
|||
adminCredentialsFile = config.age.secrets.miniflux-creds.path;
|
||||
config = {
|
||||
BASE_URL = "https://miniflux.fi33.buzz";
|
||||
LISTEN_ADDR = "localhost:${port}";
|
||||
LISTEN_ADDR = "localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ in
|
|||
nginx.virtualHosts."miniflux.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
let
|
||||
port = "5002";
|
||||
port = 5002;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -7,7 +7,7 @@ in
|
|||
enable = true;
|
||||
settings = {
|
||||
base-url = "https://ntfy-sh.fi33.buzz";
|
||||
listen-http = ":${port}";
|
||||
listen-http = ":${toString port}";
|
||||
behind-proxy = true;
|
||||
};
|
||||
};
|
||||
|
|
@ -16,7 +16,7 @@ in
|
|||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${port}";
|
||||
proxyPass = "http://localhost:${toString port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5013";
|
||||
port = 5013;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -13,7 +12,7 @@ in
|
|||
dataDir = "/srv/paperless";
|
||||
database.createLocally = true;
|
||||
passwordFile = config.age.secrets.paperless.path;
|
||||
port = lib.toInt port;
|
||||
inherit port;
|
||||
settings = {
|
||||
PAPERLESS_URL = "https://paperless.fi33.buzz";
|
||||
};
|
||||
|
|
@ -33,7 +32,7 @@ in
|
|||
nginx.virtualHosts."paperless.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5009";
|
||||
port = 5009;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
prowlarr = {
|
||||
enable = true;
|
||||
dataDir = "/srv/prowlarr";
|
||||
settings.server.port = lib.toInt port;
|
||||
settings.server = {
|
||||
inherit port;
|
||||
};
|
||||
};
|
||||
|
||||
nginx = {
|
||||
virtualHosts."prowlarr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${port}";
|
||||
# proxyWebsockets = true;
|
||||
};
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5005";
|
||||
port = 5005;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
qbittorrent = {
|
||||
enable = true;
|
||||
webuiPort = lib.toInt port;
|
||||
webuiPort = port;
|
||||
profileDir = "/srv";
|
||||
group = "media";
|
||||
extraArgs = [
|
||||
|
|
@ -20,7 +16,7 @@ in
|
|||
nginx.virtualHosts."qbittorrent.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5007";
|
||||
port = 5007;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
radarr = {
|
||||
enable = true;
|
||||
dataDir = "/srv/radarr";
|
||||
settings.server.port = lib.toInt port;
|
||||
settings.server = {
|
||||
inherit port;
|
||||
};
|
||||
group = "media";
|
||||
};
|
||||
|
||||
nginx.virtualHosts."radarr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
port = "5003";
|
||||
port = 5003;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -12,8 +12,8 @@ in
|
|||
settings = {
|
||||
server = {
|
||||
hosts = [
|
||||
"0.0.0.0:${port}"
|
||||
"[::]:${port}"
|
||||
"0.0.0.0:${toString port}"
|
||||
"[::]:${toString port}"
|
||||
];
|
||||
};
|
||||
auth = {
|
||||
|
|
@ -30,7 +30,7 @@ in
|
|||
nginx.virtualHosts."radicale.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
33
modules/nixos/features/readarr.nix
Normal file
33
modules/nixos/features/readarr.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
let
|
||||
port = 5016;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
readarr = {
|
||||
enable = true;
|
||||
dataDir = "/srv/readarr";
|
||||
settings.server = {
|
||||
inherit port;
|
||||
};
|
||||
group = "media";
|
||||
};
|
||||
|
||||
# borgmatic.settings = {
|
||||
# source_directories = [ ];
|
||||
# postgresql_databases = [
|
||||
# {
|
||||
# name = "readarr";
|
||||
# hostname = "localhost";
|
||||
# username = "root";
|
||||
# password = "{credential systemd borgmatic-pg}";
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
|
||||
nginx.virtualHosts."readarr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,23 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = "5006";
|
||||
port = 5006;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
sonarr = {
|
||||
enable = true;
|
||||
dataDir = "/srv/sonarr";
|
||||
settings.server.port = lib.toInt port;
|
||||
settings.server = {
|
||||
inherit port;
|
||||
};
|
||||
group = "media";
|
||||
};
|
||||
|
||||
nginx.virtualHosts."sonarr.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
port = "5008";
|
||||
port = 5008;
|
||||
devicesList = [
|
||||
# keep-sorted start block=yes
|
||||
{
|
||||
|
|
@ -45,7 +45,7 @@ in
|
|||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
guiAddress = "0.0.0.0:${port}";
|
||||
guiAddress = "0.0.0.0:${toString port}";
|
||||
openDefaultPorts = true;
|
||||
user = "${userName}";
|
||||
dataDir = "/home/${userName}";
|
||||
|
|
@ -69,7 +69,7 @@ in
|
|||
nginx.virtualHosts."syncthing.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
port = "5001";
|
||||
port = 5001;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -11,7 +11,7 @@ in
|
|||
enable = true;
|
||||
backupDir = "/srv/vaultwarden";
|
||||
config = {
|
||||
rocketPort = "${port}";
|
||||
rocketPort = toString port;
|
||||
domain = "https://vaultwarden.fi33.buzz";
|
||||
signupsAllowed = false;
|
||||
invitationsAllowed = false;
|
||||
|
|
@ -26,7 +26,7 @@ in
|
|||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${port}";
|
||||
proxyPass = "http://localhost:${toString port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
let
|
||||
port = "port";
|
||||
port = 0000;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
|
|
@ -22,7 +22,7 @@ in
|
|||
nginx.virtualHosts."feature.fi33.buzz" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "fi33.buzz";
|
||||
locations."/".proxyPass = "http://localhost:${port}";
|
||||
locations."/".proxyPass = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
BIN
secrets/kavita-api.age
Normal file
BIN
secrets/kavita-api.age
Normal file
Binary file not shown.
BIN
secrets/kavita.age
Normal file
BIN
secrets/kavita.age
Normal file
Binary file not shown.
10
secrets/readarr.age
Normal file
10
secrets/readarr.age
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 qLT+DQ qeJ25W5TGvWY8xc1I5sjjtP/98nGqoRMIFk6xLIbmi8
|
||||
RhUcEjz6mFp6uNVOpOgg6fPyL2cyrZH1ZWJTrax2xOE
|
||||
-> ssh-ed25519 7+xRyQ jhJX/0+ZO+teoM2rUmdyFuI9V+tMe5kQaaHQFxwBGSU
|
||||
fJmXSc/c3lth0cQgx8p/7G0WrnfgioSs8OcRa56B2s0
|
||||
-> ssh-ed25519 LtK9yQ UH9T6lRLG0pi0P84B9Zs/22nCKAoOAwL6KAmj+536U4
|
||||
h2DEqoPLgFqmVZOk/RhAIuifCexqt3ZFsIsCDm5KI3M
|
||||
--- 6FY4tnGR8EIQyCWc3Xa3t8EqwcynoORmZqsp9zWUzZM
|
||||
õ¡ˆÇnÄ<6E>Æ]Z0ñŽ—råTƒªÞi:EÇE!<21>ð™
|
||||
uB{4cüà£fùvÖÞŸÜKÌj^2/`<60>¼
|
||||
|
|
@ -20,6 +20,8 @@ in
|
|||
"copyparty-will.age".publicKeys = users;
|
||||
"immich.age".publicKeys = users;
|
||||
"jellyfin.age".publicKeys = users;
|
||||
"kavita-api.age".publicKeys = users;
|
||||
"kavita.age".publicKeys = users;
|
||||
"lidarr.age".publicKeys = users;
|
||||
"miniflux-creds.age".publicKeys = users;
|
||||
"paperless.age".publicKeys = users;
|
||||
|
|
@ -30,6 +32,7 @@ in
|
|||
"prowlarr.age".publicKeys = users;
|
||||
"radarr.age".publicKeys = users;
|
||||
"radicale.age".publicKeys = users;
|
||||
"readarr.age".publicKeys = users;
|
||||
"sonarr.age".publicKeys = users;
|
||||
"vaultwarden-admin.age".publicKeys = users;
|
||||
# keep-sorted end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue