Bridge your infrastructure to the AI revolution. Securely. An enterprise-grade API Gateway built to govern Microservices and orchestrate Large Language Models (LLMs) with precision. TPI.dev | Documentation | Blog | Community
- Overview
- Quick Start
- Create a Simple Api Proxy
- Documentation
- Build Your Own JAR
- Run digiRunner in a Local Container Registry
digiRunner is a lightweight, high-performance API Gateway designed for the modern hybrid cloud. As enterprises race to adopt Generative AI, they face a new set of challenges: unpredictable costs, vendor lock-in, and security risks associated with exposing internal data to public models. digiRunner evolves beyond traditional traffic management to become your AI Gateway. It acts as a smart bridge between your applications and AI providers (like OpenAI, Azure, or local Ollama instances), allowing you to decouple your business logic from the rapidly changing AI landscape. With digiRunner, you stop hardcoding API keys and start managing AI as a governed infrastructure asset.
We provide the Guardrails and Governance missing from standard model APIs.
- 🛡️ Zero Vendor Lock-in (Universal Interface)
Stop rewriting code every time a new model is released.
- Provider Abstraction: Define your AI Provider (e.g., OpenAI, Azure) and Model configurations centrally. Your apps call a unified digiRunner endpoint, allowing you to switch backend models instantly without deploying new code.
- Secure Key Management: Never expose provider API keys in client-side code again. digiRunner injects credentials securely at the gateway layer.
- 💰 FinOps & Tokenomics Control
Traditional rate limiting (Requests Per Minute) fails with LLMs, where a single request can consume 10k+ tokens. digiRunner understands Tokenomics.
- Granular Cost Control: Enforce strict Input Limits (prevent long context abuse) and Output Limits (prevent runaway generation).
- Flexible Policy: Choose between Reject (hard stop) to cap budget, or Use Anyway to allow traffic while flagging overages for audit.
- 📝 Prompt Engineering as Infrastructure
Treat your Prompts like APIs—versioned, managed, and visible.
- Template Registry: Use the built-in AI Prompt Template engine to create, update, and enable/disable prompts globally.
- Standardization: Ensure all applications use approved, optimized prompts to reduce hallucinations and ensure brand consistency.
| Challenge | digiRunner Solution |
|---|---|
| Inconsistent access control | Visual RBAC, API keys, OAuth2 & OIDC support |
| Disorganized microservice endpoints | Unified API Gateway with intelligent routing |
| High learning curve for devs & ops | UI-driven config + AI-powered documentation |
| Siloed logs and monitoring gaps | Built-in dashboards and real-time analytics |
| Slow APIs dragging down overall system performance. | Intelligent traffic shaping with "Fast Lanes" prioritizes fast APIs, preventing system bottlenecks. |
| Limited visibility into performance | Track API performance and catch anomalies before users do |
| Lack of scalability and governance | Build API-first apps with policy-based traffic control and enterprise-grade security |
Under the hood, digiRunner remains a powerhouse for standard RESTful services:
- High Performance: Low-latency routing designed for high-concurrency environments.
- K8s & Hybrid Ready: Seamlessly integrates with Kubernetes (K3s/Rancher) for local or cloud deployments.
- Full Lifecycle Management: Design, Publish, Secure, and Analyze your APIs from a single dashboard.
digiRunner empowers teams across industries to implement mission-critical API management use cases with ease:
• Financial Services – Enforce security standards and control access to customer transaction APIs across digital banking and fintech ecosystems.
• Retail & E-commerce – Manage catalog, inventory, and checkout APIs with built-in rate limiting, version control, and monitoring during high-traffic seasons.
• Healthcare & Insurance – Govern sensitive API endpoints with fine-grained access policies, audit trails.
• Software & SaaS Providers – Offer a scalable and secure API layer to partners and developers with clear documentation and usage analytics.
• Government & Public Sector – Unify legacy and modern service APIs under a single gateway to simplify external integrations and ensure compliance.
These use cases build on digiRunner’s core strengths in observability, scalability, and governance—giving teams a stable foundation for growth and agility.
Before installing digiRunner, make sure your machine meets the following minimum system requirements:
CPU >= 2 Core
RAM >= 4 GiB
choose one of the following options to launch service by container
docker run -it -d -p 31080:18080 tpisoftwareopensource/digirunner-open-sourceBased on the content of deploys/docker-compose/docker-compose.yml
name: digirunner-open-source
services:
dgr:
image: tpisoftwareopensource/digirunner-open-source
ports:
- "31080:18080"
environment:
- TZ=Asia/Taipei- save above configuration to
opendgr-compose.yml - run
docker-compose -f opendgr-compose.yml up -dat the same directory withopendgr-compose.yml
Based on the content of deploys/kubernetes/digirunner-open-source.yml
apiVersion: v1
kind: Service
metadata:
name: digirunner-open-source-svc
spec:
ports:
- name: tcp
nodePort: 31080
port: 18080
protocol: TCP
targetPort: 18080
selector:
app: digirunner
sessionAffinity: None
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: digirunner
name: digirunner-open-source-deploy
spec:
replicas: 1
selector:
matchLabels:
app: digirunner
template:
metadata:
labels:
app: digirunner
namespace: digirunner-open-source-ns
spec:
containers:
- env:
- name: TZ
value: Asia/Taipei
image: tpisoftwareopensource/digirunner-open-source
imagePullPolicy: Always
name: digirunner
ports:
- containerPort: 18080
name: tcp
protocol: TCP
workingDir: /opt/digirunner- save above configuration to
digirunner-open-source.yml - run
kubectl apply -f digirunner-open-source.yml
Contributions:
- how-to-package-digirunner-using-helm
- Step-by-step guide on how to package the digirunner open source project using Helm.
- Quickly install the example
- Open your browser and navigate to: http://localhost:31080/dgrv4/login
- Use the default credentials to login:
- username:
manager - password:
manager123
- username:
If you want to try digiRunner quickly without installation or setup, you can use our pre-packaged version for your operating system.
Choose your OS and download the corresponding file from the release:
- macOS (ARM64): [
digirunner-opensource-macos-arm64-vX.X.X.X(version).zip] - Windows (AMD64): [
digirunner-opensource-windows-amd64-vX.X.X.X(version).zip]
- Unzip the downloaded package.
- Open the extracted folder.
- Double-click
quickstart.exeto launch digiRunner on your local machine.
You can now start exploring digiRunner immediately — no installation, no configuration required!
After launching digiRunner, open your browser and go to:
👉 http://localhost:18080/dgrv4/login
Use the following default credentials to log in:
username: manager
password: manager123
Once logged in, you can start exploring digiRunner’s management console and test its features locally.
You may receive a security or firewall warning from macOS or Windows when you run the file for the first time.
This is because we haven’t yet registered with Apple or Microsoft developer programs.
Simply allow or bypass the warning (e.g., “Keep Anyway” / “Allow app to run”) to continue.
Once launched, digiRunner will run safely and locally on your machine.
After testing, you can simply delete the entire extracted folder — digiRunner does not modify or install anything on your system.
This Quickstart version is ideal for users who want to:
- Test digiRunner locally in just a few minutes
- Explore API management features without setup overhead
- Safely remove everything after testing
Enjoy your hands-on experience with digiRunner! 💡
- OpenJDK 21
-
Clone the repository:
git clone https://github.com/TPIsoftwareOSPO/digiRunner-Open-Source.git
-
Change directory:
cd digiRunner-Open-Source/ -
Run the service:
./gradlew :dgrv4_Gateway_serv:bootRun
-
Wait for the digiRunner banner to appear.
_ ____ _ _
__| | __ _| _ \ _ _ _ __ _ __ ___ _ __ __ __ || |
/ _` |/ _` | |_) | | | | '_ \| '_ \ / _ \ '__| \ \ / / || |_
| (_| | (_| | _ <| |_| | | | | | | | __/ | \ V /|__ _|
\__,_|\__, |_| \_\\__,_|_| |_|_| |_|\___|_| \_/ |_|
|___/
========== dgRv4 web server info ============
...
- Open your browser and navigate to: http://localhost:18080/dgrv4/login
- Use the default credentials to login:
- username:
manager - password:
manager123
- username:
-
Change to digiRunner directory:
cd digiRunner/ -
Build the JAR:
./gradlew :dgrv4_Gateway_serv:clean :dgrv4_Gateway_serv:bootJar
-
Locate the JAR file:
dgrv4_Gateway_serv/build/libs/digiRunner-{version}.jar -
Run the JAR:
java -jar dgrv4_Gateway_serv/build/libs/digiRunner-{version}.jar --digiRunner.token.key-store.path=$PWD/dgrv4_Gateway_serv/keys
cd digiRunner/docker build -t digirunner .docker run -p 18080:18080 digirunnerOpen your browser and navigate to: http://localhost:18080/dgrv4/login
