{ config, inputs, lib, ... }: with lib; let cfg = config.custom.containers.freshrss; in { options.custom.containers.freshrss = { enable = mkOption {default = false;}; }; config = mkIf cfg.enable { #?? arion-freshrss pull environment.shellAliases.arion-freshrss = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.freshrss.settings.out.dockerComposeYaml}"; virtualisation.arion.projects.freshrss.settings.services = { # https://github.com/FreshRSS/FreshRSS # https://github.com/FreshRSS/FreshRSS/tree/edge/Docker freshrss.service = { container_name = "freshrss"; image = "freshrss/freshrss:1"; ports = ["127.0.0.1:8088:80"]; restart = "unless-stopped"; environment = { TRUSTED_PROXY = "172.16.0.0/12"; }; volumes = let #?? (extension "NAME" SOURCE) extension = name: source: "${source}:/var/www/FreshRSS/extensions/${name}"; in [ "${config.custom.containers.directory}/freshrss/data:/var/www/FreshRSS/data" # Extensions # https://github.com/FreshRSS/Extensions #!! Causes docker permission changes to fail on container start due to immutable source (extension "autorefresh" "${inputs.freshrss-autorefresh}/xExtension-AutoRefresh") # https://github.com/Eisa01/FreshRSS---Auto-Refresh-Extension (extension "clickablelinks" "${inputs.freshrss-kapdap}/xExtension-ClickableLinks") # https://github.com/kapdap/freshrss-extensions/tree/master/xExtension-ClickableLinks (extension "colorfullist" "${inputs.freshrss-extensions}/xExtension-ColorfulList") # https://github.com/FreshRSS/Extensions/tree/master/xExtension-ColorfulList (extension "comicsinfeed" inputs.freshrss-comicsinfeed) # https://github.com/giventofly/freshrss-comicsinfeed (extension "dateformat" inputs.freshrss-dateformat) # https://github.com/aledeg/xExtension-DateFormat (extension "filtertitle" "${inputs.freshrss-cntools}/xExtension-FilterTitle") # https://github.com/cn-tools/cntools_FreshRssExtensions/tree/master/xExtension-FilterTitle (extension "kagisummarizer" inputs.freshrss-kagisummarizer) # https://code.sitosis.com/rudism/freshrss-kagi-summarizer (extension "markpreviousasread" inputs.freshrss-markpreviousasread) # https://github.com/kalvn/freshrss-mark-previous-as-read (extension "quickcollapse" "${inputs.freshrss-extensions}/xExtension-QuickCollapse") # https://github.com/FreshRSS/Extensions/tree/master/xExtension-QuickCollapse (extension "readingtime" "${inputs.freshrss-extensions}/xExtension-ReadingTime") # https://github.com/FreshRSS/Extensions/tree/master/xExtension-ReadingTime (extension "removeemojis" "${inputs.freshrss-cntools}/xExtension-RemoveEmojis") # https://github.com/cn-tools/cntools_FreshRssExtensions/tree/master/xExtension-RemoveEmojis (extension "youtube" "${inputs.freshrss-extensions}/xExtension-YouTube") # https://github.com/FreshRSS/Extensions/tree/master/xExtension-YouTube ]; }; }; }; }