forked from aylac.top/nixcfg
this repo has no description
1{ 2 config, 3 lib, 4 self, 5 ... 6}: let 7 name = "karakeep"; 8 cfg = config.myNixOS.services.${name}; 9 10 network = config.mySnippets.tailnet; 11 service = network.networkMap.${name}; 12in { 13 options.myNixOS.services.${name} = { 14 enable = lib.mkEnableOption "${name} server"; 15 autoProxy = lib.mkOption { 16 default = true; 17 example = false; 18 description = "${name} auto proxy"; 19 type = lib.types.bool; 20 }; 21 }; 22 23 config = lib.mkIf cfg.enable { 24 age.secrets.gemini.file = "${self.inputs.secrets}/gemini.age"; 25 26 services = { 27 caddy.virtualHosts."${service.vHost}".extraConfig = lib.mkIf cfg.autoProxy '' 28 bind tailscale/${name} 29 encode zstd gzip 30 reverse_proxy ${service.hostName}:${toString service.port} 31 ''; 32 33 karakeep = { 34 enable = true; 35 36 extraEnvironment = rec { 37 DISABLE_NEW_RELEASE_CHECK = "true"; 38 DISABLE_SIGNUPS = "true"; 39 OPENAI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai/"; 40 INFERENCE_TEXT_MODEL = "gemini-2.5-flash"; 41 INFERENCE_IMAGE_MODEL = INFERENCE_TEXT_MODEL; 42 EMBEDDING_TEXT_MODEL = INFERENCE_TEXT_MODEL; 43 INFERENCE_CONTEXT_LENGTH = "600000"; 44 INFERENCE_LANG = "english"; 45 INFERENCE_NUM_WORKERS = "2"; 46 NEXTAUTH_URL = "https://${service.vHost}"; 47 PORT = "7020"; 48 }; 49 environmentFile = config.age.secrets.gemini.path; 50 }; 51 }; 52 }; 53}