From 3aef240f5d224625383d18abc37336ad091ca12b Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Sat, 7 Jun 2025 14:31:40 +0800 Subject: [PATCH] feat(librechat): provision apollo --- modules/nixos/server/web-apps/default.nix | 39 ++++++++++++----------- modules/nixos/system/secrets.nix | 1 + secrets/secrets.yaml | 5 +-- systems/x86_64-linux/apollo/default.nix | 2 +- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/modules/nixos/server/web-apps/default.nix b/modules/nixos/server/web-apps/default.nix index 6c8453d..630a46c 100644 --- a/modules/nixos/server/web-apps/default.nix +++ b/modules/nixos/server/web-apps/default.nix @@ -25,40 +25,41 @@ in env = { HOST = "0.0.0.0"; ALLOW_REGISTRATION = "true"; - MONGO_URI = "mongodb://apollo:27017"; + NO_INDEX = "true"; + MONGO_URI = "mongodb://apollo:27017/LibreChat"; + DOMAIN_CLIENT = "https://chat.bwfiq.com"; + DOMAIN_SERVER = "https://chat.bwfiq.com"; + ENDPOINTS = "anthropic,agents,google"; }; credentials = { CREDS_KEY = config.sops.secrets."librechat/creds_key".path; CREDS_IV = config.sops.secrets."librechat/creds_iv".path; JWT_SECRET = config.sops.secrets."librechat/jwt_secret".path; JWT_REFRESH_SECRET = config.sops.secrets."librechat/jwt_refresh_secret".path; + OPENROUTER_KEY = config.sops.secrets."keys/openrouter".path; + GOOGLE_KEY = config.sops.secrets."keys/gemini".path; }; settings = { - version = "1.0.8"; + version = "1.1.4"; cache = true; + endpoints.custom = [ + { + name = "OpenRouter"; + apiKey = "\${OPENROUTER_KEY}"; + baseURL = "https://openrouter.ai/api/v1"; + models.default = [ "meta-llama/llama-3-70b-instruct" ]; + models.fetch = true; + titleConvo = true; + titleModel = "current_model"; + modelDisplayLabel = "OpenRouter"; + } + ]; interface = { privacyPolicy = { externalUrl = "https://librechat.ai/privacy-policy"; openNewTab = true; }; }; - endpoints = { - custom = [ - { - name = "OpenRouter"; - apiKey = "\${OPENROUTER_KEY}"; - baseURL = "https://openrouter.ai/api/v1"; - models = { - default = [ "meta-llama/llama-3-70b-instruct" ]; - fetch = true; - }; - titleConvo = true; - titleModule = "meta-llama/llama-3-70b-instruct"; - dropParams = [ "stop" ]; - modelDisplayLabel = "OpenRouter"; - } - ]; - }; }; }; }; diff --git a/modules/nixos/system/secrets.nix b/modules/nixos/system/secrets.nix index 2139afa..ce0cc40 100644 --- a/modules/nixos/system/secrets.nix +++ b/modules/nixos/system/secrets.nix @@ -4,6 +4,7 @@ defaultSopsFile = lib.snowfall.fs.get-file "secrets/secrets.yaml"; age.sshKeyPaths = [ "/persist/home/rafiq/.ssh/id_ed25519" ]; secrets = { + "keys/openrouter" = { }; "keys/tailscale" = { }; "keys/gemini" = { }; "keys/cvt-jira" = { }; diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index 10edfe1..3f71b01 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -4,6 +4,7 @@ rafiq: workEmailPassword: ENC[AES256_GCM,data:++Gm9dIhmqEQz3+Ej9c=,iv:dAvyyLZvsHcjudU4gdU0iyWYDjjhe49UC2swHh++ldc=,tag:6o1DyJk5WOFO/Hfr0uMKSw==,type:str] oldSMBCredentials: ENC[AES256_GCM,data:aY41trUJcvGa584H0A==,iv:3h9AZ33HXWT4D/vGMyy/o+TXyGg75Ixcj3+h2EskvIQ=,tag:dDo55h1ljOYLZBHn9bK7ew==,type:str] keys: + openrouter: ENC[AES256_GCM,data:Uddc0leKVD2xxpvDpsTJV3qZ4oe89Uz6dJMuzF/TeI5iIrG+DNIAYPcnIQiA6LDScO9mag8XNiYpYH7lyMnUg1cvThChiVhO+A==,iv:RHSrL/L74dSvLKAvGwyMME53RzKr2+RDnI8xBpDJVng=,tag:d81mr26SeStmAa8UgEF/LA==,type:str] tailscale: ENC[AES256_GCM,data:sW64TZY/GtWD+8KOQDHYvnwzWiqOlsJ5782utaxVwUaiWa18hU+Ppd3gp/8f0R3rK6gskaPC22iuCuzvuA==,iv:TN2zWKgU6eXH3uaL7Ci2JKmo8Ql4DUSWS3Lxfnag7j4=,tag:s5of4wLdCp6b5VMGWLLxvw==,type:str] gemini: ENC[AES256_GCM,data:t4XTzJLMbHBG7LNaWMwO0YyYHREYOp4Zn95Kwshunnpwq9ezVv+0,iv:ZHq1ytak7Qy5a/zHghwEIWRinDWAkk2Vxw4iu/Q/UPk=,tag:Wyk0FqLTOWelznWHg/anxg==,type:str] cvt-jira: ENC[AES256_GCM,data:y9enN905hAxp9F6TPcnYdcnA7VQQjTsysltBn7k9CVtOYUDBX5UKCbO4VEE=,iv:Hy/RshBTSFqEVlHq/fi/UqNdbzBvMaBmXnSHAz0WplY=,tag:bBgB+HJdHRu4bg/f9vq9nw==,type:str] @@ -28,7 +29,7 @@ sops: WXFKbjNMWDF0LzNyekJJMGFva2diemcKQTc8ODuK6IWqRhulHiCF92aU+3p23riY M94Nzh+VT6QTFOgb3J7bBJMLhRH/fkQb6L6ia2n9QrVXFyYYMJ0oBw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-06-06T13:37:24Z" - mac: ENC[AES256_GCM,data:WkWsBTMQcJlvTPjAVDP24CEvE68KJj9s762ks+xtQHLvtepq0upQrGkJ8li5JZfnwSBHJikgZCEZD/PIbthx5u6Z5LjGsHjYGzRMIuRh0vjloHBCc5awdl1B6v5ebTtM6eA+YgHeHT4BcyRReM4fpKBk4SedR84mnBnX/WxfGfE=,iv:DRABRFDYbOpqL7ZzJK/xJTbA9hsbE3iEvAx/Ugc7I10=,tag:mwN17/+gr6e7y53PxaJl8Q==,type:str] + lastmodified: "2025-06-07T06:11:21Z" + mac: ENC[AES256_GCM,data:ntsLgImSp1j4a1D3KxnjxKJW7DHbel1PmuDlDUeMm3zPvqkzo5Hm/sAW/BlcPYsrZPRci1xfxTs2SqUClwgEBvewbrxvP0ELWH+Aq6IC6ckRQe1OUJKHpq+/BnPRyJOXmjjlxNPYoNxmnShDlbI/AaiNLupdNNpgyaobHyRZBUw=,iv:EW/ag6o8UhZbBGhr32VoKkZbM5a43rDbZTmRO2hshQ8=,tag:h4KYFxOQToNQ+hCH+q1Cgg==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2 diff --git a/systems/x86_64-linux/apollo/default.nix b/systems/x86_64-linux/apollo/default.nix index 24536a3..d4c35a8 100644 --- a/systems/x86_64-linux/apollo/default.nix +++ b/systems/x86_64-linux/apollo/default.nix @@ -29,7 +29,7 @@ web-servers.nginx.proxies = [ { source = "chat.bwfiq.com"; - target = "http://helios:3080"; + target = "http://localhost:3080"; } { source = "il.bwfiq.com";