94ad6143cc
All-in-one Dockerfile bundling OpenResty + the Node mgmt app + Redis in one container, mirroring the bare-metal ops/install.sh layout: - Dockerfile (openresty/openresty:1.31.1.1-2-bookworm-fat base; dumb-init PID 1; luarocks install lua-resty-auto-ssl/luasocket/lua-resty-ipmatcher; node 22.x; npm ci --omit=dev; OpenResty confs + lua copied into place). - docker-entrypoint.sh: fallback cert, sed-parameterize RESOLVER/REAL_IP_FROM, start bundled redis + node app, exec openresty foreground. - docker-compose.yml (standalone), .dockerignore, DEPLOYMENT.md. - nodejs/routes/render.js: /health endpoint for healthchecks. - nodejs/models/user_ldap.js: tlsOptions forwarded to ldapts Client so the proxy can bind ldaps:// with a self-signed cert (app_ldap__tlsOptions__*). - nodejs/package.json: bump @simpleworkjs/conf to ^1.1.0 (app_* env overrides). - docs/docker.md + index.md: Docker deployment guide + fronting an SSO Manager. - ops/proxy.service: add WorkingDirectory=/var/www/proxy/nodejs (bare-metal cwd fix so relative conf/ paths resolve). Co-Authored-By: Claude <noreply@anthropic.com>
3.5 KiB
3.5 KiB
layout, title
| layout | title |
|---|---|
| default | Home |
Proxy
A reverse proxy and HTTPS termination service using OpenResty/nginx with a management API and web GUI.
Features
- Automated HTTPS/SSL - Let's Encrypt integration with HTTP-01 and DNS-01 challenges
- Wildcard SSL Certificates - Support for wildcard domains with automatic renewal
- Multiple DNS Providers - CloudFlare, DigitalOcean, PorkBun integrations
- Advanced Routing - Sophisticated wildcard domain matching (*, **)
- RESTful API - Full programmatic control
- Web Interface - User-friendly management GUI
- High Performance - Unix socket-based host lookup for minimal latency
Quick Start
Docker (recommended for self-hosters)
A single all-in-one image bundling OpenResty + the app + Redis:
git clone https://github.com/theta42/proxy.git
cd proxy && docker compose up -d --build
See the Docker Guide for configuration (OIDC/LDAP via app_* env)
and fronting an SSO Manager.
Automated bare-metal installation
For modern Debian-based systems (Ubuntu 20.04+, Debian 11+):
wget -O - https://raw.githubusercontent.com/theta42/proxy/master/ops/install.sh | sudo bash
Requirements (bare metal)
- Node.js 18+ (tested with 18.x, 20.x, 22.x)
- OpenResty (nginx with Lua support)
- Redis
- Linux system with root access
Documentation
- Docker Guide - All-in-one container deployment + configuration
- Installation Guide - Bare-metal setup instructions
- API Reference - Complete API documentation
- Architecture - System design and components
- Contributing - Development and testing guide
Use Cases
Development Teams
- Host multiple projects on a single server with unique domains
- Automatic SSL for all development sites
- Easy configuration via API or web UI
Production Deployments
- High-performance reverse proxy for microservices
- Centralized SSL certificate management
- Dynamic routing without nginx reloads
Personal Projects
- Self-hosted services with automatic HTTPS
- Wildcard certificates for unlimited subdomains
- Simple management interface
Architecture
┌─────────────┐
│ Client │
└──────┬──────┘
│ HTTPS
▼
┌─────────────────────┐
│ OpenResty/Nginx │
│ - SSL Termination │
│ - Host Routing │
└──────┬──────────────┘
│ Unix Socket
▼
┌─────────────────────┐ ┌─────────────┐
│ Node.js API │◄────►│ Redis │
│ - Management │ │ - Storage │
│ - SSL Orchestration│ │ - Cache │
└──────┬──────────────┘ └─────────────┘
│
▼
┌─────────────────────┐
│ Backend Services │
│ - Your Apps │
└─────────────────────┘
Community
License
MIT License - See LICENSE for details.