homepage: audiobookshelf init
This commit is contained in:
parent
96e5a4b8ca
commit
8d70d160cf
@ -1,5 +1,6 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
|
setup = import ./servers/base.nix { inherit lib config; };
|
||||||
serviceBase = {
|
serviceBase = {
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "piracy";
|
group = "piracy";
|
||||||
@ -43,7 +44,7 @@ in {
|
|||||||
./servers/adguardhome.nix
|
./servers/adguardhome.nix
|
||||||
./servers/paperless.nix
|
./servers/paperless.nix
|
||||||
./servers/postgres.nix
|
./servers/postgres.nix
|
||||||
(import ./servers/audiobookshelf.nix { inherit lib config proxy; })
|
(import ./servers/audiobookshelf.nix { inherit lib config proxy setup; })
|
||||||
(import ./servers/bazarr.nix {
|
(import ./servers/bazarr.nix {
|
||||||
inherit lib config serviceBase proxyReverse;
|
inherit lib config serviceBase proxyReverse;
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
{ lib, config, proxy, ... }: {
|
{ lib, config, proxy, setup, ... }:
|
||||||
options.my.servers.audiobookshelf.enable = lib.mkEnableOption "enable";
|
let cfg = config.my.servers.audiobookshelf;
|
||||||
|
in {
|
||||||
|
options.my.servers.audiobookshelf =
|
||||||
|
setup.mkServerOptions "audiobookshelf" "audiobooks" 5687;
|
||||||
config = lib.mkIf config.my.servers.audiobookshelf.enable {
|
config = lib.mkIf config.my.servers.audiobookshelf.enable {
|
||||||
services = {
|
services = {
|
||||||
audiobookshelf = {
|
audiobookshelf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "piracy";
|
group = "piracy";
|
||||||
port = 5687;
|
port = cfg.port;
|
||||||
};
|
};
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts."audiobooks.${config.my.domain}" = proxy {
|
virtualHosts."${cfg.host}" = proxy {
|
||||||
"/" = {
|
"/" = {
|
||||||
proxyPass = "http://${config.my.localhost}:${
|
proxyPass = cfg.local;
|
||||||
toString config.services.audiobookshelf.port
|
|
||||||
}";
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|||||||
23
modules/servers/base.nix
Normal file
23
modules/servers/base.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
mkServerOptions = name: subdomain: port: {
|
||||||
|
enable = lib.mkEnableOption "enable";
|
||||||
|
port = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = port;
|
||||||
|
};
|
||||||
|
host = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "${subdomain}.${config.my.domain}";
|
||||||
|
};
|
||||||
|
url = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "https://${config.my.servers.${name}.host}";
|
||||||
|
};
|
||||||
|
local = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "http://${config.my.localhost}:${toString port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in { inherit mkServerOptions; }
|
||||||
@ -3,11 +3,46 @@ let port = 8082;
|
|||||||
in {
|
in {
|
||||||
options.my.servers.homepage.enable = lib.mkEnableOption "enable";
|
options.my.servers.homepage.enable = lib.mkEnableOption "enable";
|
||||||
config = lib.mkIf config.my.servers.homepage.enable {
|
config = lib.mkIf config.my.servers.homepage.enable {
|
||||||
# sops.secrets.homepage.sopsFile = ../../secrets/env.yaml;
|
sops.secrets.homepage.sopsFile = ../../secrets/env.yaml;
|
||||||
services = {
|
services = {
|
||||||
homepage-dashboard = {
|
homepage-dashboard = {
|
||||||
enable = true;
|
enable = true;
|
||||||
listenPort = port;
|
listenPort = port;
|
||||||
|
environmentFile = config.sops.secrets.homepage.path;
|
||||||
|
settings = {
|
||||||
|
background =
|
||||||
|
"https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80";
|
||||||
|
};
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
resources = {
|
||||||
|
cpu = true;
|
||||||
|
cputemp = true;
|
||||||
|
units = "metric";
|
||||||
|
disk = "/";
|
||||||
|
memory = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
search = {
|
||||||
|
provider = [ "brave" "bing" "google" ];
|
||||||
|
target = "_blank";
|
||||||
|
showSearchSuggestions = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
services = [{
|
||||||
|
"Multimedia" = [{
|
||||||
|
Audiobookshelf = lib.mkIf config.my.servers.audiobookshelf.enable {
|
||||||
|
href = config.my.servers.audiobookshelf.url;
|
||||||
|
widget = {
|
||||||
|
type = "audiobookshelf";
|
||||||
|
url = config.my.servers.audiobookshelf.local;
|
||||||
|
key = "{{HOMEPAGE_VAR_AUDIOBOOKSHELF}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}];
|
||||||
};
|
};
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@ -7,6 +7,7 @@ multi-scrobbler: ENC[AES256_GCM,data:4KENPA2BoCgBmlBkGrOzI7AOxwtpPjuBHi92XqbQzc3
|
|||||||
vaultwarden: ENC[AES256_GCM,data:BH+G8FmYylTbOhzZy6T+sW0q2myJC2zpd/SrtG5WC7N5fmV++X4h+6/tU5dFv4owIOLm/13oGrkT/KOWkF2wwQ7qeQQ8bsyloEigNBMW6d7/ihXZtdtYid1HQrvc6U+Sjl8CPjInHz5j9fy5ouMrmDCGVIYdNrDzFW8AYn7KFLIa3c7oCWMTBCOeGS5rD55GSwy5y4AvBx7Hj9xnZmGG2cnzt5CR9hr/fnZhBTcPxquUZw==,iv:CxDdtWC7zKJZ/Ikq5fV33AT6MYx+pbAGI0Cy6I1fcyo=,tag:q8w4maD3vXTdxCLZ7qbCjg==,type:str]
|
vaultwarden: ENC[AES256_GCM,data:BH+G8FmYylTbOhzZy6T+sW0q2myJC2zpd/SrtG5WC7N5fmV++X4h+6/tU5dFv4owIOLm/13oGrkT/KOWkF2wwQ7qeQQ8bsyloEigNBMW6d7/ihXZtdtYid1HQrvc6U+Sjl8CPjInHz5j9fy5ouMrmDCGVIYdNrDzFW8AYn7KFLIa3c7oCWMTBCOeGS5rD55GSwy5y4AvBx7Hj9xnZmGG2cnzt5CR9hr/fnZhBTcPxquUZw==,iv:CxDdtWC7zKJZ/Ikq5fV33AT6MYx+pbAGI0Cy6I1fcyo=,tag:q8w4maD3vXTdxCLZ7qbCjg==,type:str]
|
||||||
dns: ENC[AES256_GCM,data:eQACe2GRS0ZHyszFkZDG1CeJJZDe/0eXNnurujdv5VR5QQJjYRAQuJVzC3XgelXoWeIQdtW4IfpXTv7xaGuhEzPgsPm4hAdEKosNs6h0ZGg8FG73NSdMWw==,iv:n3i4Ll24+a82aKiRIJgMWLko1B2Lk7bLnpmUevBoHGA=,tag:bnZzVfRUSpZFvF2T6pMtsQ==,type:str]
|
dns: ENC[AES256_GCM,data:eQACe2GRS0ZHyszFkZDG1CeJJZDe/0eXNnurujdv5VR5QQJjYRAQuJVzC3XgelXoWeIQdtW4IfpXTv7xaGuhEzPgsPm4hAdEKosNs6h0ZGg8FG73NSdMWw==,iv:n3i4Ll24+a82aKiRIJgMWLko1B2Lk7bLnpmUevBoHGA=,tag:bnZzVfRUSpZFvF2T6pMtsQ==,type:str]
|
||||||
cloudflare-api: ENC[AES256_GCM,data:LDlxI/jJ0iRf4aVzsVDXfUFgidMsCtUmW24fcLTYyEiu82PG1p4Q3jt6xL/yUKHSXpNpDhfnuBx+iwT9Myo=,iv:mMdjsfev3yHnk99nPVWeTyR0CfVXTzVDFziDfnq4Ldw=,tag:pCLcNwprdtHLsSUcZOCHVw==,type:str]
|
cloudflare-api: ENC[AES256_GCM,data:LDlxI/jJ0iRf4aVzsVDXfUFgidMsCtUmW24fcLTYyEiu82PG1p4Q3jt6xL/yUKHSXpNpDhfnuBx+iwT9Myo=,iv:mMdjsfev3yHnk99nPVWeTyR0CfVXTzVDFziDfnq4Ldw=,tag:pCLcNwprdtHLsSUcZOCHVw==,type:str]
|
||||||
|
homepage: ENC[AES256_GCM,data:4pOj1iOYaqD45yN3O7fgpWFFLZiWu1g9PPF0lmOlEUfXTS9PyZMqC2nLWIVjg3hXsdsa9fXKeuCZIJDDztWZ2ilWN1oTuzji1BCOXmV9aOwtCZ1pOhksVB7DFEdHX81fQ9SOc0LkU7mmx5EcdmfG+hHyiJjw0SIZJt0OUIixrRgz/mGv6LbyCTp6n1h+wUZGDYK/U73DQno35qV1R5/INxYsgzqOkrvw95gd+lEgDSzDGYd9R4XqQfM7jL8eqpHfzF9KigtbUeoUFOua/nt1HLmoHr++GAt96/9M5G6b,iv:ikgVgfMfrWVicaswSbHO3f7lLwm6A36yXFZxQZGtBwE=,tag:tW1gldIVIPsTZiE/0jXw6Q==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
@ -49,8 +50,8 @@ sops:
|
|||||||
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
|
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
|
||||||
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
|
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-07-05T19:17:53Z"
|
lastmodified: "2024-07-06T02:35:26Z"
|
||||||
mac: ENC[AES256_GCM,data:vdIXGAUjuEc0W77Gzn+Aqv8HAepvXco+25OsiILhBA7sQwdOc+OSoFYy9jVjPnpJ8nWUL0Cm8ZnTbmg1+m7L9nWroenVaf6p/BkNLB+UvOc1gwMkEfik698rQr31urPWReDk5TKmg5h2yyGLVL09AUFcJpkKkjyCttelFCzbyKE=,iv:41wHWRpzDOTtff5HvWF8UehF5CvXLA8+zl38pBr9PBU=,tag:vP60YEpnTQY4Eb1hOyeU8A==,type:str]
|
mac: ENC[AES256_GCM,data:wO5qwIr4IDpHUIQHJMxyzkD+9oBLVSKeut8Vi7KwG5ktBeMIPOyFh4fiRzCuMe74CovQLlUVlE1B3p28oO3azIgdoAMaotRkfsmtQDkVbuWX09H1qkjhwt4WvWMhTDT8Ov39HLMiGYrjohdh8siBbiXBDi+j2W0l73okDFeKv6M=,iv:cPwUVpG1mw6SZLFZpn9t6aF5rvlpuiIiAV+yiyBdcw0=,tag:ENdefW17cQruvKu3eGN9yg==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.8.1
|
version: 3.8.1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user