Compare commits
4 commits
c916eaea89
...
c5d619e4b9
| Author | SHA1 | Date | |
|---|---|---|---|
| c5d619e4b9 | |||
| fe5b21c7a2 | |||
| a50f96c1e5 | |||
| 6e6e3d9757 |
3 changed files with 29 additions and 34 deletions
|
|
@ -58,6 +58,7 @@
|
|||
name = "storage";
|
||||
gid = 491729;
|
||||
members = [
|
||||
config.services.navidrome.user
|
||||
"slskd"
|
||||
"wrtagweb"
|
||||
"bandcamp-collection-downloader"
|
||||
|
|
@ -73,20 +74,27 @@
|
|||
};
|
||||
};
|
||||
|
||||
services.gonic = {
|
||||
services.navidrome = {
|
||||
enable = true;
|
||||
settings = {
|
||||
music-path = [ "/data/music" ];
|
||||
podcast-path = [ "/data/podcast" ];
|
||||
playlists-path = [ "/data/playlists" ];
|
||||
BaseUrl = "https://music.escapeangle.com";
|
||||
MusicFolder = "/data/music";
|
||||
DataFolder = "/data/navidrome";
|
||||
EnableInsightsCollector = false;
|
||||
AutoTranscodeDownload = true;
|
||||
EnableGravatar = true;
|
||||
EnableTranscodingConfig = true;
|
||||
FFmpegPath = pkgs.ffmpeg;
|
||||
IgnoredArticles = "The El La Los Las Le Les Os As O A De";
|
||||
};
|
||||
environmentFile = config.sops.secrets.navidromeSecrets.path;
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."music.escapeangle.com" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:4747";
|
||||
proxyPass = "http://localhost:${toString config.services.navidrome.settings.Port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
|
@ -97,10 +105,7 @@
|
|||
|
||||
services.wrtagweb = {
|
||||
enable = true;
|
||||
envFile = config.sops.secrets.wrtagwebEnvFile.path;
|
||||
settings = {
|
||||
log-level = "DEBUG";
|
||||
};
|
||||
settingsFile = config.sops.secrets.wrtagwebConfigFile.path;
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."tag.escapeangle.com" = {
|
||||
|
|
@ -133,7 +138,10 @@
|
|||
slskdEnvFile = {
|
||||
owner = config.services.slskd.user;
|
||||
};
|
||||
wrtagwebEnvFile = {
|
||||
navidromeSecrets = {
|
||||
owner = config.services.navidrome.user;
|
||||
};
|
||||
wrtagwebConfigFile = {
|
||||
owner = "wrtagweb";
|
||||
};
|
||||
bandcampcdCookieFile = {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ storageboxKey: ENC[AES256_GCM,data:uWDkiWIk3OePRfoaqjllVlRVzW5+ryE4sIOs8qm6cS8JN
|
|||
storageboxCryptKey: ENC[AES256_GCM,data:ryYOzFvdPaVkOHmypYbqw+KU6aB2OQutLw==,iv:FL4c7P36qxYR1KJlg7t0dvFHlKGMIrTlQG+CDkeJu9U=,tag:Ia4mhV9Ed/m1rRMCNnHqXw==,type:str]
|
||||
slskdEnvFile: ENC[AES256_GCM,data:K1S1PXQMiBoEdbuM/NTBUYRrUSnAC/KBhm/PFzoCJATiLLPsstzgqzbe9vG8tnULb2driAH4Ytd03cmROp30V+9vW6J9eyCofWySWZNEYriRfY1y7y5AR8W13zQL0FGZOewUy/1T7YRvN8FjZFh4n7S3c0GREX3FSSNrmaHwOqgueDs=,iv:VziNMRpC2clhFyOMG8LRReMGUxhYqjUaZeA8gh599aM=,tag:H1tQBZ8nSgATSJB6nFSdlA==,type:str]
|
||||
bandcampcdCookieFile: ENC[AES256_GCM,data:vHw7utB2mAUiys+zBNpGDW9URdSMkWbvv0bZyNUgbDwHkg0ZkbxHBbnspbU4gM5AmUc0OPKjgoqaLEfy+mrylfyXxdKyVlLWGVDwH/9SjsgLjNWBnZOfS0/JN0h8nD9DDfQ9+KVKwfnndIBDwc3Qr+/uQe88JOWeN27ZZoqMXAA7y92aHAn/cdjV9opJL3zq2Gk9ZSjW6pX0W382/+P2d+n5pvnJCGaVcz6NqYj36V7eu+jqtCdpN0ugb7bEQLBEPxN6vDkB1EaWiuI+JXUqPyAlyRqH/9D9IKFu+HWVjryz6WILkJ8rpAEKUtgr4DUDgW/ukTp8/gCe/w126YljuGYj283WYZOTJQHnNdqZFur1qmIosSRLzw4atnD1CAEpZzHFXGz19wMk5+U3OkPQkC/PxmzhqQlyKw7JQ8rNu+WTcHmF3YqYZjtPj1aayXxLqQ9IbZOwXwa0BLRZX7FOFJz/znQa7kR2VE5/Q8vbYA3sz0gBQiIcl8VSzGtQlVM7K+TtkiUSA4DwKH+deSlUnjauIsLldENlbOWwDdm+ckdIRUUuIXiHRq9VM+1UPJdxLGScsPUgsIMZckIkdcEXDyBo3HPdwvQ0lX2msqTIyJxgBMyvSC37Frb0l7hiE6j5HndLv0nfT8krik12WpfR9PKjJqy6kIl3fwSwTqNHA7yPeQKHR8QizGXmkwxEBtsYufKE0Oi1u7VUwwyJe9IU2Gkr0TQYiHo7Glg0lNtkrpPIM+hOjxJJE2MVRe+S117RluvvfEjAmEhyb9cjW+TAw3kQttwO2vMk+RHV3mFF5G2/0tmRbvpbou68eFDDOBQ8ILrUo35GuR8ziPXJeJ+5EuCgePGavEP4qX4FX/GpnMEo85b6m5Vow5EOu8dakHX4fcFTPQeCZ0FoLTGYzGxqUsMG4E8upsPZMw4xBxeVjQO35l4FVhwNyrsIaep1mZWf5vBgAN4q2FYyfJ7jnClJkSrNxg0zW8sEgqEZXIZcFfhPYC1DWZZRMII5n8zJXoeGHDLEIuT4zeIpoXRN3+S4X3AFL4I/gm6mAbFQv3IJ8+g/EOThTZh0PRl70v0Imd3EDetjy4rKphPDpeb6QJWPQkWnIcIeE7Nkg19VoOcWmL8UDxUpsD0NIL1QSZ5ElBuoFVsKuOlkBD5UucLOGZgF01n4BXQjZ9DIW1xBm3lWDDxzuwh4F1rf2MvgesZCEGVn/Y3VF3YMGgdhxLht4IHo4w6z7Rzuh53acf6TH+uZ+iOmFaBETlxA17n6YyaCVzjCuyBNxAxTvX0y+49saYctF9PExYwoKtKL2X9u8NR2OoZJi+TPVfLwBxSrrr9et7Kxhlqu2zxqzWRt7xQXUxWL28HqZljBZxpOxdhy9XLCr3Aj2aZa1mH7zFX5hincsT/RiHEMdOXNUtJoQvBFe/HZ+uquM42Q90qf0alO+VT7kpa5anHLMfzwRKub6W7eFbTe5CD9SybwRDnB503WyreTUmDgIJNwoqePC+WYrW1RnBhI8ebdGl+34ou5CuJldqa1UTEzJNeNqCWLzrP/ThAcJRqmZJ945na6mmQqxhRp2edGu5+tIP3FzoHK2hUOlPyv5CgWGwXLCE0E1kP9Acpex53Wz/NxEa5eTB3ZlwsXNeI2fx4rwyAgtTVMQbzvuf3bVgIAN73I5mRfHRdTeKyQqgShtbEIoz2Q5TGvFNl2ALJ4bJzOVRo2LkUYTGHHH2x623o29fN8Ij35DRabVJyt1y5QGwVNWco=,iv:dgV9d8sRSwyNlW3lWZ6ldWw9+Fxs0Wmn1jhRxg5Pkfs=,tag:ZY3frrrk5/bBgx5lRMYvGg==,type:str]
|
||||
wrtagwebEnvFile: ENC[AES256_GCM,data:tWJT4ZnjqyudbH4oD6VDTmv86vrPESGG2Qx8x+bg61msIiaS1t6fHU8vTCL5WiJ3c7K1Hlr8zu4Ss9Xgru469uduzXHaX8DbPfSpBekit4MpJQ4l3sRpxn2ss5uzApxgxTUH/vEf07+oijDSICNeGbSbNl/6imJ+JhmDb8MqP6h3uvEOZB7Boyx0M8La8EWN3db3OmSkeFM+QQ9Jseni5ucKKw==,iv:sD5P5ZbNwlmxRb7iPs5MKtiPgQVrZ78IkmVuxQQLKkw=,tag:RJTZy9ruwx0MGawTE8NgdQ==,type:str]
|
||||
wrtagwebConfigFile: ENC[AES256_GCM,data:9VEUB08AJl9RsnyLFLguEAd83TcSAH6F4R+msK5jEKmpY5JVOKWOnBHhQU1egL4imP7NYepC2dvUcfPnypvqwX10KKEOuEVNVXoiJSbgonHiG6SCFd6Xvfk5GKgSNt+OXdSKWO8GMBfZqZhHrTEsA/+7o1C8PiAHFTjTZWMfRb4c6Ou4Bs3iQuDsZ4PE7fXkq5SmrqMlghbzrrfWCMz+L12oQcv1lBsAknYro2u6zrLZ7grtkG+NE+q9XGfdIaG2E7wAuF+SW5fO82GvYNb5w8QT9CB4nBgsgSw+2ASf+TdqpgyOq7djCaddbk7Fmjr8YIsCumdSXII5+w1VnXGMfq33J+M2uFH/hNAqIsgueQmUbOBLDQqPso11GqSOSWfy9avAjihQzwpyh8SK4nOaczgtyWeCvJOzdXMh1mzcOoj2HlLy63mXDWCmb0nCd4VKBUXYVz9FUB2/07IftPB8LjpX+NkjSYXH8njCUf0idDJYhUCGBBxCFvtDgQzyAXxIhKc8+AZV6sMoQ3ehoP/C8PNTenDjxKA4r8Uu8H9hj2o0sxLKqGMyyLeznn1sKq9pcIpj9wFrAxeK6kvFKWklHORIakgdd2EaT/tnnZc6AqgAaThroxQDUQ8tT3N8LuONcY73vxWsX86ugzCTsFOyK8iOWsXuDu6UWhyCemLaGuwWtUJPvNHe3CPRvgXVytaNZt0+X4/LTzVDfCt5BQBk364vqzjG2/i2WWnXiwWVr6FFXZu8UeONBpoQDF1FwCH8yCEa6C33y6ObB4eDhWFbdvrexORA4ZXc6UFf6GR/g7IA5B4Hk4RjEWpiyHtzYo+FFowRSzp3m96mIIYcBLanwnI0q6t3Ab0haUuuagGvG23nNKNWogermmvqlZMkUuwisqqwanE=,iv:FezjWLrrIsmihl0IwoCtrkReTyS28hW4kfIhLtRE4P4=,tag:uprF35tn1YOO53BfiqMgVg==,type:str]
|
||||
navidromeSecrets: ENC[AES256_GCM,data:kWk8+jh766yXzDHM5ZnZC+L9Qe1FrcaEjmTyidQ8n0QhcciYFEuV6XCwzYHQUICajv9q1+fggmDJqjcFiMvACFUvUrKrNlV4hKsIdoOBKn4a6P5V5Fw1UudcZRw3zJ6yX9n7yQ==,iv:nrSe5cPIq7PJRtxe6s5icyFKRRBlgTb9keXou8JT2dE=,tag:cMf8cinvsV94MV7YKm3AvQ==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1hvrssz7k9akz66evj4kja53zvdtrss8k2ljxsh5myh2mru62sggqznlzrt
|
||||
|
|
@ -15,8 +16,8 @@ sops:
|
|||
b1ZqUzZLUkFwNHJyVlhmK0FOZ1JFYUEKDU4NmBCHRY+ZK+RFK/LioGzjJTaOE1ky
|
||||
MC6jxt7Y5RkCk0BBqeoEVLaNXNViPjwakbvyfH0w0P6l0KDJ4mNlYQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-07T14:48:18Z"
|
||||
mac: ENC[AES256_GCM,data:q/1KjSsLTUsTVCdMevgF4FkLeTJCVpjVOv6xRJOYcV0+Ib5FQnGDtzcD8PJHvd1AO9jW91iXufYsPfJXEKeuuCbZDRz+q97yIVQJgWCUk9LS1gZB9HbBkzEecqZM5ULkgh+xqAlGIdYrPe0MADahctzJBDiLtV6EeoVS6dRbQDA=,iv:kRRbtzqgRy5IJ2Y6FR2nfzB7fAEGO++biZjqwfURn3g=,tag:eR7FPIZ6M1TvpOsA1Zw77w==,type:str]
|
||||
lastmodified: "2025-10-07T20:13:08Z"
|
||||
mac: ENC[AES256_GCM,data:KCtVQVoUovw/dKm75ttidOCydoVduJxiefPAN5X/MdqPVgfFdUHJgzk8I320OLAyLpj+IClUPhYalUkRZz/91bcUkOIEg1gvY15SyO6O0uMEh82G+lSigMaZkGotg3oFCLRxNvMsIBNISHMDY6sXeGRzZuKhbL3mzVMF7j8zpfA=,iv:Tc5157euWgH1LuRsun0YqKY50Q8j+RAL/6hVmhJVXW4=,tag:u9R1/kPRvj9VfdzMjp6Cfg==,type:str]
|
||||
pgp:
|
||||
- created_at: "2025-09-18T21:32:42Z"
|
||||
enc: |-
|
||||
|
|
|
|||
|
|
@ -6,10 +6,6 @@
|
|||
}:
|
||||
let
|
||||
cfg = config.services.wrtagweb;
|
||||
settingsFormat = pkgs.formats.keyValue {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
|
||||
listsAsDuplicateKeys = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
|
@ -17,25 +13,12 @@ in
|
|||
|
||||
enable = lib.mkEnableOption "wrtag web";
|
||||
|
||||
settings = lib.mkOption rec {
|
||||
type = settingsFormat.type;
|
||||
apply = lib.recursiveUpdate default;
|
||||
default = {
|
||||
web-listen-addr = "127.0.0.1:7373";
|
||||
path-format = "/data/music/{{ artists .Release.Artists | sort | join \"; \" | safepath }}/({{ .Release.ReleaseGroup.FirstReleaseDate.Year }}) {{ .Release.Title | safepath }}{{ if not (eq .ReleaseDisambiguation \"\") }} ({{ .ReleaseDisambiguation | safepath }}){{ end }}/{{ pad0 2 .TrackNum }}.{{ len .Tracks | pad0 2 }} {{ if .IsCompilation }}{{ artistsString .Track.Artists | safepath }} - {{ end }}{{ .Track.Title | safepath }}{{ .Ext }}";
|
||||
};
|
||||
description = ''
|
||||
Configuration for wrtagweb
|
||||
'';
|
||||
};
|
||||
|
||||
envFile = lib.mkOption {
|
||||
settingsFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
File with environment variables for wrtagweb
|
||||
Configuration file for wrtagweb
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -47,14 +30,17 @@ in
|
|||
};
|
||||
users.groups.wrtagweb = { };
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
rsgain
|
||||
];
|
||||
|
||||
systemd.services.wrtagweb = {
|
||||
description = "wrtagweb";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = "wrtagweb";
|
||||
ExecStart = "${pkgs.unstable.wrtag}/bin/wrtagweb -config-path ${settingsFormat.generate "wrtagweb" cfg.settings}";
|
||||
EnvironmentFile = cfg.envFile;
|
||||
ExecStart = "${pkgs.unstable.wrtag}/bin/wrtagweb -config-path ${cfg.settingsFile}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue