mirror of
https://github.com/apidoorman/doorman.git
synced 2026-02-07 01:28:58 -06:00
de8fae69bbb79e868cd6a06791738ed5bde4c656
Doorman API Gateway
Lightweight Python API gateway for REST, SOAP, GraphQL, gRPC, and AI APIs.
Key Features
- Multi-Protocol Support: REST, SOAP, GraphQL, gRPC, and AI APIs
- Security: User management, authentication, authorization, roles & groups
- Traffic Control: Rate limiting, throttling, dynamic routing, credits
- Caching & Storage: Redis caching, MongoDB integration, or in memory
- Validation: Request payload validation and logging
Quick Demo
Run a local demo instance in seconds.
# Clone and launch instantly
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.demo.yml up --build
- Web UI: http://localhost:3000
- Admin:
demo@doorman.dev/DemoPassword123! - Mode: Memory mode (no external DB)
Self-Hosting
Deploy with Docker. Production mode requires Redis and MongoDB.
1. Environment Configuration
Copy the template and set your secrets.
cp .env.example .env
# Set: DOORMAN_ADMIN_EMAIL, DOORMAN_ADMIN_PASSWORD, JWT_SECRET_KEY
2. Choose Storage
- Memory (default): development and tests.
- Redis + MongoDB: production.
3. Launch
# Standard launch
docker compose up -d
# Production launch (Redis + MongoDB)
docker compose --profile production up -d
Configuration
Core Environment Variables
| Variable | Required | Description |
|---|---|---|
DOORMAN_ADMIN_EMAIL |
Yes | Initial administrator email |
DOORMAN_ADMIN_PASSWORD |
Yes | Admin password (min 12 chars) |
JWT_SECRET_KEY |
Yes | Secret for signing access tokens |
NEXT_PUBLIC_GATEWAY_URL |
No | Frontend API target (Defaults to same origin) |
Persistence & Performance
- Redis: set
MEM_OR_EXTERNAL=REDISto enable caching/rate limiting. - MongoDB: set
MONGO_DB_HOSTS=mongo:27017(and credentials) to persist configurations and users. - Volumes: Docker-managed volumes (
doorman-generated,doorman-logs). Usedocker compose down -vto reset.
Repository Structure
doorman/
├── backend-services/ # Python Gateway Engine (FastAPI)
├── web-client/ # Next.js Dashboard
├── user-docs/ # Technical Guides & Runbooks
├── scripts/ # Build & Maintenance tools
└── ops/ # Infrastructure & Docker config
Documentation
Deep-dive into our guides for advanced setups:
License
Copyright © Doorman Dev, LLC Licensed under the Apache License 2.0.
Review the Security Hardening Guide before production deployment.
Description
Languages
Python
70.2%
TypeScript
24.3%
CSS
4%
Shell
0.6%
JavaScript
0.5%
Other
0.3%

