A modern VPN subscription management system with a Node.js backend and Next.js admin panel.
- 🔒 Secure Authentication: User authentication powered by Supabase
- 💳 Subscription Management: Handle customer subscriptions and payments
- 📊 Admin Dashboard: Modern Next.js admin interface with real-time data
- 🌐 VPN Service Integration: Automated provisioning of VPN credentials
- 🤖 Telegram Bot: Customer support and account management via Telegram
- 🚀 Docker Deployment: Containerized for easy deployment
- 🔐 GitHub Secrets Integration: Secure configuration for public repositories
- 🔄 Auto-Update System: Automatic deployment and source code updates
For the fastest possible setup, we provide an automated deployment process:
- Go to the Actions tab in this repository
- Click on the "Run workflow" button
- Select "auto" from the dropdown and click "Run workflow"
- Wait for the workflow to complete (usually takes less than a minute)
- Download the deployment package from the Artifacts section
- Transfer the package to your server
- Extract and run the setup script:
tar -xzf vpn-service-deployment.tar.gz chmod +x setup.sh ./setup.sh
- Follow the on-screen instructions to complete the setup
This method will automatically:
- Install Docker and Docker Compose if needed
- Create a default configuration
- Set up the VPN admin panel and X-UI interface
- Configure everything for immediate use
This project consists of several components:
- Admin Panel: Next.js web application for administration
- Database: PostgreSQL managed by Supabase
- VPN Server: Integration with OpenVPN/WireGuard
- Telegram Bot: Node.js bot for customer interactions
- Node.js 20.x or higher
- Docker and Docker Compose
- Supabase account
- Telegram Bot token (for bot functionality)
-
Clone the repository:
git clone https://github.com/your-username/vpnservice.git cd vpnservice
-
Copy the environment variables template:
cp .env.example .env
-
Update the
.env
file with your own values. -
Start the development environment:
docker-compose up -d
-
Access the services:
- Admin Panel: http://localhost:8080
- Supabase Studio: http://localhost:54323
This project is configured to use GitHub Secrets for protecting sensitive information. See the SECURITY.md file for detailed instructions on:
- Setting up GitHub Secrets
- What information to protect
- Secure deployment workflow
- Security best practices
When making this repository public, ensure all sensitive information is moved to GitHub Secrets and referenced appropriately in the CI/CD workflow.
For frontend development:
cd admin-panel
npm install
npm run dev
The application can be deployed using one of these methods:
Use our automated deployment workflow as described in the Quick Start section.
docker-compose -f docker-compose.yml up -d
The project includes GitHub Actions workflows for continuous integration and deployment:
.github/workflows/workflow.yml
: Tests, builds, and deploys the application securely using GitHub Secrets.github/workflows/autopull.yml
: Creates self-deployable packages for easy setup
.
├── admin-panel/ # Next.js admin panel
├── .github/ # GitHub Actions workflows
├── docker-compose.yml # Development Docker Compose
├── SECURITY.md # Security documentation
└── .env.example # Environment variables template
Please see the CONTRIBUTING.md file for guidelines on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.