# OmniRoute — Deployment Guide on VM with Cloudflare (मराठी) 🌐 **Languages:** 🇺🇸 [English](../../../../ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇹 [am](../../../am/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇦🇿 [az](../../../az/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇩🇰 [da](../../../da/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇩🇪 [de](../../../de/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇬🇷 [el](../../../el/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇸 [es](../../../es/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇪 [et](../../../et/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇱 [he](../../../he/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇩 [id](../../../id/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇹 [it](../../../it/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇭 [km](../../../km/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇲 [my](../../../my/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇴 [no](../../../no/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [or](../../../or/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇰 [si](../../../si/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [te](../../../te/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇭 [th](../../../th/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/VM_DEPLOYMENT_GUIDE.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇹 [am](../../../am/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇦🇿 [az](../../../az/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇩🇰 [da](../../../da/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇩🇪 [de](../../../de/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇬🇷 [el](../../../el/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇸 [es](../../../es/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇪🇪 [et](../../../et/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇱 [he](../../../he/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇩 [id](../../../id/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇹 [it](../../../it/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇭 [km](../../../km/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇲🇲 [my](../../../my/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇴 [no](../../../no/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [or](../../../or/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇱🇰 [si](../../../si/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [te](../../../te/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇭 [th](../../../th/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/VM_DEPLOYMENT_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/VM_DEPLOYMENT_GUIDE.md) Cloudflare द्वारे व्यवस्थापित केलेल्या डोमेनसह VM (VPS) वर OmniRoute स्थापित आणि कॉन्फिगर करण्यासाठी संपूर्ण मार्गदर्शक. --- ## पूर्वआवश्यकता | घटक | किमान | शिफारस केलेले | | ---------- | ----------------------- | ---------------- | | **CPU** | 1 vCPU | 2 vCPU | | **RAM** | 1 GB | 2 GB | | **डिस्क** | 10 GB SSD | 25 GB SSD | | **OS** | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS | | **डोमेन** | Cloudflare वर नोंदणीकृत | — | | **Docker** | Docker Engine 24+ | Docker 27+ | **चाचणी केलेले प्रदाते**: Akamai (Linode), DigitalOcean, Vultr, Hetzner, AWS Lightsail. --- ## 1. VM कॉन्फिगर करा ### 1.1 इन्स्टन्स तयार करा तुमच्या पसंतीच्या VPS प्रदात्यावर: - Ubuntu 24.04 LTS निवडा - किमान प्लॅन (1 vCPU / 1 GB RAM) निवडा - मजबूत root पासवर्ड सेट करा किंवा SSH की कॉन्फिगर करा - **सार्वजनिक IP** नोंदवून ठेवा (उदा., `203.0.113.10`) ### 1.2 SSH द्वारे कनेक्ट करा ```bash ssh root@203.0.113.10 ``` ### 1.3 सिस्टम अपडेट करा ```bash apt update && apt upgrade -y ``` ### 1.4 Docker इंस्टॉल करा ```bash # अवलंबित्वे इंस्टॉल करा apt install -y ca-certificates curl gnupg # अधिकृत Docker रेपॉझिटरी जोडा install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $ (. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null apt update apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` ### 1.5 nginx इंस्टॉल करा ```bash apt install -y nginx ``` ### 1.6 फायरवॉल (UFW) कॉन्फिगर करा ```bash ufw default deny incoming ufw default allow outgoing ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP (रीडायरेक्ट) ufw allow 443/tcp # HTTPS ufw enable ``` > **टीप**: कमाल सुरक्षिततेसाठी, पोर्ट 80 आणि 443 वरील प्रवेश केवळ Cloudflare IP पुरता मर्यादित करा. [प्रगत सुरक्षा](#advanced-security) विभाग पाहा. --- ## 2. OmniRoute इंस्टॉल करा ### 2.1 कॉन्फिगरेशन डिरेक्टरी तयार करा ```bash mkdir -p /opt/omniroute ``` ### 2.2 एन्व्हायर्नमेंट व्हेरिएबल्सची फाइल तयार करा ```bash cat > /opt/omniroute/.env << 'EOF' # === सुरक्षा === JWT_SECRET=CHANGE-TO-A-UNIQUE-64-CHAR-SECRET-KEY INITIAL_PASSWORD=YourSecurePassword123! API_KEY_SECRET=REPLACE-WITH-ANOTHER-SECRET-KEY STORAGE_ENCRYPTION_KEY=REPLACE-WITH-THIRD-SECRET-KEY STORAGE_ENCRYPTION_KEY_VERSION=v1 MACHINE_ID_SALT=CHANGE-TO-A-UNIQUE-SALT OMNIROUTE_WS_BRIDGE_SECRET=REPLACE-WITH-WS-BRIDGE-SECRET # उत्पादनामध्ये आवश्यक: Codex Responses WS ब्रिजद्वारे वापरले जाते # === ॲप === PORT=20128 NODE_ENV=production HOSTNAME=0.0.0.0 DATA_DIR=/app/data APP_LOG_TO_FILE=true AUTH_COOKIE_SECURE=true REQUIRE_API_KEY=false # === URLs (तुमच्या डोमेननुसार बदला) === # शेड्यूल केलेल्या जॉब्स / सेल्फ-फेचसाठी अंतर्गत सर्व्हर-टू-सर्व्हर बेस URL. BASE_URL=http://127.0.0.1:20128 # OAuth कॉलबॅक, डॅशबोर्ड लिंक आणि व्युत्पन्न सार्वजनिक URLs साठी वापरला जाणारा ब्राउझर-दृश्यमान URL. NEXT_PUBLIC_BASE_URL=https://llms.seudominio.com # व्युत्पन्न सार्वजनिक ॲसेट URLs साठी पर्यायी स्पष्ट सार्वजनिक ओरिजिन ओव्हरराइड. # OMNIROUTE_PUBLIC_BASE_URL=https://llms.seudominio.com # === क्लाउड सिंक (पर्यायी) === # CLOUD_URL=https://cloud.omniroute.online # NEXT_PUBLIC_CLOUD_URL=https://cloud.omniroute.online EOF ``` > ⚠️ **महत्त्वाचे**: अद्वितीय गुप्त कीज व्युत्पन्न करा! प्रत्येक कीसाठी `openssl rand -hex 32` वापरा. ### 2.3 कंटेनर सुरू करा ```bash docker pull diegosouzapw/omniroute:latest docker run -d \ --name omniroute \ --restart unless-stopped \ --env-file /opt/omniroute/.env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` ### 2.4 ते सुरू असल्याची खात्री करा ```bash docker ps | grep omniroute docker logs omniroute --tail 20 ``` यात पुढील मजकूर दिसला पाहिजे: `[DB] SQLite database ready` आणि `listening on port 20128`. --- ## 3. nginx कॉन्फिगर करा (रिव्हर्स प्रॉक्सी) ### 3.1 SSL प्रमाणपत्र तयार करा (Cloudflare Origin) Cloudflare डॅशबोर्डमध्ये: 1. **SSL/TLS → Origin Server** वर जा 2. **Create Certificate** वर क्लिक करा 3. डीफॉल्ट मूल्ये कायम ठेवा (15 वर्षे, \*.yourdomain.com) 4. **Origin Certificate** आणि **Private Key** कॉपी करा ```bash mkdir -p /etc/nginx/ssl # प्रमाणपत्र पेस्ट करा nano /etc/nginx/ssl/origin.crt # खाजगी की पेस्ट करा nano /etc/nginx/ssl/origin.key chmod 600 /etc/nginx/ssl/origin.key ``` ### 3.2 Nginx कॉन्फिगरेशन ```bash cat > /etc/nginx/sites-available/omniroute << 'NGINX' # डीफॉल्ट सर्व्हर — IP द्वारे थेट प्रवेश अवरोधित करतो server { listen 80 default_server; listen [::]:80 default_server; listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/nginx/ssl/origin.crt; ssl_certificate_key /etc/nginx/ssl/origin.key; server_name _; return 444; } # OmniRoute — HTTPS server { listen 443 ssl; listen [::]:443 ssl; server_name llms.yourdomain.com; # तुमच्या डोमेननुसार बदला ssl_certificate /etc/nginx/ssl/origin.crt; ssl_certificate_key /etc/nginx/ssl/origin.key; ssl_protocols TLSv1.2 TLSv1.3; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:20128; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket समर्थन proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # SSE (सर्व्हरने पाठवलेले इव्हेंट्स) — AI प्रतिसादांचे स्ट्रीमिंग proxy_buffering off; proxy_cache off; proxy_read_timeout 600s; proxy_send_timeout 600s; } } # HTTP → HTTPS पुनर्निर्देशन server { listen 80; listen [::]:80; server_name llms.yourdomain.com; return 301 https://$server_name$request_uri; } NGINX ``` रिव्हर्स-प्रॉक्सी स्ट्रीम टाइमआउट तुमच्या OmniRoute टाइमआउट env vars शी सुसंगत ठेवा. तुम्ही `FETCH_TIMEOUT_MS` / `STREAM_IDLE_TIMEOUT_MS` वाढवल्यास, `proxy_read_timeout` / `proxy_send_timeout` त्याच मर्यादेपेक्षा अधिक वाढवा. OAuth कॉलबॅक आणि व्युत्पन्न केलेल्या सार्वजनिक लिंक्ससाठी OmniRoute ब्राउझरला दिसणारा अधिकृत ओरिजिन म्हणून `NEXT_PUBLIC_BASE_URL` वापरते. प्रमाणीकरण केलेल्या डॅशबोर्ड राइट्समध्ये समान-ओरिजिन विनंत्यांसह सत्राशी बांधलेले CSRF संरक्षण वापरले जाते, त्यामुळे त्यांना स्थिर सार्वजनिक बेस URL ची आवश्यकता नसते. वरील `X-Forwarded-*` हेडर्स तरीही उपयुक्त राउटिंग मेटाडेटा आहेत, परंतु OAuth किंवा व्युत्पन्न केलेल्या ब्राउझर लिंक्सना स्पष्ट सार्वजनिक URL आवश्यक असताना ते तो सेट करण्याचा पर्याय नाहीत. OmniRoute क्लायंटना थेट उपलब्ध नसेल आणि तुमचा प्रॉक्सी येणारे फॉरवर्डेड हेडर्स काढून टाकत/पुन्हा तयार करत असेल, तरच `OMNIROUTE_TRUST_PROXY` सक्षम करा. ### 3.3 सक्षम करा आणि चाचणी करा ```bash # डीफॉल्ट कॉन्फिगरेशन काढून टाका rm -f /etc/nginx/sites-enabled/default # OmniRoute सक्षम करा ln -sf /etc/nginx/sites-available/omniroute /etc/nginx/sites-enabled/omniroute # चाचणी करा आणि पुन्हा लोड करा nginx -t && systemctl reload nginx ``` --- ## 4. Cloudflare DNS कॉन्फिगर करा ### 4.1 DNS रेकॉर्ड जोडा Cloudflare डॅशबोर्ड → DNS मध्ये: | प्रकार | नाव | सामग्री | प्रॉक्सी | | ------ | ------ | ---------------------- | ------------------ | | A | `llms` | `203.0.113.10` (VM IP) | ✅ प्रॉक्सी केलेले | ### 4.2 SSL कॉन्फिगर करा **SSL/TLS → Overview** अंतर्गत: - मोड: **Full (Strict)** **SSL/TLS → Edge Certificates** अंतर्गत: - नेहमी HTTPS वापरा: ✅ सुरू - किमान TLS आवृत्ती: TLS 1.2 - स्वयंचलित HTTPS पुनर्लेखन: ✅ सुरू ### 4.3 चाचणी ```bash curl -sI https://llms.seudominio.com/health # HTTP/2 200 परत मिळायला हवे ``` --- ## 5. संचालन आणि देखभाल ### नवीन आवृत्तीवर अपग्रेड करा ```bash docker pull diegosouzapw/omniroute:latest docker stop omniroute && docker rm omniroute docker run -d --name omniroute --restart unless-stopped \ --env-file /opt/omniroute/.env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` ### लॉग पहा ```bash docker logs -f omniroute # रिअल-टाइम प्रवाह docker logs omniroute --tail 50 # शेवटच्या 50 ओळी ``` ### डेटाबेसचा मॅन्युअल बॅकअप ```bash # व्हॉल्यूममधील डेटा होस्टवर कॉपी करा docker cp omniroute:/app/data ./backup-$(date +%F) # किंवा संपूर्ण व्हॉल्यूम संकुचित करा docker run --rm -v omniroute-data:/data -v $(pwd):/backup \ alpine tar czf /backup/omniroute-data-$(date +%F).tar.gz /data ``` ### बॅकअपमधून पुनर्संचयित करा ```bash docker stop omniroute docker run --rm -v omniroute-data:/data -v $(pwd):/backup \ alpine sh -c "rm -rf /data/* && tar xzf /backup/omniroute-data-YYYY-MM-DD.tar.gz -C /" docker start omniroute ``` --- ## 6. प्रगत सुरक्षा ### nginx चा प्रवेश Cloudflare IP पुरता मर्यादित करा ```bash cat > /etc/nginx/cloudflare-ips.conf << 'CF' # Cloudflare IPv4 श्रेणी — वेळोवेळी अद्ययावत करा # https://www.cloudflare.com/ips-v4/ set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; real_ip_header CF-Connecting-IP; CF ``` `nginx.conf` मधील `http {}` ब्लॉकमध्ये पुढील ओळ जोडा: ```nginx include /etc/nginx/cloudflare-ips.conf; ``` ### fail2ban स्थापित करा ```bash apt install -y fail2ban systemctl enable fail2ban systemctl start fail2ban # स्थिती तपासा fail2ban-client status sshd ``` ### Docker पोर्टवरील थेट प्रवेश अवरोधित करा ```bash # पोर्ट 20128 वरील थेट बाह्य प्रवेश प्रतिबंधित करा iptables -I DOCKER-USER -p tcp --dport 20128 -j DROP iptables -I DOCKER-USER -i lo -p tcp --dport 20128 -j ACCEPT # नियम कायमस्वरूपी जतन करा apt install -y iptables-persistent netfilter-persistent save ``` --- ## 7. Cloudflare Workers वर डिप्लॉय करा (पर्यायी) VM थेट उघडी न करता Cloudflare Workers द्वारे दूरस्थ प्रवेशासाठी: ```bash # स्थानिक रिपॉझिटरीमध्ये cd omnirouteCloud npm install npx wrangler login npx wrangler deploy ``` रिपॉझिटरीमधील Cloudflare Tunnel मार्गदर्शिकेसाठी [TUNNELS_GUIDE.md](./TUNNELS_GUIDE.md) देखील पहा. स्वतंत्र `omnirouteCloud/` worker हा वेगळ्या सहयोगी रिपॉझिटरीमध्ये आहे. --- ## पोर्ट सारांश | पोर्ट | सेवा | प्रवेश | | ----- | ----------- | ----------------------------- | | 22 | SSH | सार्वजनिक (fail2ban सह) | | 80 | nginx HTTP | पुनर्निर्देशन → HTTPS | | 443 | nginx HTTPS | Cloudflare Proxy द्वारे | | 20128 | OmniRoute | फक्त Localhost (nginx द्वारे) | ## कमी मेमरी / लहान VPS साठी ऑप्टिमायझेशन लहान VPS इंस्टन्सवरील (1 GB RAM किंवा त्यापेक्षा कमी) डिप्लॉयमेंटसाठी: - **पार्श्वभूमी सेवा अक्षम करा** — scheduler, MCP server आणि नियतकालिक देखभाल कार्ये वगळण्यासाठी `OMNIROUTE_DISABLE_BACKGROUND_SERVICES=1` सेट करा. `docs/reference/ENVIRONMENT.md` पहा. - **SQLite WAL मोड वापरा** — हा डीफॉल्टनुसार सक्षम असतो आणि समांतर वाचनादरम्यान कमाल मेमरी वापर कमी करतो. - **V8 heap मर्यादित करा** — runtime ने VM पेक्षा मोठी कमाल मर्यादा निर्धारित करू नये यासाठी `OMNIROUTE_MEMORY_MB` (उदा. `512`) सेट करा. `docs/reference/ENVIRONMENT.md` पहा. - **जड विनंत्यांचा प्रवेश heap मर्यादेनुसार आपोआप समायोजित होतो** -- वरीलप्रमाणे `OMNIROUTE_MEMORY_MB` सेट केल्यानंतर, ingest byte budget (`OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES`) त्याच कमाल मर्यादेवरून आपोआप निर्धारित होतो. त्यामुळे मेमरी-मर्यादित VM ला अतिरिक्त ट्यूनिंगशिवाय समांतर विनंत्यांसाठी कमी budget मिळतो; अतिरिक्त विनंत्या मेमरीसाठी स्पर्धा करण्याऐवजी `Retry-After` सह पुन्हा प्रयत्न करता येण्याजोगा `503` प्रतिसाद प्राप्त करतात. त्याव्यतिरिक्त विनंत्यांच्या संख्येवर कठोर कमाल मर्यादा आवश्यक असल्यासच जुनी `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` मर्यादा सेट करा. - **VPS वर `next build` टाळा** — स्थानिक पातळीवर build करा आणि standalone output (`.next/standalone/`) डिप्लॉय करा. - **`top` / `free -m` वापरून निरीक्षण करा** — 1 GB VM वर निष्क्रिय असताना OmniRoute साधारणपणे 200-400 MB RSS वापरते.