This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / 2configs / services / archiver-bot.nix
2.8 kB 76 lines
1{ 2 config, 3 pkgs, 4 ... 5}: 6{ 7 clan.core.vars.generators.archiver-jellyfin = { 8 prompts.jellyfin-api-key = { 9 description = "Jellyfin API key - create one in Jellyfin Dashboard -> API Keys"; 10 type = "hidden"; 11 persist = true; 12 }; 13 }; 14 15 clan.core.vars.generators.archiver-matrix = { 16 prompts.matrix-access-token = { 17 description = "Matrix access token for @archiver:lassul.us - register the user on synapse, then get a token via: curl -XPOST 'https://matrix.lassul.us/_matrix/client/r0/login' -d '{\"type\":\"m.login.password\",\"user\":\"archiver\",\"password\":\"...\"}' -H 'Content-Type: application/json'"; 18 type = "hidden"; 19 persist = true; 20 }; 21 22 }; 23 24 systemd.services.archiver-bot = { 25 description = "Archiver Matrix Bot - requests movies via Jellyseerr"; 26 wantedBy = [ "multi-user.target" ]; 27 after = [ 28 "network-online.target" 29 "jellyseerr.service" 30 ]; 31 wants = [ "network-online.target" ]; 32 path = [ pkgs.kubo ]; 33 34 environment = { 35 MATRIX_HOMESERVER = "https://matrix.lassul.us"; 36 MATRIX_USER_ID = "@archiver:lassul.us"; 37 MATRIX_DEVICE_ID = "ARCHIVER"; 38 JELLYSEERR_URL = "http://localhost:5055"; 39 FLAX_URL = "https://flax.lassul.us"; 40 FLIX_URL = "https://flix.lassul.us"; 41 IPFS_GATEWAY_URL = "https://ipfs.lassul.us"; 42 JELLYFIN_URL = "http://localhost:8096"; 43 44 MEDIA_PATH_PREFIX = "/var/download/"; 45 WEBHOOK_PORT = "8099"; 46 STORE_PATH = "/var/lib/archiver-bot"; 47 }; 48 49 script = '' 50 export MATRIX_ACCESS_TOKEN="$(cat "$CREDENTIALS_DIRECTORY/matrix-access-token")" 51 export JELLYSEERR_API_KEY="$(${pkgs.jq}/bin/jq -r '.main.apiKey' "$CREDENTIALS_DIRECTORY/jellyseerr-settings")" 52 export RADARR_API_KEY="$(${pkgs.libxml2}/bin/xmllint --xpath 'string(//ApiKey)' "$CREDENTIALS_DIRECTORY/radarr-config")" 53 export SONARR_API_KEY="$(${pkgs.libxml2}/bin/xmllint --xpath 'string(//ApiKey)' "$CREDENTIALS_DIRECTORY/sonarr-config")" 54 export JELLYFIN_API_KEY="$(cat "$CREDENTIALS_DIRECTORY/jellyfin-api-key")" 55 exec ${pkgs.callPackage ../../5pkgs/archiver-bot/package.nix { }}/bin/archiver-bot 56 ''; 57 58 serviceConfig = { 59 Restart = "on-failure"; 60 RestartSec = 10; 61 DynamicUser = true; 62 StateDirectory = "archiver-bot"; 63 LoadCredential = [ 64 "matrix-access-token:${ 65 config.clan.core.vars.generators.archiver-matrix.files."matrix-access-token".path 66 }" 67 "jellyseerr-settings:/var/lib/private/jellyseerr/config/settings.json" 68 "radarr-config:/var/lib/radarr/.config/Radarr/config.xml" 69 "sonarr-config:/var/lib/sonarr/.config/NzbDrone/config.xml" 70 "jellyfin-api-key:${ 71 config.clan.core.vars.generators.archiver-jellyfin.files."jellyfin-api-key".path 72 }" 73 ]; 74 }; 75 }; 76}