{ config, lib, ... }: { options.sysconfig.docker.searxng.enable = with lib; mkOption { type = with types; bool; default = false; }; config = lib.mkIf (config.sysconfig.docker.searxng.enable && config.sysconfig.docker.enable) { networking.firewall.interfaces = { "ve-traefik" = { allowedTCPPorts = [ 9002 ]; }; }; virtualisation.oci-containers.containers.searxng = { image = "searxng/searxng:latest"; # unstable, waiting for 26.05 #pull = "newer"; hostname = "searxng.esotericbytes.com"; networks = [ "docker-main" ]; labels = { "traefik.http.routers.searxng.entrypoints" = "localsecure"; "traefik.http.routers.searxng.rule" = "Host(`searxng.esotericbytes.com`)"; "traefik.http.routers.searxng.service" = "searxng"; "traefik.http.routers.searxng.tls.certResolver" = "cloudflare"; "traefik.http.services.searxng.loadbalancer.server.url" = "http://192.168.100.10:9002"; }; extraOptions = lib.mkIf config.sysconfig.docker.nvidia [ "--ip=192.168.101.5" ]; ports = [ "9002:8080" ]; volumes = [ "vol_searxng_settings:/etc/searxng/" "vol_searxng_data:/var/cache/searxng/" ]; environment = { SEARXNG_SECRET = "2e8b4fcf4c0f46b097496f2d5715dbb061bd5cac78c64d0f5a0bee27f013f3c0"; }; }; }; }