mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-08 07:25:23 +02:00
feat: Add OmniRoute - Free LLM Gateway Template (#920)
* feat: Add OmniRoute - Free LLM Gateway Template Adding the OmniRoute template to Dokploy. Never stop coding. Free AI gateway: one endpoint, 160+ providers (50+ free), connect Claude Code, Codex, Cursor, Cline & Copilot to FREE Claude/GPT/Gemini. RTK+Caveman stacked compression saves 15-95% tokens, smart auto-fallback, MCP/A2A, multimodal APIs, Desktop/PWA. * fix: Testing files updated Testing files with pnpm updated. * fix(omniroute): pin OmniRoute image version, fix template.toml syntax, normalize metadata * chore: Add VS Code setting for git config auto-approval * chore(app): add pnpm-workspace.yaml to fix pnpm workspace config
This commit is contained in:
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"chat.tools.terminal.autoApprove": {
|
||||||
|
"git config": true
|
||||||
|
}
|
||||||
|
}
|
||||||
4
app/pnpm-workspace.yaml
Normal file
4
app/pnpm-workspace.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
packages:
|
||||||
|
- .
|
||||||
|
allowBuilds:
|
||||||
|
esbuild: false
|
||||||
40
blueprints/omniroute/docker-compose.yml
Normal file
40
blueprints/omniroute/docker-compose.yml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
services:
|
||||||
|
omniroute:
|
||||||
|
image: diegosouzapw/omniroute:3.8.17
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
expose:
|
||||||
|
- "20128"
|
||||||
|
- "20129"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- omniroute-prod-data:/app/data
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- NODE_ENV=production
|
||||||
|
- PORT=${PORT:-20128}
|
||||||
|
- DASHBOARD_PORT=${DASHBOARD_PORT:-${PORT:-20128}}
|
||||||
|
- API_PORT=${API_PORT:-20129}
|
||||||
|
- API_HOST=${API_HOST:-0.0.0.0}
|
||||||
|
- HOSTNAME=0.0.0.0
|
||||||
|
- DATA_DIR=/app/data
|
||||||
|
- PATH=/home/node/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:8.6.2-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- redis-prod-data:/data
|
||||||
|
command: redis-server --save 60 1 --loglevel warning
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "redis-cli", "ping" ]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
omniroute-prod-data:
|
||||||
|
|
||||||
|
redis-prod-data:
|
||||||
|
|
||||||
|
|
||||||
BIN
blueprints/omniroute/omniroute.png
Normal file
BIN
blueprints/omniroute/omniroute.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
31
blueprints/omniroute/template.toml
Normal file
31
blueprints/omniroute/template.toml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
[variables]
|
||||||
|
main_domain = "${domain}"
|
||||||
|
|
||||||
|
[config]
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "omniroute"
|
||||||
|
port = 20128
|
||||||
|
host = "${main_domain}"
|
||||||
|
|
||||||
|
[config.env]
|
||||||
|
JWT_SECRET = "${base64:64}"
|
||||||
|
API_KEY_SECRET = "${base64:64}"
|
||||||
|
INITIAL_PASSWORD = "${base64:64}"
|
||||||
|
STORAGE_ENCRYPTION_KEY = "${base64:64}"
|
||||||
|
STORAGE_ENCRYPTION_KEY_VERSION = "v1"
|
||||||
|
DISABLE_SQLITE_AUTO_BACKUP = false
|
||||||
|
PORT = 20128
|
||||||
|
API_PORT = 20129
|
||||||
|
OMNIROUTE_USE_TURBOPACK = 1
|
||||||
|
NODE_ENV = "production"
|
||||||
|
MACHINE_ID_SALT = "endpoint-proxy-salt"
|
||||||
|
AUTH_COOKIE_SECURE = false
|
||||||
|
REQUIRE_API_KEY = false
|
||||||
|
ALLOW_API_KEY_REVEAL = false
|
||||||
|
BASE_URL = "http://localhost:20128"
|
||||||
|
CLOUD_URL = ""
|
||||||
|
NEXT_PUBLIC_BASE_URL = "http://localhost:20128"
|
||||||
|
ENABLE_SOCKS5_PROXY = true
|
||||||
|
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY = true
|
||||||
|
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES = 70
|
||||||
|
APP_LOG_TO_FILE = true
|
||||||
20
meta.json
20
meta.json
@@ -4931,6 +4931,26 @@
|
|||||||
"self-hosted"
|
"self-hosted"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "omniroute",
|
||||||
|
"name": "OmniRoute",
|
||||||
|
"version": "3.8.17",
|
||||||
|
"description": "The Free AI Gateway - Never stop coding. Connect every AI tool to 177 providers — 50+ free — through one endpoint. Auto-fallback. RTK + Caveman compression saves 15–95% tokens. Never hit limits. ~1.9B+ documented free tokens/month — up to ~2.5B in your first month with signup credits.",
|
||||||
|
"logo": "omniroute.png",
|
||||||
|
"links": {
|
||||||
|
"github": "https://github.com/diegosouzapw/OmniRoute",
|
||||||
|
"website": "https://github.com/diegosouzapw/OmniRoute",
|
||||||
|
"docs": "https://github.com/diegosouzapw/OmniRoute/wiki"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"artificial-intelligence",
|
||||||
|
"gateway",
|
||||||
|
"generative-ai",
|
||||||
|
"llm",
|
||||||
|
"monitoring",
|
||||||
|
"routing"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "onedev",
|
"id": "onedev",
|
||||||
"name": "OneDev",
|
"name": "OneDev",
|
||||||
|
|||||||
Reference in New Issue
Block a user