No description
Find a file
Ersin KOÇ ff29e80eae Add end-to-end tests for authentication and proxy management
- 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.
2025-06-16 13:53:56 +03:00
.github/workflows Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.husky Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
backend Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
frontend Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
monitoring Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
nginx Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
scripts Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
tests Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.env.example Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.eslintrc.base.json Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.gitignore Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.lintstagedrc.json Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.prettierignore Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.prettierrc Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
.prettierrc.json Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
docker-compose.prod.yml Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
docker-compose.test.yml Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
docker-compose.yml Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
docker-entrypoint.sh Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
Dockerfile.app Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
Dockerfile.backend Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
Dockerfile.frontend Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
Dockerfile.nginx Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
package.json Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
playwright.config.ts Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
README.md Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
run-comprehensive-tests.sh Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
run-specialized-tests.sh Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
sonar-project.properties Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00
test-report.md Add end-to-end tests for authentication and proxy management 2025-06-16 13:53:56 +03:00

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:

  1. Clone the repository:
git clone https://github.com/ersinkoc/reverse-proxy-manager.git
cd reverse-proxy-manager
  1. Copy the environment file:
cp backend/.env.example backend/.env
  1. Start the services:
docker-compose up -d
  1. 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

  1. Install dependencies:
npm install
  1. Start the development servers:
# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend
cd frontend
npm run dev
  1. 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 string
  • REDIS_URL - Redis connection string
  • JWT_SECRET - Secret for JWT token generation
  • LETSENCRYPT_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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support