Files
nixos/services/miniflux.nix

59 lines
1.2 KiB
Nix

# Module: services/miniflux
# Enables a miniflux server
{
config,
lib,
pkgs,
pkgsUnstable,
inputs,
...
}:
with lib;
let
cfg = config.miniflux;
minifluxHost = "127.0.0.1";
minifluxHttpPort = "8223";
in
{
options.miniflux = {
enable = mkEnableOption "Enables miniflux module";
environmentFile = mkOption {
type = types.path;
default = null;
description = "Path of environment file to pass to miniflux";
example = "../secrets/miniflux.env";
};
};
config = mkIf cfg.enable {
services.miniflux = mkIf cfg.enable {
enable = true;
package = pkgsUnstable.miniflux;
adminCredentialsFile = cfg.environmentFile;
createDatabaseLocally = false;
config = {
LISTEN_ADDR = "${minifluxHost}:${minifluxHttpPort}";
};
};
services.traefik.dynamicConfigOptions = {
http.routers.miniflux = {
entrypoints = [ "websecure" ];
rule = "Host(`reader.its-et.me`)";
tls.certresolver = "production";
service = "miniflux";
};
http.services.miniflux.loadbalancer.servers = [
{
url = "http://${minifluxHost}:${minifluxHttpPort}";
}
];
};
};
}