Docker-native Function-as-a-Service (FaaS) gateway compatible with OpenFaaS and faas-cli. Run functions on Docker without Kubernetes.
- OpenFaaS-compatible API and
faas-cliworkflows - Scale-from-zero: functions auto-start on invocation
- Web UI for deploy, monitor, logs, secrets, and debug
- Source packaging (zip/Git) and builder templates
- Security hardening: cap drop, no-new-privileges, per-function networks
- Prometheus metrics and structured logging
- Docker 20.10+
- Docker Compose (optional)
faas-cli(optional, for CLI deployments)
git clone https://github.com/10htts/Docker-faas.git
cd docker-faas
docker-compose up -d
curl http://localhost:8080/healthzWeb UI: http://localhost:8080/ui/
Default credentials:
- Username:
admin - Password:
admin
faas-cli login --gateway http://localhost:8080 --username admin --password admin
faas-cli deploy \
--image ghcr.io/openfaas/alpine:latest \
--name echo \
--gateway http://localhost:8080 \
--env fprocess="cat"
echo "Hello" | faas-cli invoke echo --gateway http://localhost:8080# Obtain a token via the REST API
TOKEN=$(curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}' | jq -r '.token')
# Use token with faas-cli (set via environment variable)
export OPENFAAS_URL=http://localhost:8080
# Token support in faas-cli varies; use curl for direct API access:
curl -X POST http://localhost:8080/function/echo \
-H "Authorization: Bearer $TOKEN" \
-d "Hello"Auth note: /function/* requires auth by default. Set REQUIRE_AUTH_FOR_FUNCTIONS=false for OpenFaaS compatibility without authentication.
- Getting Started Guide - Installation, setup, and first deployment
- API Reference - Complete REST API documentation
- Architecture - System design and components
- Deployment Guide - Production deployment scenarios
- Configuration - Environment variables and settings
- Runtime Build Recipes - Language-specific guidance for efficient Python, Go, Node, Bash, and Rust builds
- Scale-From-Zero - Automatic function startup on invocation
- OpenFaaS Compatibility - Compatibility matrix and migration guide
- Web UI Guide - Using the web interface
- Source Packaging - Build from zip/Git sources
- Production Readiness - Production deployment checklist
- Secrets Management - Secure secret storage and injection
All configuration is via environment variables. See docs/CONFIGURATION.md for the full list and defaults.
make build
make testE2E tests (requires Docker):
./scripts/run-tests.shWindows PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run-tests.ps1Contributions are welcome! Please see:
- Contributing Guide - Development setup and guidelines
- Code of Conduct - Community standards
- Security Policy - Vulnerability reporting
- Changelog - Version history and releases
MIT License. See LICENSE.