Skip to content

A Python Cloud Native API Gateway and User Management Platform

License

Notifications You must be signed in to change notification settings

apidoorman/doorman

Repository files navigation

Logo

api-gateway Python License Release Last Commit GitHub issues

Doorman API Gateway

Lightweight Python API gateway for REST, SOAP, GraphQL, gRPC, and AI APIs.

Example

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=REDIS to 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). Use docker compose down -v to 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.