diff --git a/modules/server/containers/apps/selfmark.nix b/modules/server/containers/apps/selfmark.nix index 468d1bb..e8446e4 100644 --- a/modules/server/containers/apps/selfmark.nix +++ b/modules/server/containers/apps/selfmark.nix @@ -12,22 +12,72 @@ in { }]; containers = { - selfmark = builder.mkContainer { + server = builder.mkContainer { subdomain = containerCfg.subdomain; subpath = containerCfg.subpath; image = "ghcr.io/calibrain/shelfmark:${version}"; port = 8080; extraEnv = { + # HARDCOVER_API_KEY = ""; #FROM SOPS + # AA_DONATOR_KEY = ""; #FROM SOPS + # PROWLARR_API_KEY = ""; #FROM SOPS + FLASK_PORT = "8080"; - INGEST_DIR = "/books"; PUID = "1000"; PGID = "1000"; + USING_TOR = "false"; + ONBOARDING = "false"; + SUPPORTED_FORMATS = "epub,mobi,azw3,fb2,djvu,cbz,cbr,pdf"; + SUPPORTED_AUDIOBOOK_FORMATS = "mp3, m4b"; + BOOK_LANGUAGE = "en,fr"; # ,de,jp"; SEARCH_MODE = "universal"; - }; + AA_DEFAULT_SORT = "relevance"; + METADATA_PROVIDER = "openlibrary"; + INGEST_DIR = "/books"; + BOOKS_OUTPUT_MODE = "/output"; + FILE_ORGANIZATION = "organize"; + TEMPLATE_RENAME = "{Author} - {Title} ({Year})"; + TEMPLATE_ORGANIZE = "{Author}/{Title} ({Year})"; + HARDLINK_TORRENTS = "false"; + FILE_ORGANIZATION_AUDIOBOOK = "organize"; + TEMPLATE_RENAME_AUDIOBOOK = "{Author} - {Title}"; + TEMPLATE_ORGANIZE_AUDIOBOOK = "{Author}/{Title} ({Year})"; + + HARDCOVER_ENABLED = "true"; + HARDCOVER_DEFAULT_SORT = "relevance"; + OPENLIBRARY_ENABLED = "true"; + OPENLIBRARY_DEFAULT_SORT = "relevance"; + DIRECT_DOWNLOAD_ENABLED = "true"; + + USE_CF_BYPASS = "true"; + AA_BASE_URL = "auto"; + AA_MIRROR_URLS = "https://annas-archive.gl,https://annas-archive.pk,https://annas-archive.gd,"; + LIBGEN_MIRROR_URLS = "https://libgen.li,https://libgen.vg,https://libgen.la,https://libgen.bz,https://libgen.gl"; + ZLIB_MIRROR_URLS = "https://z-lib.sk,https://z-library.gs,https://z-lib.fm,https://z-lib.gd,https://z-lib.gl"; + # WELIB_MIRROR_URLS = "https://welib.org"; #avoid + } // lib.optionalAttrs(containerCfg.subpath != null) { + BASE_PATH = "/${containerCfg.subpath}"; + } // lib.optionalAttrs(serverCfg.containers?calibre) { + CALIBRE_WEB_URL = "https://${serverCfg.containers.calibre.subdomain}.${serverCfg.domain}"; + } // lib.optionalAttrs(serverCfg.containers?authentik) { + AUTH_METHOD = "proxy"; + PROXY_AUTH_USER_HEADER = "X-authentik-user"; + PROXY_AUTH_ADMIN_GROUP_HEADER = "X-authentik-groups"; + PROXY_AUTH_ADMIN_GROUP_NAME = "admin"; + } // lib.optionalAttrs(serverCfg.containers?servarr && builtins.elem "prowlarr" serverCfg.containers.servarr.extra.modules) ({ + PROWLARR_ENABLED = "true"; + PROWLARR_URL = "http://servarr-prowlarr:8989"; + } // lib.optionalAttrs(serverCfg.containers?transmission) { + PROWLARR_TORRENT_CLIENT = "transmission"; + TRANSMISSION_URL = "http://transmission-server:9091"; + }) // lib.optionalAttrs(serverCfg.containers?servarr && builtins.elem "flaresolverr" serverCfg.containers.servarr.extra.modules) { + USING_EXTERNAL_BYPASSER = "true"; + EXT_BYPASSER_URL = "http://servarr-flaresolverr:8191"; + EXT_BYPASSER_PATH = "/v1"; + EXT_BYPASSER_TIMEOUT = "60000"; + }; overrides = { - ports = [ "8080:8080" ]; - cmd = [ ]; volumes = [ ]; }; };