{ config, lib, pkgs, ... }:

{
  # Miniflux configuration
  services.miniflux = {
    enable = true;
    adminCredentialsFile = config.age.secrets.miniflux.path;
    config = {
      BASE_URL = "https://rss.coolneng.duckdns.org";
      RUN_MIGRATIONS = "1";
      DISABLE_HSTS = "1";
    };
  };

  # Php-fpm pool for Wallabag
  services.phpfpm.pools.wallabag = {
    user = "nginx";
    group = "nginx";
    settings = {
      "listen.owner" = config.services.nginx.user;
      "listen.group" = config.services.nginx.group;
      "listen.mode" = 600;
      "pm" = "ondemand";
      "pm.max_children " = 4;
      "pm.max_requests" = 32;
      "env[WALLABAG_DATA]" = "/var/lib/wallabag";
    };
    phpEnv."PATH" = lib.makeBinPath [ pkgs.php ];
  };

  # Set environment variable pointing to wallabag configuration directory
  environment.variables.WALLABAG_DATA = "/var/lib/wallabag";

  # Podman setup with ZFS
  virtualisation = {
    containers.enable = true;
    containers.storage.settings.storage = {
      driver = "zfs";
      graphroot = "/var/lib/containers/storage";
      runroot = "/run/containers/storage";
    };

    podman = {
      enable = true;
      dockerCompat = true;
      extraPackages = with pkgs; [ zfs ];
    };

    # Openbooks configuration
    oci-containers = {
      backend = "podman";
      containers = {
        openbooks = {
          image =
            "evanbuss/openbooks@sha256:16609c3da954715f8f98b5de6c838146914ae700b2a700b4d9aad8b23c9217da";
          ports = [ "127.0.0.1:9000:80" ];
          cmd = [ "--name" "bookworm" "--searchbot" "searchook" "--persist" ];
        };
      };
    };
  };

}