# 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) · 🇮🇳 [mr](../../../mr/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) · 🇹🇭 [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) · 🇮🇳 [mr](../../../mr/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) · 🇹🇭 [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 bridge ద్వారా ఉపయోగించబడుతుంది # === యాప్ === 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 # === URLలు (మీ డొమైన్కు మార్చండి) === # షెడ్యూల్ చేసిన జాబ్లు / స్వీయ-ఫెచ్ల కోసం అంతర్గత సర్వర్-టు-సర్వర్ బేస్ URL. BASE_URL=http://127.0.0.1:20128 # OAuth కాల్బ్యాక్లు, డ్యాష్బోర్డ్ లింక్లు మరియు రూపొందించిన పబ్లిక్ URLల కోసం ఉపయోగించే బ్రౌజర్-ఫేసింగ్ URL. NEXT_PUBLIC_BASE_URL=https://llms.seudominio.com # రూపొందించిన పబ్లిక్ అసెట్ URLల కోసం ఐచ్ఛిక స్పష్టమైన పబ్లిక్ ఆరిజిన్ ఓవర్రైడ్. # 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 టైమ్అవుట్ ఎన్విరాన్మెంట్ వేరియబుల్స్తో సమలేఖనంలో ఉంచండి. మీరు `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 ``` `http {}` బ్లాక్ లోపల `nginx.conf`కు కింది దాన్ని జోడించండి: ```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/` వర్కర్ ప్రత్యేక సహచర రిపోజిటరీలో ఉంటుంది. --- ## పోర్ట్ సారాంశం | పోర్ట్ | సేవ | యాక్సెస్ | | ------ | ----------- | -------------------------------- | | 22 | SSH | పబ్లిక్ (`fail2ban`తో) | | 80 | nginx HTTP | దారి మళ్లింపు → HTTPS | | 443 | nginx HTTPS | Cloudflare Proxy ద్వారా | | 20128 | OmniRoute | Localhost మాత్రమే (nginx ద్వారా) | ## తక్కువ-మెమరీ / చిన్న VPS ఆప్టిమైజేషన్ చిన్న VPS ఇన్స్టాన్స్లపై (1 GB RAM లేదా అంతకంటే తక్కువ) డిప్లాయ్మెంట్ల కోసం: - **బ్యాక్గ్రౌండ్ సేవలను నిలిపివేయండి** — షెడ్యూలర్, MCP సర్వర్ మరియు కాలానుగుణ నిర్వహణ టాస్క్లను దాటవేయడానికి `OMNIROUTE_DISABLE_BACKGROUND_SERVICES=1`గా సెట్ చేయండి. `docs/reference/ENVIRONMENT.md` చూడండి. - **SQLite WAL మోడ్ను ఉపయోగించండి** — ఇది డిఫాల్ట్గా ప్రారంభించబడి ఉంటుంది మరియు ఏకకాల రీడ్ల సమయంలో గరిష్ఠ మెమరీ వినియోగాన్ని తగ్గిస్తుంది. - **V8 హీప్కు పరిమితి విధించండి** — రన్టైమ్ VM కంటే పెద్ద పరిమితిని కాలిబ్రేట్ చేయకుండా ఉండేందుకు `OMNIROUTE_MEMORY_MB`ని (ఉదా. `512`) సెట్ చేయండి. `docs/reference/ENVIRONMENT.md` చూడండి. - **హెవీవెయిట్ అడ్మిషన్ హీప్ పరిమితికి అనుగుణంగా ఆటోమేటిక్గా స్కేల్ అవుతుంది** -- పైన `OMNIROUTE_MEMORY_MB`ని సెట్ చేసిన తర్వాత, ఇన్జెస్ట్ బైట్ బడ్జెట్ (`OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES`) అదే పరిమితి నుండి స్వయంగా ఉత్పన్నమవుతుంది. అందువల్ల మెమరీ పరిమితి ఉన్న VMకి అదనపు ట్యూనింగ్ లేకుండానే చిన్న ఏకకాల అభ్యర్థన బడ్జెట్ లభిస్తుంది; అదనపు అభ్యర్థనలు మెమరీ కోసం పోటీ పడటానికి బదులుగా `Retry-After`తో మళ్లీ ప్రయత్నించగల `503` ప్రతిస్పందనను పొందుతాయి. దీనికి అదనంగా కఠినమైన గరిష్ఠ పరిమితి అవసరమైతే మాత్రమే పాత `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` అభ్యర్థన-సంఖ్య పరిమితిని సెట్ చేయండి. - **VPSపై `next build`ను నివారించండి** — లోకల్గా బిల్డ్ చేసి, స్టాండ్అలోన్ అవుట్పుట్ను (`.next/standalone/`) డిప్లాయ్ చేయండి. - **`top` / `free -m`తో పర్యవేక్షించండి** — 1 GB VMపై నిష్క్రియ స్థితిలో OmniRoute సాధారణంగా 200-400 MB RSSను ఉపయోగిస్తుంది.