omniroute 2.8.3 → 2.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +2 -2
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/_global-error.html +2 -2
  40. package/app/.next/server/app/_global-error.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/models/catalog/route.js +1 -1
  48. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  49. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  50. package/app/.next/server/app/api/providers/[id]/test/route.js +3 -3
  51. package/app/.next/server/app/api/providers/route.js +1 -1
  52. package/app/.next/server/app/api/providers/test-batch/route.js +6 -6
  53. package/app/.next/server/app/api/v1/models/route.js +3 -3
  54. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/v1/route.js +3 -3
  56. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  57. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +2 -2
  70. package/app/.next/server/chunks/[root-of-the-server]__134baf4c._.js +2 -2
  71. package/app/.next/server/chunks/[root-of-the-server]__2f8f5f38._.js +2 -2
  72. package/app/.next/server/chunks/[root-of-the-server]__31027061._.js +4 -0
  73. package/app/.next/server/chunks/[root-of-the-server]__3e042fbd._.js +2 -2
  74. package/app/.next/server/chunks/[root-of-the-server]__7a9b72a4._.js +2 -2
  75. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +2 -2
  76. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  77. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +1 -1
  78. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +1 -1
  79. package/app/.next/server/chunks/[root-of-the-server]__d4563e10._.js +1 -1
  80. package/app/.next/server/chunks/[root-of-the-server]__d7914418._.js +4 -0
  81. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  82. package/app/.next/server/chunks/[root-of-the-server]__e27a89bd._.js +1 -1
  83. package/app/.next/server/chunks/[root-of-the-server]__ebf3fe48._.js +2 -2
  84. package/app/.next/server/chunks/[root-of-the-server]__f0131d95._.js +4 -0
  85. package/app/.next/server/chunks/[root-of-the-server]__f31b4656._.js +3 -3
  86. package/app/.next/server/chunks/[root-of-the-server]__fad1679d._.js +2 -2
  87. package/app/.next/server/chunks/_05c48915._.js +1 -1
  88. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  89. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  90. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  91. package/app/.next/server/chunks/_68683848._.js +1 -1
  92. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  93. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  94. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  95. package/app/.next/server/chunks/ssr/_19b3d5b1._.js +2 -2
  96. package/app/.next/server/chunks/ssr/src_ec615d6e._.js +2 -2
  97. package/app/.next/server/pages/500.html +2 -2
  98. package/app/.next/server/server-reference-manifest.js +1 -1
  99. package/app/.next/server/server-reference-manifest.json +1 -1
  100. package/app/.next/static/chunks/{19b1432393321fcf.js → 1e206030e7793015.js} +1 -1
  101. package/app/.next/static/chunks/{37e9976d0367faad.js → 3fa6c964786c962d.js} +4 -4
  102. package/app/CHANGELOG.md +29 -0
  103. package/app/docs/ARCHITECTURE.md +1 -1
  104. package/app/docs/VM_DEPLOYMENT_GUIDE.md +2 -0
  105. package/app/docs/i18n/README.md +9 -17
  106. package/app/docs/i18n/ar/VM_DEPLOYMENT_GUIDE.md +110 -112
  107. package/app/docs/i18n/bg/VM_DEPLOYMENT_GUIDE.md +110 -112
  108. package/app/docs/i18n/da/VM_DEPLOYMENT_GUIDE.md +110 -112
  109. package/app/docs/i18n/de/VM_DEPLOYMENT_GUIDE.md +110 -112
  110. package/app/docs/i18n/es/VM_DEPLOYMENT_GUIDE.md +107 -109
  111. package/app/docs/i18n/fi/VM_DEPLOYMENT_GUIDE.md +110 -112
  112. package/app/docs/i18n/fr/VM_DEPLOYMENT_GUIDE.md +110 -112
  113. package/app/docs/i18n/he/VM_DEPLOYMENT_GUIDE.md +110 -112
  114. package/app/docs/i18n/hu/VM_DEPLOYMENT_GUIDE.md +110 -112
  115. package/app/docs/i18n/id/VM_DEPLOYMENT_GUIDE.md +110 -112
  116. package/app/docs/i18n/in/VM_DEPLOYMENT_GUIDE.md +102 -210
  117. package/app/docs/i18n/it/VM_DEPLOYMENT_GUIDE.md +110 -112
  118. package/app/docs/i18n/ja/VM_DEPLOYMENT_GUIDE.md +110 -112
  119. package/app/docs/i18n/ko/VM_DEPLOYMENT_GUIDE.md +109 -111
  120. package/app/docs/i18n/ms/VM_DEPLOYMENT_GUIDE.md +110 -112
  121. package/app/docs/i18n/nl/VM_DEPLOYMENT_GUIDE.md +110 -112
  122. package/app/docs/i18n/no/VM_DEPLOYMENT_GUIDE.md +110 -112
  123. package/app/docs/i18n/phi/VM_DEPLOYMENT_GUIDE.md +110 -112
  124. package/app/docs/i18n/pl/VM_DEPLOYMENT_GUIDE.md +110 -112
  125. package/app/docs/i18n/pt/VM_DEPLOYMENT_GUIDE.md +96 -98
  126. package/app/docs/i18n/pt-BR/VM_DEPLOYMENT_GUIDE.md +96 -98
  127. package/app/docs/i18n/ro/VM_DEPLOYMENT_GUIDE.md +110 -112
  128. package/app/docs/i18n/ru/VM_DEPLOYMENT_GUIDE.md +110 -112
  129. package/app/docs/i18n/sk/VM_DEPLOYMENT_GUIDE.md +110 -112
  130. package/app/docs/i18n/sv/VM_DEPLOYMENT_GUIDE.md +110 -112
  131. package/app/docs/i18n/th/VM_DEPLOYMENT_GUIDE.md +110 -112
  132. package/app/docs/i18n/uk-UA/VM_DEPLOYMENT_GUIDE.md +110 -112
  133. package/app/docs/i18n/vi/VM_DEPLOYMENT_GUIDE.md +110 -112
  134. package/app/docs/i18n/zh-CN/VM_DEPLOYMENT_GUIDE.md +110 -112
  135. package/app/docs/openapi.yaml +1 -1
  136. package/app/package-lock.json +5 -5
  137. package/app/package.json +1 -1
  138. package/app/scripts/i18n/generate-multilang.mjs +1 -0
  139. package/app/src/shared/constants/providers.ts +3 -0
  140. package/app/src/shared/validation/providerSchema.ts +6 -0
  141. package/package.json +1 -1
  142. package/app/.next/server/chunks/[root-of-the-server]__61396d77._.js +0 -4
  143. package/app/.next/server/chunks/[root-of-the-server]__d5ecc2ba._.js +0 -4
  144. package/app/.next/server/chunks/[root-of-the-server]__daa26645._.js +0 -4
  145. /package/app/.next/static/{IiXcm5VJcOKrDneQQSdf- → Ys6bRJXPNt8j-MKOjvZwp}/_buildManifest.js +0 -0
  146. /package/app/.next/static/{IiXcm5VJcOKrDneQQSdf- → Ys6bRJXPNt8j-MKOjvZwp}/_clientMiddlewareManifest.json +0 -0
  147. /package/app/.next/static/{IiXcm5VJcOKrDneQQSdf- → Ys6bRJXPNt8j-MKOjvZwp}/_ssgManifest.js +0 -0
@@ -1,38 +1,36 @@
1
- 🌐 **Languages:** 🇺🇸 [English](../../README.md) · 🇧🇷 [pt-BR](../pt-BR/VM_DEPLOYMENT_GUIDE.md) · 🇪🇸 [es](../es/VM_DEPLOYMENT_GUIDE.md) · 🇫🇷 [fr](../fr/VM_DEPLOYMENT_GUIDE.md) · 🇩🇪 [de](../de/VM_DEPLOYMENT_GUIDE.md) · 🇮🇹 [it](../it/VM_DEPLOYMENT_GUIDE.md) · 🇷🇺 [ru](../ru/VM_DEPLOYMENT_GUIDE.md) · 🇨🇳 [zh-CN](../zh-CN/VM_DEPLOYMENT_GUIDE.md) · 🇯🇵 [ja](../ja/VM_DEPLOYMENT_GUIDE.md) · 🇰🇷 [ko](../ko/VM_DEPLOYMENT_GUIDE.md) · 🇸🇦 [ar](../ar/VM_DEPLOYMENT_GUIDE.md) · 🇮🇳 [in](../in/VM_DEPLOYMENT_GUIDE.md) · 🇹🇭 [th](../th/VM_DEPLOYMENT_GUIDE.md) · 🇻🇳 [vi](../vi/VM_DEPLOYMENT_GUIDE.md) · 🇮🇩 [id](../id/VM_DEPLOYMENT_GUIDE.md) · 🇲🇾 [ms](../ms/VM_DEPLOYMENT_GUIDE.md) · 🇳🇱 [nl](../nl/VM_DEPLOYMENT_GUIDE.md) · 🇵🇱 [pl](../pl/VM_DEPLOYMENT_GUIDE.md) · 🇸🇪 [sv](../sv/VM_DEPLOYMENT_GUIDE.md) · 🇳🇴 [no](../no/VM_DEPLOYMENT_GUIDE.md) · 🇩🇰 [da](../da/VM_DEPLOYMENT_GUIDE.md) · 🇫🇮 [fi](../fi/VM_DEPLOYMENT_GUIDE.md) · 🇵🇹 [pt](../pt/VM_DEPLOYMENT_GUIDE.md) · 🇷🇴 [ro](../ro/VM_DEPLOYMENT_GUIDE.md) · 🇭🇺 [hu](../hu/VM_DEPLOYMENT_GUIDE.md) · 🇧🇬 [bg](../bg/VM_DEPLOYMENT_GUIDE.md) · 🇸🇰 [sk](../sk/VM_DEPLOYMENT_GUIDE.md) · 🇺🇦 [uk-UA](../uk-UA/VM_DEPLOYMENT_GUIDE.md) · 🇮🇱 [he](../he/VM_DEPLOYMENT_GUIDE.md) · 🇵🇭 [phi](../phi/VM_DEPLOYMENT_GUIDE.md)
1
+ # OmniRoute Guia de implantação em VM com Cloudflare
2
2
 
3
- ---
4
-
5
- # OmniRoute — Guia de Deploy em VM com Cloudflare
3
+ 🌐 **Languages:** 🇺🇸 [English](../../VM_DEPLOYMENT_GUIDE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/VM_DEPLOYMENT_GUIDE.md) | 🇪🇸 [Español](../es/VM_DEPLOYMENT_GUIDE.md) | 🇫🇷 [Français](../fr/VM_DEPLOYMENT_GUIDE.md) | 🇮🇹 [Italiano](../it/VM_DEPLOYMENT_GUIDE.md) | 🇷🇺 [Русский](../ru/VM_DEPLOYMENT_GUIDE.md) | 🇨🇳 [中文 (简体)](../zh-CN/VM_DEPLOYMENT_GUIDE.md) | 🇩🇪 [Deutsch](../de/VM_DEPLOYMENT_GUIDE.md) | 🇮🇳 [हिन्दी](../in/VM_DEPLOYMENT_GUIDE.md) | 🇹🇭 [ไทย](../th/VM_DEPLOYMENT_GUIDE.md) | 🇺🇦 [Українська](../uk-UA/VM_DEPLOYMENT_GUIDE.md) | 🇸🇦 [العربية](../ar/VM_DEPLOYMENT_GUIDE.md) | 🇯🇵 [日本語](../ja/VM_DEPLOYMENT_GUIDE.md) | 🇻🇳 [Tiếng Việt](../vi/VM_DEPLOYMENT_GUIDE.md) | 🇧🇬 [Български](../bg/VM_DEPLOYMENT_GUIDE.md) | 🇩🇰 [Dansk](../da/VM_DEPLOYMENT_GUIDE.md) | 🇫🇮 [Suomi](../fi/VM_DEPLOYMENT_GUIDE.md) | 🇮🇱 [עברית](../he/VM_DEPLOYMENT_GUIDE.md) | 🇭🇺 [Magyar](../hu/VM_DEPLOYMENT_GUIDE.md) | 🇮🇩 [Bahasa Indonesia](../id/VM_DEPLOYMENT_GUIDE.md) | 🇰🇷 [한국어](../ko/VM_DEPLOYMENT_GUIDE.md) | 🇲🇾 [Bahasa Melayu](../ms/VM_DEPLOYMENT_GUIDE.md) | 🇳🇱 [Nederlands](../nl/VM_DEPLOYMENT_GUIDE.md) | 🇳🇴 [Norsk](../no/VM_DEPLOYMENT_GUIDE.md) | 🇵🇹 [Português (Portugal)](../pt/VM_DEPLOYMENT_GUIDE.md) | 🇷🇴 [Română](../ro/VM_DEPLOYMENT_GUIDE.md) | 🇵🇱 [Polski](../pl/VM_DEPLOYMENT_GUIDE.md) | 🇸🇰 [Slovenčina](../sk/VM_DEPLOYMENT_GUIDE.md) | 🇸🇪 [Svenska](../sv/VM_DEPLOYMENT_GUIDE.md) | 🇵🇭 [Filipino](../phi/VM_DEPLOYMENT_GUIDE.md) | 🇨🇿 [Čeština](../cs/VM_DEPLOYMENT_GUIDE.md)
6
4
 
7
- Guia completo para instalar e configurar o OmniRoute em uma VM (VPS) com domínio gerenciado via Cloudflare.
5
+ Guia completo para instalar e configurar OmniRoute em uma VM (VPS) com domínio gerenciado via Cloudflare.
8
6
 
9
7
  ---
10
8
 
11
- ## Pré-Requisitos
9
+ ## Pré-requisitos
12
10
 
13
- | Item | Mínimo | Recomendado |
14
- | ----------- | ------------------------ | ---------------- |
15
- | **CPU** | 1 vCPU | 2 vCPU |
16
- | **RAM** | 1 GB | 2 GB |
17
- | **Disco** | 10 GB SSD | 25 GB SSD |
18
- | **SO** | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
19
- | **Domínio** | Registrado no Cloudflare | — |
20
- | **Docker** | Docker Engine 24+ | Docker 27+ |
11
+ | Artigo | Mínimo | Recomendado |
12
+ | ----------- | ------------------------ | --------------- |
13
+ | **CPU** | 1 vCPU | 2 vCPUs |
14
+ | **RAM** | 1 GB | 2 GB |
15
+ | **Disco** | SSD de 10 GB | SSD de 25 GB |
16
+ | **SO** | Ubuntu 22.04LTS | Ubuntu 24.04LTS |
17
+ | **Domínio** | Registrado na Cloudflare | — |
18
+ | **Docker** | Motor Docker 24+ | Docker 27+ |
21
19
 
22
- **Providers testados**: Akamai (Linode), DigitalOcean, Vultr, Hetzner, AWS Lightsail.
20
+ **Provedores testados**: Akamai (Linode), DigitalOcean, Vultr, Hetzner, AWS Lightsail.
23
21
 
24
22
  ---
25
23
 
26
- ## 1. Configurar a VM
24
+ ## 1. Configure a VM
27
25
 
28
- ### 1.1 Criar a instância
26
+ ### 1.1 Crie a instância
29
27
 
30
- No seu provider de VPS preferido:
28
+ No seu provedor VPS preferido:
31
29
 
32
30
  - Escolha Ubuntu 24.04 LTS
33
31
  - Selecione o plano mínimo (1 vCPU / 1 GB RAM)
34
- - Defina uma senha forte para root ou configure SSH key
35
- - Anote o **IP público** (ex: `203.0.113.10`)
32
+ - Defina uma senha root forte ou configure a chave SSH
33
+ - Observe o **IP público** (por exemplo, `203.0.113.10`)
36
34
 
37
35
  ### 1.2 Conectar via SSH
38
36
 
@@ -46,22 +44,22 @@ ssh root@203.0.113.10
46
44
  apt update && apt upgrade -y
47
45
  ```
48
46
 
49
- ### 1.4 Instalar Docker
47
+ ### 1.4 Instalar o Docker
50
48
 
51
49
  ```bash
52
- # Instalar dependências
50
+ # Install dependencies
53
51
  apt install -y ca-certificates curl gnupg
54
52
 
55
- # Adicionar repositório oficial do Docker
53
+ # Add official Docker repository
56
54
  install -m 0755 -d /etc/apt/keyrings
57
55
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
58
56
  chmod a+r /etc/apt/keyrings/docker.gpg
59
- 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
57
+ 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
60
58
  apt update
61
59
  apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
62
60
  ```
63
61
 
64
- ### 1.5 Instalar nginx
62
+ ### 1.5 Instale o nginx
65
63
 
66
64
  ```bash
67
65
  apt install -y nginx
@@ -78,11 +76,11 @@ ufw allow 443/tcp # HTTPS
78
76
  ufw enable
79
77
  ```
80
78
 
81
- > **Dica**: Para segurança máxima, restrinja as portas 80 e 443 apenas para IPs da Cloudflare. Veja a seção [Segurança Avançada](#segurança-avançada).
79
+ > **Dica**: para segurança máxima, restrinja as portas 80 e 443 apenas aos IPs da Cloudflare. Consulte a seção [Advanced Security](#advanced-security).
82
80
 
83
81
  ---
84
82
 
85
- ## 2. Instalar o OmniRoute
83
+ ## 2. Instale o OmniRoute
86
84
 
87
85
  ### 2.1 Criar diretório de configuração
88
86
 
@@ -93,14 +91,14 @@ mkdir -p /opt/omniroute
93
91
  ### 2.2 Criar arquivo de variáveis de ambiente
94
92
 
95
93
  ```bash
96
- cat > /opt/omniroute/.env << 'EOF'
97
- # === Segurança ===
98
- JWT_SECRET=ALTERE-PARA-CHAVE-SECRETA-UNICA-64-CHARS
99
- INITIAL_PASSWORD=SuaSenhaSegura123!
100
- API_KEY_SECRET=ALTERE-PARA-OUTRA-CHAVE-SECRETA
101
- STORAGE_ENCRYPTION_KEY=ALTERE-PARA-TERCEIRA-CHAVE-SECRETA
94
+ cat > /opt/omniroute/.env << EOF
95
+ # === Security ===
96
+ JWT_SECRET=CHANGE-TO-A-UNIQUE-64-CHAR-SECRET-KEY
97
+ INITIAL_PASSWORD=YourSecurePassword123!
98
+ API_KEY_SECRET=REPLACE-WITH-ANOTHER-SECRET-KEY
99
+ STORAGE_ENCRYPTION_KEY=REPLACE-WITH-THIRD-SECRET-KEY
102
100
  STORAGE_ENCRYPTION_KEY_VERSION=v1
103
- MACHINE_ID_SALT=ALTERE-PARA-SALT-UNICO
101
+ MACHINE_ID_SALT=CHANGE-TO-A-UNIQUE-SALT
104
102
 
105
103
  # === App ===
106
104
  PORT=20128
@@ -112,19 +110,19 @@ ENABLE_REQUEST_LOGS=true
112
110
  AUTH_COOKIE_SECURE=false
113
111
  REQUIRE_API_KEY=false
114
112
 
115
- # === Domain (altere para seu domínio) ===
113
+ # === Domain (change to your domain) ===
116
114
  BASE_URL=https://llms.seudominio.com
117
115
  NEXT_PUBLIC_BASE_URL=https://llms.seudominio.com
118
116
 
119
- # === Cloud Sync (opcional) ===
117
+ # === Cloud Sync (optional) ===
120
118
  # CLOUD_URL=https://cloud.omniroute.online
121
119
  # NEXT_PUBLIC_CLOUD_URL=https://cloud.omniroute.online
122
120
  EOF
123
121
  ```
124
122
 
125
- > ⚠️ **IMPORTANTE**: Gere chaves secretas únicas! Use `openssl rand -hex 32` para cada chave.
123
+ > ⚠️ **IMPORTANTE**: Gere chaves secretas exclusivas! Use `openssl rand -hex 32` para cada chave.
126
124
 
127
- ### 2.3 Iniciar o container
125
+ ### 2.3 Inicie o contêiner
128
126
 
129
127
  ```bash
130
128
  docker pull diegosouzapw/omniroute:latest
@@ -138,7 +136,7 @@ docker run -d \
138
136
  diegosouzapw/omniroute:latest
139
137
  ```
140
138
 
141
- ### 2.4 Verificar se está rodando
139
+ ### 2.4 Verifique se está em execução
142
140
 
143
141
  ```bash
144
142
  docker ps | grep omniroute
@@ -149,34 +147,34 @@ Deve exibir: `[DB] SQLite database ready` e `listening on port 20128`.
149
147
 
150
148
  ---
151
149
 
152
- ## 3. Configurar nginx (Reverse Proxy)
150
+ ## 3. Configurar nginx (proxy reverso)
153
151
 
154
- ### 3.1 Gerar certificado SSL (Cloudflare Origin)
152
+ ### 3.1 Gerar certificado SSL (Origem Cloudflare)
155
153
 
156
154
  No painel da Cloudflare:
157
155
 
158
- 1. Vá em **SSL/TLS → Origin Server**
159
- 2. Clique **Create Certificate**
160
- 3. Deixe os padrões (15 anos, \*.seudominio.com)
161
- 4. Copie o **Origin Certificate** e a **Private Key**
156
+ 1. Vá para **SSL/TLS → Servidor de Origem**
157
+ 2. Clique em **Criar certificado**
158
+ 3. Mantenha os padrões (15 anos, \*.seudominio.com)
159
+ 4. Copie o **Certificado de Origem** e a **Chave Privada**
162
160
 
163
161
  ```bash
164
162
  mkdir -p /etc/nginx/ssl
165
163
 
166
- # Colar o certificado
164
+ # Paste the certificate
167
165
  nano /etc/nginx/ssl/origin.crt
168
166
 
169
- # Colar a chave privada
167
+ # Paste the private key
170
168
  nano /etc/nginx/ssl/origin.key
171
169
 
172
170
  chmod 600 /etc/nginx/ssl/origin.key
173
171
  ```
174
172
 
175
- ### 3.2 Configuração do nginx
173
+ ### 3.2 Configuração Nginx
176
174
 
177
175
  ```bash
178
- cat > /etc/nginx/sites-available/omniroute << 'NGINX'
179
- # Default server — bloqueia acesso direto por IP
176
+ cat > /etc/nginx/sites-available/omniroute << NGINX
177
+ # Default server — blocks direct access via IP
180
178
  server {
181
179
  listen 80 default_server;
182
180
  listen [::]:80 default_server;
@@ -192,7 +190,7 @@ server {
192
190
  server {
193
191
  listen 443 ssl;
194
192
  listen [::]:443 ssl;
195
- server_name llms.seudominio.com; # Altere para seu domínio
193
+ server_name llms.yourdomain.com; # Change to your domain
196
194
 
197
195
  ssl_certificate /etc/nginx/ssl/origin.crt;
198
196
  ssl_certificate_key /etc/nginx/ssl/origin.key;
@@ -210,7 +208,7 @@ server {
210
208
  # WebSocket support
211
209
  proxy_http_version 1.1;
212
210
  proxy_set_header Upgrade $http_upgrade;
213
- proxy_set_header Connection "upgrade";
211
+ proxy_set_header Connection upgrade”;
214
212
 
215
213
  # SSE (Server-Sent Events) — streaming AI responses
216
214
  proxy_buffering off;
@@ -224,61 +222,61 @@ server {
224
222
  server {
225
223
  listen 80;
226
224
  listen [::]:80;
227
- server_name llms.seudominio.com;
225
+ server_name llms.yourdomain.com;
228
226
  return 301 https://$server_name$request_uri;
229
227
  }
230
228
  NGINX
231
229
  ```
232
230
 
233
- ### 3.3 Ativar e testar
231
+ ### 3.3 Habilitar e testar
234
232
 
235
233
  ```bash
236
- # Remover config padrão
234
+ # Remove default configuration
237
235
  rm -f /etc/nginx/sites-enabled/default
238
236
 
239
- # Ativar OmniRoute
237
+ # Enable OmniRoute
240
238
  ln -sf /etc/nginx/sites-available/omniroute /etc/nginx/sites-enabled/omniroute
241
239
 
242
- # Testar e recarregar
240
+ # Test and reload
243
241
  nginx -t && systemctl reload nginx
244
242
  ```
245
243
 
246
244
  ---
247
245
 
248
- ## 4. Configurar Cloudflare DNS
246
+ ## 4. Configurar DNS da Cloudflare
249
247
 
250
248
  ### 4.1 Adicionar registro DNS
251
249
 
252
- No painel da Cloudflare → DNS:
250
+ No painel Cloudflare → DNS:
253
251
 
254
- | Type | Name | Content | Proxy |
255
- | ---- | ------ | ------------------------- | ---------- |
256
- | A | `llms` | `203.0.113.10` (IP da VM) | ✅ Proxied |
252
+ | Tipo | Nome | Conteúdo | Procuração |
253
+ | ---- | ------ | ------------------------- | ------------ |
254
+ | Um | `llms` | `203.0.113.10` (IP da VM) | ✅ Procurado |
257
255
 
258
256
  ### 4.2 Configurar SSL
259
257
 
260
- Em **SSL/TLS → Overview**:
258
+ Em **SSL/TLS → Visão geral**:
261
259
 
262
- - Modo: **Full (Strict)**
260
+ - Modo: **Completo (estrito)**
263
261
 
264
- Em **SSL/TLS → Edge Certificates**:
262
+ Em **SSL/TLS → Certificados Edge**:
265
263
 
266
- - Always Use HTTPS: ✅ On
267
- - Minimum TLS Version: TLS 1.2
268
- - Automatic HTTPS Rewrites: ✅ On
264
+ - Sempre use HTTPS: ✅ Ligado
265
+ - Versão mínima do TLS: TLS 1.2
266
+ - Reescritas automáticas de HTTPS: ✅ Ativado
269
267
 
270
- ### 4.3 Testar
268
+ ### 4.3 Teste
271
269
 
272
270
  ```bash
273
271
  curl -sI https://llms.seudominio.com/health
274
- # Deve retornar HTTP/2 200
272
+ # Should return HTTP/2 200
275
273
  ```
276
274
 
277
275
  ---
278
276
 
279
277
  ## 5. Operações e Manutenção
280
278
 
281
- ### Atualizar para nova versão
279
+ ### Atualize para uma nova versão
282
280
 
283
281
  ```bash
284
282
  docker pull diegosouzapw/omniroute:latest
@@ -290,30 +288,30 @@ docker run -d --name omniroute --restart unless-stopped \
290
288
  diegosouzapw/omniroute:latest
291
289
  ```
292
290
 
293
- ### Ver logs
291
+ ### Ver registros
294
292
 
295
293
  ```bash
296
- docker logs -f omniroute # Stream em tempo real
297
- docker logs omniroute --tail 50 # Últimas 50 linhas
294
+ docker logs -f omniroute # Real-time stream
295
+ docker logs omniroute --tail 50 # Last 50 lines
298
296
  ```
299
297
 
300
- ### Backup manual do banco
298
+ ### Backup manual do banco de dados
301
299
 
302
300
  ```bash
303
- # Copiar dados do volume para o host
301
+ # Copy data from the volume to the host
304
302
  docker cp omniroute:/app/data ./backup-$(date +%F)
305
303
 
306
- # Ou comprimir todo o volume
304
+ # Or compress the entire volume
307
305
  docker run --rm -v omniroute-data:/data -v $(pwd):/backup \
308
306
  alpine tar czf /backup/omniroute-data-$(date +%F).tar.gz /data
309
307
  ```
310
308
 
311
- ### Restaurar de backup
309
+ ### Restaurar do backup
312
310
 
313
311
  ```bash
314
312
  docker stop omniroute
315
313
  docker run --rm -v omniroute-data:/data -v $(pwd):/backup \
316
- alpine sh -c "rm -rf /data/* && tar xzf /backup/omniroute-data-YYYY-MM-DD.tar.gz -C /"
314
+ alpine sh -c rm -rf /data/* && tar xzf /backup/omniroute-data-YYYY-MM-DD.tar.gz -C /”
317
315
  docker start omniroute
318
316
  ```
319
317
 
@@ -321,11 +319,11 @@ docker start omniroute
321
319
 
322
320
  ## 6. Segurança Avançada
323
321
 
324
- ### Restringir nginx para Cloudflare IPs
322
+ ### Restringir o nginx aos IPs da Cloudflare
325
323
 
326
324
  ```bash
327
- cat > /etc/nginx/cloudflare-ips.conf << 'CF'
328
- # Cloudflare IPv4 ranges — atualizar periodicamente
325
+ cat > /etc/nginx/cloudflare-ips.conf << CF
326
+ # Cloudflare IPv4 ranges — update periodically
329
327
  # https://www.cloudflare.com/ips-v4/
330
328
  set_real_ip_from 173.245.48.0/20;
331
329
  set_real_ip_from 103.21.244.0/22;
@@ -346,58 +344,58 @@ real_ip_header CF-Connecting-IP;
346
344
  CF
347
345
  ```
348
346
 
349
- Adicionar no `nginx.conf` dentro do bloco `http {}`:
347
+ Adicione o seguinte a `nginx.conf` dentro do bloco `http {}`:
350
348
 
351
349
  ```nginx
352
350
  include /etc/nginx/cloudflare-ips.conf;
353
351
  ```
354
352
 
355
- ### Install fail2ban
353
+ ### Instale o fail2ban
356
354
 
357
355
  ```bash
358
356
  apt install -y fail2ban
359
357
  systemctl enable fail2ban
360
358
  systemctl start fail2ban
361
359
 
362
- # Verificar status
360
+ # Check status
363
361
  fail2ban-client status sshd
364
362
  ```
365
363
 
366
- ### Bloquear acesso direto na porta do Docker
364
+ ### Bloqueie o acesso direto à porta Docker
367
365
 
368
366
  ```bash
369
- # Impedir acesso externo direto à porta 20128
367
+ # Prevent direct external access to port 20128
370
368
  iptables -I DOCKER-USER -p tcp --dport 20128 -j DROP
371
369
  iptables -I DOCKER-USER -i lo -p tcp --dport 20128 -j ACCEPT
372
370
 
373
- # Persistir as regras
371
+ # Persist the rules
374
372
  apt install -y iptables-persistent
375
373
  netfilter-persistent save
376
374
  ```
377
375
 
378
376
  ---
379
377
 
380
- ## 7. Deploy do Cloud Worker (Opcional)
378
+ ## 7. Implantar em Cloudflare Workers (opcional)
381
379
 
382
380
  Para acesso remoto via Cloudflare Workers (sem expor a VM diretamente):
383
381
 
384
382
  ```bash
385
- # No repositório local
383
+ # In the local repository
386
384
  cd omnirouteCloud
387
385
  npm install
388
386
  npx wrangler login
389
387
  npx wrangler deploy
390
388
  ```
391
389
 
392
- Ver documentação completa em [omnirouteCloud/README.md](../omnirouteCloud/README.md).
390
+ Veja a documentação completa em [omnirouteCloud/README.md](../omnirouteCloud/README.md).
393
391
 
394
392
  ---
395
393
 
396
- ## Resumo de Portas
394
+ ## Resumo da porta
397
395
 
398
- | Porta | Serviço | Acesso |
399
- | ----- | ----------- | ----------------------------- |
400
- | 22 | SSH | Público (com fail2ban) |
401
- | 80 | nginx HTTP | Redirect → HTTPS |
402
- | 443 | nginx HTTPS | Via Cloudflare Proxy |
403
- | 20128 | OmniRoute | Somente localhost (via nginx) |
396
+ | Porto | Serviço | Acesso |
397
+ | ----- | ----------- | ---------------------------- |
398
+ | 22 | SSH | Público (com fail2ban) |
399
+ | 80 | HTTP nginx | Redirecionar → HTTPS |
400
+ | 443 | HTTPS nginx | Através do proxy Cloudflare |
401
+ | 20128 | OmniRoute | Apenas localhost (via nginx) |