ErastgoldProxy source
Исходник панели ErastgoldProxy
ErastgoldProxy — панель, которую можно установить на свой сервер и использовать для создания прокси-ключей. Готовая ссылка из панели вставляется в ErastGold Proxy client, после чего клиент получает нужную конфигурацию.
Для чего нужна панель
Панель создает управляемую ссылку вида `https://your-domain/sub/token`. Эту ссылку можно вставить в ErastGold Proxy client. Пользователь не вводит технические строки вручную: клиент сам получает совместимую конфигурацию по ссылке панели.
Панель не является магазином серверов. Сервер, домен, прокси-узел, правила доступа и срок действия ключей настраивает владелец своей установки панели.
Минимальные требования
- VPS или выделенный сервер: Ubuntu 22.04/24.04, Debian 12 или совместимая Linux-система.
- 1 CPU, 1 GB RAM и 10 GB диска для небольшой личной панели.
- Node.js 20 LTS или новее, npm 10 или новее.
- Nginx или Caddy для HTTPS и reverse proxy на порт панели.
- Домен, A-запись которого направлена на IP сервера.
- Отдельно настроенный прокси-узел, параметры которого будут указаны в `.env`.
- Открытые порты 80 и 443 для сайта, а также нужные порты вашего прокси-узла.
Быстрая установка без Docker
Пример ниже рассчитан на чистый Ubuntu/Debian сервер.
sudo apt update
sudo apt install -y curl nginx tar
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo mkdir -p /opt/erastgoldproxy-panel
cd /opt/erastgoldproxy-panel
sudo tar -xzf /path/to/erastgoldproxy-panel-source.tar.gz --strip-components=1
sudo npm ci
sudo cp .env.example .env
sudo nano .env
npm run build
npm start
Основные переменные `.env`
ERAST_PROXY_PUBLIC_BASE_URL=https://panel.example.com
ERAST_PROXY_HOST=proxy.example.com
ERAST_PROXY_SNI=proxy.example.com
ERAST_PROXY_VLESS_PORT=443
ERAST_PROXY_VMESS_PORT=8443
ERAST_PROXY_SS_PORT=8388
ERAST_PROXY_VLESS_PATH=/erastgold
ERAST_PROXY_VMESS_PATH=/erastgold-vm
`ERAST_PROXY_PUBLIC_BASE_URL` — публичный адрес панели. Именно он используется в ссылке, которую пользователь копирует в приложение. `ERAST_PROXY_HOST`, порты, SNI и пути должны соответствовать вашему собственному прокси-узлу.
Systemd-сервис
sudo tee /etc/systemd/system/erastgoldproxy-panel.service >/dev/null <<'SERVICE'
[Unit]
Description=ErastgoldProxy panel
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/erastgoldproxy-panel
Environment=NODE_ENV=production
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
SERVICE
sudo systemctl daemon-reload
sudo systemctl enable --now erastgoldproxy-panel
sudo systemctl status erastgoldproxy-panel
Nginx reverse proxy
server {
listen 80;
server_name panel.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
После проверки nginx подключите HTTPS через Certbot или другой ACME-клиент. Для production-установки используйте только HTTPS.
Docker-вариант
tar -xzf erastgoldproxy-panel-source.tar.gz
cd erastgoldproxy-panel
cp .env.example .env
nano .env
docker compose up -d --build
Как проверить установку
- Откройте `https://panel.example.com/login`.
- Создайте администратора или войдите под созданной учетной записью.
- Откройте раздел «Прокси-ключи».
- Создайте ключ и скопируйте ссылку панели.
- Вставьте ссылку в ErastGold Proxy client и проверьте добавление профиля.
Безопасность установки
- Не публикуйте `.env`, `data/db.json` и резервные копии базы.
- Используйте сложный пароль администратора.
- Обновляйте Node.js и системные пакеты.
- Ограничьте доступ к серверу по SSH и включите firewall.
- Регулярно делайте резервную копию `data/db.json`.