Deploy JimiHub - Gemini to OpenAI Proxy
Centralized Gemini API proxy, key management, and quota tracker.
dreamhartley705/jimihub:latest
Just deployed
/app/data
Deploy and Host JimiHub on Railway
JimiHub is an open-source proxy service designed to seamlessly convert OpenAI Chat Completions API requests into Google Gemini API requests. It features multi-API key rotation, request load balancing, global model quota management, and a built-in administrative Web UI for monitoring usage and managing worker credentials across distributed applications.
About Hosting JimiHub
Hosting JimiHub on Railway provides a zero-maintenance containerized deployment for your API proxy infrastructure. Railway runs the prebuilt Docker container (dreamhartley705/jimihub:latest) on its high-availability infrastructure, automatically managing public HTTPS networking, SSL certificates, and internal traffic routing to the application's default container port (3000).
To maintain persistent application state across container deployments—such as user session databases, worker keys, and key rotation settings—JimiHub relies on local filesystem storage mounted at /app/data. Railway handles this seamlessly via persistent volumes, ensuring continuous uptime without data loss during application restarts or redeployments.
Common Use Cases
- Rotating multiple Google Gemini API keys to bypass default rate limits and distribute traffic loads.
- Bridging OpenAI-compatible applications and client libraries to work directly with Google Gemini models without code modifications.
- Monitoring usage statistics and centralizing API key quotas across teams or multi-tenant background services via a unified administrative dashboard.
Dependencies for JimiHub Hosting
- Railway Persistent Volume: Required to retain SQLite database files and administrative configurations across container redeployments.
- Google Gemini API Key(s): Required for upstream LLM request execution and proxy routing.
Deployment Dependencies
Implementation Details
Docker
JimiHub is deployed using the official prebuilt Docker container image:
dreamhartley705/jimihub:latest
Railway automatically pulls and deploys this image without requiring local build steps.
Public Networking
| Setting | Value |
|---|---|
| Proxy Type | HTTP Proxy |
| Target Port | 3000 |
Environment Variables
| Variable | Required | Description |
|---|---|---|
ADMIN_PASSWORD | Yes | Password used to authenticate access to the JimiHub admin panel. |
PORT | Yes | Internal web server listening port (defaults to 3000). |
GEMINI_BASE_URL | Yes | Upstream Google Gemini API base endpoint URL. |
GITHUB_PROJECT | No | Optional GitHub repository (username/repo-name) for remote backup sync. |
GITHUB_PROJECT_PAT | No | Optional GitHub Personal Access Token with repo scope for syncing. |
GITHUB_ENCRYPT_KEY | No | Optional 32-character string used to encrypt sync data saved to GitHub. |
Raw Editor Environment Template:
ADMIN_PASSWORD=your_secure_password_here # Administrator password used to authenticate and log in to the JimiHub admin panel
PORT=3000 # Internal port on which the web container listens (Railway routes public traffic here automatically)
GEMINI_BASE_URL=[https://generativelanguage.googleapis.com](https://generativelanguage.googleapis.com) # Upstream Google Gemini API base URL used for polling requests
GITHUB_PROJECT= # OPTIONAL: GitHub repository in "username/repo-name" format to enable remote config syncing
GITHUB_PROJECT_PAT= # OPTIONAL: GitHub Personal Access Token (PAT) with 'repo' scope permissions for syncing
GITHUB_ENCRYPT_KEY= # OPTIONAL: A secret 32-character string used to encrypt sync data saved to your GitHub repo
Persistent Storage
A persistent volume must be attached to the service to ensure settings, API keys, and metrics persist across container restarts.
- Open your service in the Railway Dashboard.
- Navigate to Settings -> Volumes.
- Click Add Volume.
- Set the Mount Path to:
/app/data
Database
No separate database service (e.g., PostgreSQL or Redis) is required. JimiHub utilizes an embedded local database stored within the /app/data volume.
Build & Start
No custom build or start commands are required.
Accessing the Application
- In the Railway Service settings, go to Networking -> Public Networking and click Generate Domain.
- Access the Web Admin Panel by navigating to
https:///loginorhttps:///admin. - Log in using the password configured in
ADMIN_PASSWORD. - Add your Google Gemini API key(s) and generate Worker API keys within the management panel.
- Update your client applications to use
https:///v1as their OpenAI Base URL.
Why Deploy JimiHub on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying JimiHub on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
dreamhartley705/jimihub:latest
dreamhartley705/jimihub:latestGITHUB_PROJECT
OPTIONAL: GitHub repository in "username/repo-name" format to enable remote config syncing
GITHUB_ENCRYPT_KEY
OPTIONAL: A secret 32-character string used to encrypt sync data saved to your GitHub repo
GITHUB_PROJECT_PAT
OPTIONAL: GitHub Personal Access Token (PAT) with 'repo' scope permissions for syncing
