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.9 kB 77 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 33 environment = { 34 MATRIX_HOMESERVER = "https://matrix.lassul.us"; 35 MATRIX_USER_ID = "@archiver:lassul.us"; 36 MATRIX_DEVICE_ID = "ARCHIVER"; 37 JELLYSEERR_URL = "http://localhost:5055"; 38 FLAX_URL = "https://flax.lassul.us"; 39 FLIX_URL = "https://flix.lassul.us"; 40 IPFS_GATEWAY_URL = "https://ipfs.lassul.us"; 41 JELLYFIN_URL = "http://localhost:8096"; 42 43 MEDIA_PATH_PREFIX = "/var/download/"; 44 IPFS_CID_MAP = "/var/lib/ipfs/cid-map.txt"; 45 IPFS_PATH_PREFIX = "/var/lib/ipfs/download/"; 46 WEBHOOK_PORT = "8099"; 47 STORE_PATH = "/var/lib/archiver-bot"; 48 }; 49 50 script = '' 51 export MATRIX_ACCESS_TOKEN="$(cat "$CREDENTIALS_DIRECTORY/matrix-access-token")" 52 export JELLYSEERR_API_KEY="$(${pkgs.jq}/bin/jq -r '.main.apiKey' "$CREDENTIALS_DIRECTORY/jellyseerr-settings")" 53 export RADARR_API_KEY="$(${pkgs.libxml2}/bin/xmllint --xpath 'string(//ApiKey)' "$CREDENTIALS_DIRECTORY/radarr-config")" 54 export SONARR_API_KEY="$(${pkgs.libxml2}/bin/xmllint --xpath 'string(//ApiKey)' "$CREDENTIALS_DIRECTORY/sonarr-config")" 55 export JELLYFIN_API_KEY="$(cat "$CREDENTIALS_DIRECTORY/jellyfin-api-key")" 56 exec ${pkgs.callPackage ../../5pkgs/archiver-bot/package.nix { }}/bin/archiver-bot 57 ''; 58 59 serviceConfig = { 60 Restart = "on-failure"; 61 RestartSec = 10; 62 DynamicUser = true; 63 StateDirectory = "archiver-bot"; 64 LoadCredential = [ 65 "matrix-access-token:${ 66 config.clan.core.vars.generators.archiver-matrix.files."matrix-access-token".path 67 }" 68 "jellyseerr-settings:/var/lib/private/jellyseerr/config/settings.json" 69 "radarr-config:/var/lib/radarr/.config/Radarr/config.xml" 70 "sonarr-config:/var/lib/sonarr/.config/NzbDrone/config.xml" 71 "jellyfin-api-key:${ 72 config.clan.core.vars.generators.archiver-jellyfin.files."jellyfin-api-key".path 73 }" 74 ]; 75 }; 76 }; 77}