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,73 +1,71 @@
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 Hướng dẫn triển khai trên VM với 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
+ Hướng dẫn đầy đủ để cài đặt và định cấu hình OmniRoute trên VM (VPS) với miền được quản lý qua Cloudflare.
8
6
 
9
7
  ---
10
8
 
11
- ## Pré-Requisitos
9
+ ## Điều kiện tiên quyết
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
+ | Mục | Tối thiểu | Được đề xuất |
12
+ | ---------- | -------------------------- | ---------------- |
13
+ | **CPU** | 1 vCPU | 2 vCPU |
14
+ | **RAM** | 1 GB | 2 GB |
15
+ | **Đĩa** | SSD 10GB | SSD 25 GB |
16
+ | **HĐH** | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
17
+ | **Miền** | Đã đăng ký trên Cloudflare | — |
18
+ | **Docker** | Công cụ Docker 24+ | Docker 27+ |
21
19
 
22
- **Providers testados**: Akamai (Linode), DigitalOcean, Vultr, Hetzner, AWS Lightsail.
20
+ **Các nhà cung cấp đã được thử nghiệm**: Akamai (Linode), DigitalOcean, Vultr, Hetzner, AWS Lightsail.
23
21
 
24
22
  ---
25
23
 
26
- ## 1. Configurar a VM
24
+ ## 1. Cấu hình VM
27
25
 
28
- ### 1.1 Criar a instância
26
+ ### 1.1 Tạo phiên bản
29
27
 
30
- No seu provider de VPS preferido:
28
+ Trên nhà cung cấp VPS ưa thích của bạn:
31
29
 
32
- - Escolha Ubuntu 24.04 LTS
33
- - 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`)
30
+ - Chọn Ubuntu 24.04 LTS
31
+ - Chọn gói tối thiểu (1 vCPU / 1 GB RAM)
32
+ - Đặt mật khẩu root mạnh hoặc định cấu hình khóa SSH
33
+ - Lưu ý **IP công cộng** ( dụ: `203.0.113.10`)
36
34
 
37
- ### 1.2 Conectar via SSH
35
+ ### 1.2 Kết nối qua SSH
38
36
 
39
37
  ```bash
40
38
  ssh root@203.0.113.10
41
39
  ```
42
40
 
43
- ### 1.3 Atualizar o sistema
41
+ ### 1.3 Cập nhật hệ thống
44
42
 
45
43
  ```bash
46
44
  apt update && apt upgrade -y
47
45
  ```
48
46
 
49
- ### 1.4 Instalar Docker
47
+ ### 1.4 Cài đặt 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 Cài đặt nginx
65
63
 
66
64
  ```bash
67
65
  apt install -y nginx
68
66
  ```
69
67
 
70
- ### 1.6 Configurar Firewall (UFW)
68
+ ### 1.6 Cấu hình tường lửa (UFW)
71
69
 
72
70
  ```bash
73
71
  ufw default deny incoming
@@ -78,29 +76,29 @@ 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
+ > **Mẹo**: Để bảo mật tối đa, hãy hạn chế cổng 80 443 đối với IP Cloudflare. Xem phần [Advanced Security](#advanced-security).
82
80
 
83
81
  ---
84
82
 
85
- ## 2. Instalar o OmniRoute
83
+ ## 2. Cài đặt OmniRoute
86
84
 
87
- ### 2.1 Criar diretório de configuração
85
+ ### 2.1 Tạo thư mục cấu hình
88
86
 
89
87
  ```bash
90
88
  mkdir -p /opt/omniroute
91
89
  ```
92
90
 
93
- ### 2.2 Criar arquivo de variáveis de ambiente
91
+ ### 2.2 Tạo tệp biến môi trường
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
+ > ⚠️ **QUAN TRỌNG**: Tạo các khóa bí mật duy nhất! Sử dụng `openssl rand -hex 32` cho mỗi khóa.
126
124
 
127
- ### 2.3 Iniciar o container
125
+ ### 2.3 Khởi động container
128
126
 
129
127
  ```bash
130
128
  docker pull diegosouzapw/omniroute:latest
@@ -138,45 +136,45 @@ docker run -d \
138
136
  diegosouzapw/omniroute:latest
139
137
  ```
140
138
 
141
- ### 2.4 Verificar se está rodando
139
+ ### 2.4 Xác minh rằng nó đang chạy
142
140
 
143
141
  ```bash
144
142
  docker ps | grep omniroute
145
143
  docker logs omniroute --tail 20
146
144
  ```
147
145
 
148
- Deve exibir: `[DB] SQLite database ready` e `listening on port 20128`.
146
+ sẽ hiển thị: `[DB] SQLite database ready` `listening on port 20128`.
149
147
 
150
148
  ---
151
149
 
152
- ## 3. Configurar nginx (Reverse Proxy)
150
+ ## 3. Cấu hình nginx (Proxy ngược)
153
151
 
154
- ### 3.1 Gerar certificado SSL (Cloudflare Origin)
152
+ ### 3.1 Tạo chứng chỉ SSL (Nguồn gốc Cloudflare)
155
153
 
156
- No painel da Cloudflare:
154
+ Trong bảng điều khiển Cloudflare:
157
155
 
158
- 1. 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. Đi tới **SSL/TLS → Máy chủ gốc**
157
+ 2. Nhấp vào **Tạo chứng chỉ**
158
+ 3. Giữ nguyên giá trị mặc định (15 năm, \*.yourdomain.com)
159
+ 4. Sao chép **Chứng chỉ xuất xứ** **Khóa riêng**
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 Cấu hình 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 Kích hoạt và kiểm tra
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. Cấu hình DNS Cloudflare
249
247
 
250
- ### 4.1 Adicionar registro DNS
248
+ ### 4.1 Thêm bản ghi DNS
251
249
 
252
- No painel da Cloudflare → DNS:
250
+ Trong bảng điều khiển Cloudflare → DNS:
253
251
 
254
- | Type | Name | Content | Proxy |
255
- | ---- | ------ | ------------------------- | ---------- |
256
- | A | `llms` | `203.0.113.10` (IP da VM) | ✅ Proxied |
252
+ | Loại | Tên | Nội dung | Ủy nhiệm |
253
+ | ---- | ------ | ---------------------- | ---------------- |
254
+ | A | `llms` | `203.0.113.10` (IP VM) | ✅ Được ủy quyền |
257
255
 
258
- ### 4.2 Configurar SSL
256
+ ### 4.2 Định cấu hình SSL
259
257
 
260
- Em **SSL/TLS → Overview**:
258
+ Trong **SSL/TLS → Tổng quan**:
261
259
 
262
- - Modo: **Full (Strict)**
260
+ - Chế độ: **Đầy đủ (Nghiêm ngặt)**
263
261
 
264
- Em **SSL/TLS → Edge Certificates**:
262
+ Trong **SSL/TLS → Chứng chỉ biên**:
265
263
 
266
- - Always Use HTTPS: ✅ On
267
- - Minimum TLS Version: TLS 1.2
268
- - Automatic HTTPS Rewrites: ✅ On
264
+ - Luôn sử dụng HTTPS: ✅ Bật
265
+ - Phiên bản TLS tối thiểu: TLS 1.2
266
+ - Tự động ghi lại HTTPS: ✅ Bật
269
267
 
270
- ### 4.3 Testar
268
+ ### 4.3 Kiểm tra
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
- ## 5. Operações e Manutenção
277
+ ## 5. Vận hành và bảo trì
280
278
 
281
- ### Atualizar para nova versão
279
+ ### Nâng cấp lên phiên bản mới
282
280
 
283
281
  ```bash
284
282
  docker pull diegosouzapw/omniroute:latest
@@ -290,42 +288,42 @@ docker run -d --name omniroute --restart unless-stopped \
290
288
  diegosouzapw/omniroute:latest
291
289
  ```
292
290
 
293
- ### Ver logs
291
+ ### Xem nhật ký
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
+ ### Sao lưu sở dữ liệu thủ công
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
+ ### Khôi phục từ bản sao lưu
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
 
320
318
  ---
321
319
 
322
- ## 6. Segurança Avançada
320
+ ## 6. Bảo mật nâng cao
323
321
 
324
- ### Restringir nginx para Cloudflare IPs
322
+ ### Hạn chế nginx đối với IP 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
+ Thêm phần sau vào `nginx.conf` bên trong khối `http {}`:
350
348
 
351
349
  ```nginx
352
350
  include /etc/nginx/cloudflare-ips.conf;
353
351
  ```
354
352
 
355
- ### Install fail2ban
353
+ ### Cài đặt failed2ban
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
+ ### Chặn quyền truy cập trực tiếp vào cổng 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. Triển khai lên Cloudflare Workers (Tùy chọn)
381
379
 
382
- Para acesso remoto via Cloudflare Workers (sem expor a VM diretamente):
380
+ Để truy cập từ xa thông qua Cloudflare Workers (không để lộ trực tiếp VM):
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
+ Xem tài liệu đầy đủ tại [omnirouteCloud/README.md](../omnirouteCloud/README.md).
393
391
 
394
392
  ---
395
393
 
396
- ## Resumo de Portas
394
+ ## Tóm tắt cổng
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
+ | Cảng | Dịch vụ | Truy cập |
397
+ | ----- | ----------- | ------------------------------- |
398
+ | 22 | SSH | Công khai (với Fail2ban) |
399
+ | 80 | nginx HTTP | Chuyển hướng → HTTPS |
400
+ | 443 | nginx HTTPS | Qua Proxy Cloudflare |
401
+ | 20128 | OmniRoute | Chỉ Localhost (thông qua nginx) |