2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30
2026-06-03 17:33:19 +03:30

Mirror Manager

پنل وب فارسی برای مدیریت DNS، میرور APT، Docker Registry، GitHub و pip/npm روی Ubuntu (فوکوس 24.04).

قابلیت‌ها

  • CRUD میرورها و پروفایل‌ها
  • اعمال سراسری تنظیمات روی host (systemd-resolved، apt، docker، git)
  • تست latency و دسترسی میرورها
  • Backup خودکار (اولیه + قبل از هر apply)
  • Rollback با پنجره زمانی (پیش‌فرض ۱۵ دقیقه)
  • Auto-switch اختیاری per-category
  • راهنمای فارسی برای هر بخش
  • CLI برای SSH: restore، enable، disable
  • بدون تغییر SSH یا فایروال

پیش‌نیاز

  • Ubuntu 18.04 / 22.04 / 24.04 (فوکوس noble)
  • Docker + Dokploy + Traefik
  • دسترسی root/privileged برای container

نصب روی Dokploy

۱. Clone پروژه روی سرور

git clone <repo-url> /opt/mirror-manager
cd /opt/mirror-manager

۲. تنظیم .env (فقط برای deploy دستی؛ در Dokploy از Environment UI استفاده کنید)

cp .env.example .env
nano .env
متغیر مقدار
MIRROR_DOMAIN mirror.itistan.ir
SECRET_KEY رشته تصادفی ۳۲+ کاراکتر
ADMIN_PASSWORD رمز قوی

۳. Repo Gitea

https://git.itistan.ir/mohammadian7/mirror

راهنمای کامل Dokploy: deploy/DOKPLOY.md


نصب روی Dokploy (خلاصه)

  1. Push به Gitea → Deploy از Dokploy
  2. Environment variables را در Dokploy تنظیم کنید
  3. رکورد A: mirror.itistan.ir → IP سرور
  4. https://mirror.itistan.ir

نصب دستی (بدون Dokploy)

docker compose up -d --build

Volumeها:

  • /etc/host/etc (برای apply)
  • /var/lib/mirror-manager/data → دیتابیس و backup

۴. Traefik / Dokploy

در Dokploy یک Application از نوع Docker Compose بسازید یا labelهای Traefik را در docker-compose.yml تنظیم کنید:

traefik.http.routers.mirror-itistan.rule=Host(`mirror.itistan.ir`)

۵. نصب CLI روی host

chmod +x mirror-manager deploy/install-cli.sh
sudo cp mirror-manager /usr/local/bin/mirror-manager
# PYTHONPATH را در /usr/local/bin/mirror-manager-wrapper یا:
echo 'export PYTHONPATH=/opt/mirror-manager' | sudo tee /etc/profile.d/mirror-manager.sh

استفاده

  1. به https://mirror.itistan.ir بروید
  2. با ADMIN_USERNAME / ADMIN_PASSWORD وارد شوید
  3. در اولین ورود backup اولیه خودکار گرفته می‌شود
  4. یک پروفایل انتخاب و اعمال کنید
  5. در پنجره rollback تست کنید → تأیید یا rollback

CLI (از SSH)

# بازگردانی تنظیمات اولیه (قبل از نصب Mirror Manager)
mirror-manager restore --initial

# بازگردانی یک backup مشخص
mirror-manager restore --backup /var/lib/mirror-manager/data/backups/20250603_120000_before_apply_1

# غیرفعال / فعال container
mirror-manager disable
mirror-manager enable

# وضعیت
mirror-manager status

پروفایل‌های پیش‌فرض

پروفایل محتوا
آروان کامل Shecan + Arvan APT/Docker + GitClone
403 + Shatel 403 DNS + Shatel APT + GHProxy
حداقلی Shecan + Arvan Docker

میرورهای seed

DNS

Shecan، 403.online، Begzar، Electro + fallback Cloudflare/Google

APT

Arvan، Shatel، Ubuntu Archive

Docker

Arvan Docker Registry

GitHub

GitClone، GHProxy


نکات امنیتی

  • رمز admin را حتماً عوض کنید
  • SECRET_KEY تصادفی و طولانی
  • UI را فقط از طریق HTTPS (Traefik) در دسترس بگذارید
  • قبل از apply با IP به SSH وصل شوید (نه hostname)

ساختار پروژه

app/
  models.py          # SQLite models
  services/          # apply, backup, test, dns, apt, docker, github
  routes/            # Flask blueprints
  templates/         # UI فارسی RTL
  guides.py          # راهنمای هر بخش
docker-compose.yml
Dockerfile
mirror-manager       # CLI entry

توسعه محلی

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
set DISABLE_SCHEDULER=1
set HOST_ROOT=
python run.py

License

MIT

S
Description
No description provided
Readme 124 KiB
Languages
Python 69.3%
HTML 28.1%
Dockerfile 1.7%
Shell 0.6%
CSS 0.3%