- Implemented comprehensive E2E tests for user authentication, including login, registration, password reset, and session management. - Added tests for proxy management functionalities, covering creation, editing, deletion, and connection testing of proxies. - Introduced load testing configuration and scenarios for proxy CRUD operations and API stress testing. - Created utility functions for authentication handling in load tests. - Established performance thresholds and metrics for load testing. - Enhanced test scripts with detailed checks and validations for API responses and UI elements. |
||
|---|---|---|
| .github/workflows | ||
| .husky | ||
| backend | ||
| frontend | ||
| monitoring | ||
| nginx | ||
| scripts | ||
| tests | ||
| .env.example | ||
| .eslintrc.base.json | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .prettierignore | ||
| .prettierrc | ||
| .prettierrc.json | ||
| docker-compose.prod.yml | ||
| docker-compose.test.yml | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile.app | ||
| Dockerfile.backend | ||
| Dockerfile.frontend | ||
| Dockerfile.nginx | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| run-comprehensive-tests.sh | ||
| run-specialized-tests.sh | ||
| sonar-project.properties | ||
| test-report.md | ||
Advanced Reverse Proxy Manager
A modern, dockerized reverse proxy management system with enterprise-grade features and an intuitive web interface for managing proxies, SSL certificates, and advanced configurations.
Features
- 🚀 Modern Web Interface - React-based SPA with real-time updates
- 🔒 SSL Management - Automated Let's Encrypt integration with DNS challenges
- ⚡ High Performance - Custom-compiled Nginx with advanced modules
- 📊 Monitoring & Analytics - Real-time metrics and comprehensive logging
- 🔧 Advanced Configuration - Load balancing, WebSocket support, custom headers
- 🛡️ Security First - WAF capabilities, rate limiting, access control
- 🐳 Fully Dockerized - Easy deployment with Docker Compose
- 🔄 API-First Design - Complete REST API for automation
Installation and Setup
Follow these installation and setup instructions to get started:
- Clone the repository:
git clone https://github.com/ersinkoc/reverse-proxy-manager.git
cd reverse-proxy-manager
- Copy the environment file:
cp backend/.env.example backend/.env
- Start the services:
docker-compose up -d
- Access the web interface at
https://localhost:81
Usage Instructions
Once the installation is complete, you can start using the system immediately.
Default credentials:
- Email:
admin@example.com - Password:
password123
Architecture
The system consists of several containerized services:
- App Container - Node.js backend API and React frontend
- Nginx Container - Custom-built Nginx with advanced modules
- PostgreSQL - Primary database for configuration storage
- Redis - Session management and caching
- Certbot - Automated SSL certificate management
Development
Prerequisites
- Docker and Docker Compose
- Node.js 18+ (for local development)
- npm or yarn
Local Development
- Install dependencies:
npm install
- Start the development servers:
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev
- Start the required services:
docker-compose up postgres redis
Building
# Build all containers
docker-compose build
# Build specific service
docker-compose build app
API Documentation
The API documentation is available at /api/docs when the application is running.
Authentication
All API endpoints (except /api/v1/auth/*) require authentication using JWT tokens.
# Login
curl -X POST http://localhost:81/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"password123"}'
# Use the returned token
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:81/api/v1/proxies
Configuration
Environment Variables
Key environment variables in backend/.env:
DATABASE_URL- PostgreSQL connection stringREDIS_URL- Redis connection stringJWT_SECRET- Secret for JWT token generationLETSENCRYPT_EMAIL- Email for Let's Encrypt certificates
Nginx Configuration
Custom Nginx configurations can be placed in nginx/conf.d/. The system automatically reloads Nginx when changes are detected.
Security
- All data is encrypted at rest and in transit
- Multi-factor authentication support (coming soon)
- Role-based access control (RBAC)
- Comprehensive audit logging
- Regular security updates
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Issues: GitHub Issues