Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,235 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ PasarGuard

Unified & Censorship-Resistant Proxy Management Solution


Note: This is Free-Guy-IR's fork of the original PasarGuard panel, extended with sing-box (Hysteria2), OpenVPN, and MTProto (Telegram proxy) as additional core types alongside Xray and WireGuard.



🇮🇷 فارسی / 🇨🇳 简体中文 / 🇷🇺 Русский

PasarGuard screenshots

📋 Table of Contents

Quick Navigation - Jump to any section below


📖 Overview

What is PasarGuard?

PasarGuard is a powerful proxy management tool that offers an intuitive and efficient interface for handling hundreds of proxy accounts. Built with Python and React.js it combines performance, scalability, and ease of use to simplify large-scale proxy management. It supports Xray-core, WireGuard, sing-box (Hysteria2), OpenVPN, and MTProto (Telegram proxy) for maximum performance and flexibility.


🤔 Why using PasarGuard?

Simple, Powerful, Reliable

PasarGuard is a user-friendly, feature-rich, and reliable proxy management tool. It allows you to create and manage multiple proxies for your users without the need for complex configuration. With its built-in web interface, you can easily monitor activity, modify settings, and control user access limits — all from one convenient dashboard.


✨ Features

🌐 Web Interface & API

  • Built-in Web UI dashboard
  • Fully REST API backend
  • Multi-Node support for infrastructure distribution

🔐 Protocols & Security

  • Supports Vmess, VLESS, Trojan, Shadowsocks, WireGuard, Hysteria2, OpenVPN and MTProto (Telegram proxy)
  • TLS and REALITY support
  • Multi-protocol for a single user

👥 User Management

  • Multi-user on a single inbound
  • Multi-inbound on a single port (fallbacks support)
  • Traffic and expiry date limitations
  • Periodic traffic limit (daily, weekly, etc.)
  • HWID/device limits for hardware-bound access control

🔗 Subscriptions & Sharing

  • Subscription link compatible with V2ray, Clash and ClashMeta
  • Automated Share link and QRcode generator
  • System monitoring and traffic statistics

🛠️ Tools & Customization

  • Customizable xray configuration
  • Integrated Telegram Bot
  • Command Line Interface (CLI)
  • Multi-language support
  • Multi-admin support with RBAC for granular permissions and scoped access

🚀 Installation guide

Quick Start - Get PasarGuard running in minutes

For a quick setup, use the following commands based on your preferred database.


TimescaleDB (Recommended):

sudo bash -c "$(curl -fsSL https://github.com/Free-Guy-IR/scripts/raw/main/pasarguard.sh)" @ install --database timescaledb

SQLite:

sudo bash -c "$(curl -fsSL https://github.com/Free-Guy-IR/scripts/raw/main/pasarguard.sh)" @ install

MySQL:

sudo bash -c "$(curl -fsSL https://github.com/Free-Guy-IR/scripts/raw/main/pasarguard.sh)" @ install --database mysql

MariaDB:

sudo bash -c "$(curl -fsSL https://github.com/Free-Guy-IR/scripts/raw/main/pasarguard.sh)" @ install --database mariadb

PostgreSQL:

sudo bash -c "$(curl -fsSL https://github.com/Free-Guy-IR/scripts/raw/main/pasarguard.sh)" @ install --database postgresql

📋 After installation:

📋 Watch the logs (press Ctrl+C to stop)

📁 Files are located at /opt/pasarguard

⚙️ Config file: /opt/pasarguard/.env (see Configuration for details)

💾 Data files: /var/lib/pasarguard

🔒 Important: Dashboard requires SSL certificate for security

  • Get SSL certificate: Guide
  • Access: https://YOUR_DOMAIN:8000/dashboard/

🔗 For testing without domain: Use SSH port forwarding (see below)


ssh -L 8000:localhost:8000 user@serverip

Then access: http://localhost:8000/dashboard/

⚠️ Testing only - You'll lose access when you close the SSH terminal.

🔧 Next Steps:

# Generate a one-time setup key for owner account setup
pasarguard cli generate-temp-key

# Use the key on the dashboard login page to create the owner account

# Get help
pasarguard --help

🖥️ Multiple Nodes on One Server

If you want to run several nodes on the same server, install each node with a unique name:

sudo bash -c "$(curl -sL https://github.com/Free-Guy-IR/scripts/raw/main/pg-node.sh)" @ install --name node-eu-1

After installation, use that same name as the prefix for management commands:

node-eu-1 update
node-eu-1 edit
node-eu-1 edit-env

You can run any other subcommand for that same node with the same prefix (node-eu-1 ...).

⚠️ Important: Never reuse ports between nodes. The connection port and every core's inbound/instance ports (Xray, sing-box, OpenVPN, MTProto, ...) attached to each node must be completely unique per node.

📚 Documentation

📖 Official Documentation - Complete guides available in:

🇺🇸 English

🇮🇷 فارسی

🇷🇺 Русский

🇨🇳 简体中文

Contributing: Help improve documentation on GitHub


💖 Donation

Support PasarGuard Development

If PasarGuard helps you, consider supporting its development:

Donate

Thank you for your support! 💖


Made with ❤️ for Internet freedom

About

Fork of PasarGuard panel, adding sing-box (Hysteria2), OpenVPN, and MTProto (Telegram proxy) as additional core types

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages