diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..50e5eba2a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "chat.tools.terminal.autoApprove": { + "git config": true + } +} \ No newline at end of file diff --git a/app/pnpm-workspace.yaml b/app/pnpm-workspace.yaml new file mode 100644 index 000000000..c4ec45c05 --- /dev/null +++ b/app/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - . +allowBuilds: + esbuild: false diff --git a/blueprints/omniroute/docker-compose.yml b/blueprints/omniroute/docker-compose.yml new file mode 100644 index 000000000..552c8f26a --- /dev/null +++ b/blueprints/omniroute/docker-compose.yml @@ -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: + + diff --git a/blueprints/omniroute/omniroute.png b/blueprints/omniroute/omniroute.png new file mode 100644 index 000000000..4d4a0d140 Binary files /dev/null and b/blueprints/omniroute/omniroute.png differ diff --git a/blueprints/omniroute/template.toml b/blueprints/omniroute/template.toml new file mode 100644 index 000000000..ae4a61e00 --- /dev/null +++ b/blueprints/omniroute/template.toml @@ -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 diff --git a/meta.json b/meta.json index 8be7825d7..0964961a8 100644 --- a/meta.json +++ b/meta.json @@ -4550,6 +4550,26 @@ "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", "name": "OneDev",