ابزار مدیریت حرفهای، ماژولار، امن و مقاوم در برابر خطا برای HAProxy روی سرورهای لینوکس. بدون نیاز به ویرایش دستی haproxy.cfg تمام عملیات از طریق یک رابط ترمینالی مدرن و تعاملی انجام میشود.
OX Alpha Mode — نسخه توسعهیافته با سازگاری کامل ویندوز/لینوکس، تستهای Mock، و مدیریت Atomic ایمن.
کاربر
↓
CLI تعاملی (Rich + Questionary)
↓
لایه اپلیکیشن
↓
مدیریت پیکربندی | مدیریت HAProxy | پایش سلامت
↓
سرویسهای هسته (اعتبارسنجی / بکاپ / Runtime API / فایلسیستم)
- رابط ترمینال کاملاً تعاملی — منوی اصلی/فرعی، ویزارد، دیالوگ تایید، اعتبارسنجی ورودی، جدول، داشبورد، Progress
- تغییرات Atomic و امن —
فایل موقت → اعتبارسنجی → بکاپ → جایگزینی اتمی → ریلود → بررسی → رولبک خودکار - مدیریت سرویس — start/stop/restart/reload/enable/disable/status با اعتبارسنجی قبل از ریلود
- مدیریت پیکربندی — Global, Defaults, Frontend, Backend, Server, ACL, Routing Rules
- پشتیبانی L4 و L7 — TCP/HTTP/HTTPS termination/TLS passthrough/SNI/مسیردهی بر اساس Host/Path/Header
- سیستم سلامت حرفهای — وضعیت سرویس + پیکربندی + Runtime (Stats Socket) + تست TCP/HTTP/TLS
- Runtime API —
show info/stat, فعال/غیرفعال/maintenance کردن سرورها - لاگینگ و Audit — لاگ چرخشی، ردپای Audit، تاریخچه SQLite، جستجو/فیلتر/Export
- بکاپ و رولبک — بکاپهای زماندار، مقایسه Diff، بازگردانی با اعتبارسنجی
- ابزار شبکه — تست پورت TCP، DNS، TLS handshake، HTTP، پورتهای شنود
- مدیریت SSL/TLS — بررسی وجود/دسترسی/انقضا/تطابق کلید و گواهی
- حالت امن و Dry-Run — اجبار بکاپ/اعتبارسنجی/Diff/تایید برای هر تغییر
- قالبهای آماده — TCP LB, HTTP LB, HTTPS Termination, TLS Passthrough, SNI Router, Port Forward
- Import/Export — خروجی کامل/جزئی، اعتبارسنجی فایل خارجی، Snapshot
- CLI غیرتعاملی — برای اتوماسیون:
status/validate/reload/health/backup/rollback/backend/server - تشخیص محیط — نسخه OS/توزیع/کرنل/باینری HAProxy/مسیر کانفیگ/سامانه سرویس/سوکت
- معماری قابل توسعه — آماده برای REST API، داشبورد وب، Prometheus، تلگرام
haproxy-manager/
├── main.py # نقطه ورود (حالت تعاملی پیشفرض + argparse)
├── config/
│ ├── app_config.py # کانفیگ خود برنامه (YAML)
│ ├── manager.py # مدیریت Atomic + Diff + Rollback
│ ├── parser.py # تجزیه haproxy.cfg با حفظ دستورات ناشناخته
│ ├── generator.py # تبدیل مدلها به متن haproxy.cfg
│ ├── validator.py # پوشش haproxy -c + بررسی داخلی
│ └── templates.py # 7 قالب پارامتری
├── haproxy/
│ ├── service.py # مدیریت systemd/sysvinit (بدون shell injection)
│ ├── runtime.py # کلاینت Unix Socket + CSV parser
│ ├── stats.py
│ └── health.py
├── cli/
│ ├── menu.py # 15 منوی اصلی + 40 زیرمنو + ویزاردها (78K)
│ ├── dashboard.py
│ ├── prompts.py
│ └── display.py # جداول/پنلها با Rich
├── backup/manager.py
├── app_logging/logger.py # لاگ چرخشی + Audit (تغییر نام از logging برای جلوگیری از تداخل stdlib)
├── storage/database.py # SQLite (تاریخچه عملیات/سلامت/تنظیمات)
├── tls/certificate.py # اعتبارسنجی گواهی (تغییر نام از ssl برای جلوگیری از تداخل stdlib)
├── network/diagnostics.py
├── utils/system.py, validation.py, permissions.py
├── models/config_models.py # دیتاکلاسهای Global/Defaults/Frontend/Backend/Server/ACL/Rule
├── tests/ # 7 مجموعه تست با Mock
├── haproxy.cfg # کانفیگ دمو
├── haproxy-manager.yaml # نمونه کانفیگ برنامه
├── requirements.txt
└── install.sh
اصول: Production-Ready، ماژولار، امن، Fail-Safe، Atomic، Idempotent، بدون مسیر Hard-Code، بدون Shell Injection، جداسازی لایه CLI از هسته.
- Python 3.8+ (پیشنهادی 3.10+)
- سیستمعامل لینوکس Ubuntu 20.04/22.04/24.04، Debian 11/12، RHEL 8/9، Rocky 8/9، Alma 8/9، CentOS Stream، هر توزیع با systemd
- HAProxy 1.8+ (تست شده 2.x، 3.x) — مسیر باینری بهصورت خودکار شناسایی میشود
- وابستگیها:
rich,questionary,pyyaml,jinja2,cryptography
روی ویندوز نیز برای توسعه/دمو با مسیرهای محلی
./backups,./logsو کانفیگ دمو اجرا میشود (نیاز بهPYTHONUTF8=1برای نمایش●/✓/❌).
| توزیع | نسخه | مدیر سرویس |
|---|---|---|
| Ubuntu | 20.04، 22.04، 24.04 | systemd |
| Debian | 11، 12 | systemd |
| RHEL/Rocky/Alma | 8، 9 | systemd |
| CentOS Stream | 8، 9 | systemd |
| سایر لینوکسهای systemd | — | systemd / sysvinit fallback |
- 1.8، 2.0–2.9، 3.0+ — تشخیص خودکار نسخه و فعالسازی قابلیتهای وابسته به نسخه (مثلاً مدیریت Runtime).
- اگر قابلیتی در نسخه نصبشده موجود نباشد، بهصورت
⚠ در این نسخه پشتیبانی نمیشودنمایش داده میشود.
git clone <repo> haproxy-manager
cd haproxy-manager
chmod +x install.sh
sudo ./install.sh
haproxy-managerinstall.sh چه میکند:
- تشخیص OS و نسخه
- بررسی/نصب Python 3 و venv
- ساخت
venvو نصبrequirements.txt - ساخت پوشههای
/etc/haproxy-manager,/var/log/haproxy-manager,/var/backups/haproxy-manager,/var/lib/haproxy-manager/state.db - تنظیم دسترسیها (700 برای بکاپ، 600 برای فایل بکاپ)
- ایجاد فایل نمونه
/etc/haproxy-manager/config.yaml - ایجاد لانچر
/usr/local/bin/haproxy-manager
cd haproxy-manager
python3 -m venv venv
source venv/bin/activate # ویندوز: venv\Scripts\activate
pip install -r requirements.txt
python main.py # حالت تعاملیpip install rich questionary pyyaml jinja2 cryptographyhaproxy-managerداشبورد نمایش داده میشود:
╔══════════════════════════════════════════╗
║ HAProxy Manager ║
║ HAProxy Version : 3.0.0 ║
║ Service Status : ● RUNNING ║
║ Config Status : ● VALID ║
║ Config Path : /etc/haproxy/haproxy.cfg║
║ Binary Path : /usr/sbin/haproxy ║
║ OS : ubuntu 24.04 ║
║ Runtime Socket : /run/haproxy/admin.sock● Available
║ ─────────────────────────────────────── ║
║ Frontends : 4 Backends: 8 ║
║ Servers : 17 Healthy:15 Down:2 ║
║ Overall : HEALTHY ║
╚══════════════════════════════════════════╝
اگر HAProxy نصب نباشد:
HAProxy Version: Not detectedوConfig Status: NOT FOUND— مسیر را درSettings & Environmentاصلاح کنید.
برای فعالسازی Runtime API، به global اضافه کنید:
global
stats socket /run/haproxy/admin.sock mode 660 level adminو سپس sudo systemctl reload haproxy.
فایل haproxy-manager.yaml یا /etc/haproxy-manager/config.yaml:
haproxy_binary: null # null = تشخیص خودکار (مثلاً /usr/sbin/haproxy) یا مسیر دستی
config_path: null # null = /etc/haproxy/haproxy.cfg یا مسیر دستی
stats_socket: null # null = /run/haproxy/admin.sock یا مسیر دستی
backup_dir: /var/backups/haproxy-manager
log_dir: /var/log/haproxy-manager
db_path: /var/lib/haproxy-manager/state.db
safe_mode: true # true = اجبار بکاپ/اعتبارسنجی/Diff/تایید
retention: 30 # تعداد بکاپ نگهداری
service_name: haproxy
default_timeouts:
tcp_check: 5
http_check: 5
validation: 10Override با متغیر محیطی:
HAPROXY_MANAGER_CONFIG_PATH=/custom/haproxy.cfg haproxy-manager
HAPROXY_MANAGER_HAPROXY_BINARY=/usr/local/sbin/haproxy haproxy-managerدر حالت توسعه ویندوز، مسیرها بهصورت خودکار به ./backups, ./logs, ./state.db و haproxy.cfg محلی نگاشت میشوند.
haproxy-manager
# یا
python main.py
# حالت دیباگ (نمایش Traceback)
python main.py --debugمنوهای اصلی:
- Dashboard / Refresh
- Service Management (Status/Start/Stop/Restart/Reload/Enable/Disable)
- Configuration Management (View/Edit Global/Defaults/Validate/Diff/Dry-Run)
- Frontend Management (Create/Edit/Delete)
- Backend & Server Management (Create/Add/Edit/Delete + Maintenance via Runtime)
- ACL Management (Create/Edit/Delete/Test)
- Routing Rules (IF → THEN)
- Health & Monitoring (درخت سلامت + جدول سرورها)
- Runtime API (show info/stat, enable/disable/maint)
- Network Diagnostics (TCP/DNS/TLS/HTTP/Backend Test)
- SSL/TLS Management (Validate/Expiry/Key Match)
- Backup & Restore (Create/Restore/Delete/Compare)
- Logs & Audit (View/Search/Filter/History/Clear/Export)
- Templates (7 قالب)
- Import/Export/Validate (Snapshot)
- Settings & Environment
هر تغییر Diff نمایش داده و نیاز به تایید دارد. در حالت امن، بدون اعتبارسنجی و بکاپ، ریلود انجام نمیشود.
haproxy-manager status --verbose
haproxy-manager validate
haproxy-manager validate --file /tmp/test.cfg
haproxy-manager reload # validate + backup + reload + verify
haproxy-manager health
haproxy-manager backup list
haproxy-manager backup create
haproxy-manager backup restore --file /var/backups/haproxy-manager/2026-08-29_16-30-22.cfg
haproxy-manager rollback # بازگردانی به آخرین بکاپ + reload
# اتوماسیون Backend/Server
haproxy-manager backend list
haproxy-manager backend create --name my_back --mode http --balance roundrobin
haproxy-manager server list --backend my_back
haproxy-manager server add --backend my_back --name node03 --address 10.0.0.12 --port 80کد بازگشت: 0=موفق, 1=خطای اعتبارسنجی/عملیات — مناسب برای CI.
قبل از هر reload/restart:
- اعتبارسنجی
haproxy -c -f <config> - بکاپ زماندار
- جایگزینی اتمی (
mkstemp + fsync + rename) - ریلود (
systemctl reloadیاreload-or-restart) - بررسی موفقیت ریلود
- در صورت شکست → رولبک خودکار (اعتبارسنجی بکاپ → بازگردانی → ریلود مجدد)
# از منو: Service Management → Reload (safe with validation & backup)
# یا CLI:
haproxy-manager reloadlog, maxconn, user/group, stats socket, nbthread/nbproc, ssl-default-bind-ciphers, tune.ssl...
mode, timeout connect/client/server, retries, options, log
- نام،
bind(IP/Port/IPv4/IPv6)،mode(tcp/http)، SSL (crt), ACL, Rules,default_backend, limits
- نام،
mode,balance(roundrobin/leastconn/source/uri/random/first/static-rr), سرورها،options, timeout, retries
- نام، آدرس/پورت،
check,inter,rise/fall,weight,backup,ssl,sni,verify,maxconn
ویزارد نمونه:
Create New Backend
Backend Name: > my_back
Load Balance: [1] Round Robin [2] Least Connections ...
Add Server? > Yes
Server Name: > node01
IP: > 10.0.0.10
Port: > 80
Enable Health Check? > Yes
انتخاب حالت هنگام ساخت:
[1] TCP / Layer 4
[2] HTTP / Layer 7
[3] HTTPS / TLS Termination
[4] TCP + TLS Passthrough
[5] Custom
- L4: TCP proxy/passthrough/load-balancing/port forwarding
- L7: host/path/header/SNI-based routing
ACL Manager
[1] Create ACL (src/dst/src_port/dst_port/hdr/path/method/ssl_fc_sni/custom)
[2] Edit ACL
[3] Delete ACL
[4] List ACLs
[5] Test ACL (اعتبارسنجی Dry-Run)
مثال:
acl is_api path_beg /api
acl is_local src 192.168.1.0/24اعتبارسنجی validate_acl_name و criterion قبل از اعمال.
ویزارد:
IF: ssl_fc_sni == example.com
THEN: use_backend backend_example
use_backend api_back if is_api
use_backend web_back if !is_apiترتیب قوانین حفظ میشود؛ حذف/ایجاد مجدد برای تغییر ترتیب.
Backend Health
Server Address Port Status
----------------------------------------
node01 10.0.0.10 80 ● UP
node02 10.0.0.11 80 ● DOWN (DOWN 10s)
درخت سلامت:
HAProxy
├── Service ✓
├── Configuration ✓
├── Runtime ✓ (یا ○ Not available)
├── Frontends (2)
└── Backends (2)
├── api_back: api01 ✓, api02 ✓
└── web_back: web01 ✓, web02 ✗
پایش: Health & Monitoring → Run Full Health Check (incl. TCP probes)، Show Runtime Info, Show Stats Summary (bin/bout/scur/qcur).
در صورت وجود سوکت (stats socket /run/haproxy/admin.sock):
- اطلاعات:
show info,show stat(CSV),show sess - عملیات:
enable/disable server <backend>/<server>,set server ... state {ready,maint,drain}
از utils/system.py نسخه HAProxy بررسی و قابلیتهای ناموجود مخفی میشود.
سطوح: DEBUG/INFO/WARNING/ERROR/CRITICAL
فرمت Audit:
[2026-08-29 16:30:21] ACTION: Reload HAProxy | TARGET: /etc/haproxy/haproxy.cfg | RESULT: SUCCESS | USER: | DETAILS: ...
امکانات CLI: View Recent/Audit, Search, Filter by Level, Operation History (DB), Health History, Clear, Export.
فایلها: /var/log/haproxy-manager/haproxy-manager.log, audit.log (چرخشی 5×5MB)، DB: /var/lib/haproxy-manager/state.db (جداول operation_history, health_history).
کلید خصوصی و پسورد در لاگها به
[REDACTED PRIVATE KEY]تبدیل میشود.
مسیر: /var/backups/haproxy-manager/2026-08-29_16-30-22.cfg + .meta.json
| عملیات | توضیح |
|---|---|
| List | 15 بکاپ اخیر با زمان/حجم/دلیل |
| Create | دستی |
| Restore | با اعتبارسنجی قبل از بازگردانی + بکاپ از وضعیت فعلی |
| Delete | حذف |
| Compare | Diff دو بکاپ یا بکاپ با وضعیت فعلی |
| View | نمایش محتوای بکاپ |
| Rollback خودکار | پس از شکست ریلود |
haproxy-manager backup list
haproxy-manager backup create
haproxy-manager backup restore --file <path>
haproxy-manager rollbackسناریو شکست:
❌ Configuration validation failed. Changes were NOT applied.
⚠ HAProxy reload failed. Attempting automatic rollback...
هر تغییر با باینری واقعی HAProxy اعتبارسنجی میشود:
haproxy -c -f /etc/haproxy/haproxy.cfgمسیر باینری Hard-Code نیست (تشخیص خودکار which haproxy + /usr/sbin/haproxy ...). خطاها با شماره خط نمایش داده میشود:
❌ Failed to reload HAProxy.
Reason: Configuration validation failed.
Details: line 42: unknown keyword 'example'
No changes were applied.
Generate Temp → Validate → Backup → Atomic Replace (mkstemp+fsync+rename) → Reload → Verify Runtime → SUCCESS
↓ fail
Rollback
هرگز فایل اصلی حین تولید بهصورت جزئی بازنویسی نمیشود.
قبل از هر اعمال:
+ server node03 10.0.0.12:80 check
- server old_node 10.0.0.20:80
timeout connect 5s
Apply these changes? [Yes] [No]TCP Port Check— اتصال + latencyDNS Resolve— لیست IPهاTLS Handshake— گواهی/سایفر/پروتکلHTTP Check— status/headersBackend Connection Test— DNS+TCP+TLS+HTTP یکجاLocal Listening Ports—ss -tulpn/netstat
مثال:
Backend Connection Test
Target: 10.0.0.10:443
DNS Resolution : ✓ 12ms
TCP Connection : ✓ 18ms
TLS Handshake : ✓ 25ms
HTTP Response : ✓ 32ms
- مسیر گواهی/کلید/CA، انقضا، اعتبارسنجی، تطابق کلید/گواهی، نسخه TLS، سایفر
- بررسیها قبل از اعمال: وجود فایل، دسترسی، انقضا (<30 روز هشدار)، تطابق RSA/EC public numbers، بارگذاری در
SSLContext
# منو: SSL/TLS Management → Validate Certificate / Check Cert+Key Matchدر شروع برنامه:
System Detection
OS : Ubuntu 24.04
Kernel : 6.8.0-xxx
HAProxy : 3.0.0 (/usr/sbin/haproxy)
Config : /etc/haproxy/haproxy.cfg (exists)
Service Manager : systemd
Runtime Socket : /run/haproxy/admin.sock (Available)
مسیرها قابل Override در config.yaml یا CLI Settings & Environment.
- حداقل دسترسی، بررسی
is_root()برای عملیات حساس - جلوگیری از Command Injection: تمام
subprocessبا آرگومان لیست،shlex.quote، اعتبارسنجی شدید IP/Port/Hostname/Path/ACL - عدم اجرای مستقیم ورودی کاربر در شل
- دسترسی فایلها: 700 برای پوشه بکاپ، 600 برای فایل بکاپ، 644 برای کانفیگ
- عدم لاگ کردن Secrets
هیچ Exception باعث Crash ناگهانی نمیشود. بهجای Traceback, پیام کاربرپسند:
❌ Failed to reload HAProxy.
Reason: ...
Details: ...
No changes were applied.
در حالت --debug یا safe_mode: false استک کامل نمایش داده میشود.
قالبها:
- TCP Load Balancer
- HTTP Load Balancer
- HTTPS Reverse Proxy
- TLS Passthrough
- SNI Router
- Port Forward
- Custom
پس از انتخاب قالب، پارامترها (پورت/سرور/IP) از ویزارد پرسیده و Diff قبل از اعمال نمایش داده میشود.
- اعتبارسنجی فایل خارجی:
haproxy -c -f /tmp/test.cfg - خروجی کامل/فقط Frontend/فقط Backend (ذخیره در فایل دلخواه)
- وارد کردن کانفیگ موجود (Parse → Generate → Diff → Apply)
- Snapshot: ذخیره وضعیت فعلی با نام دلخواه
- حفظ دستورات ناشناخته (Unknown directives) هنگام Parse/Generate
HAProxy
├── Service ✓
├── Configuration ✓
├── Runtime ✓
└── Backends
├── api_back: node01 ✓, node02 ✓
└── web_back: node01 ✓, node02 ✗ (DOWN)
بهصورت پیشفرض فعال. در این حالت:
- هر تغییر نیاز به تایید
- بکاپ اجباری
- اعتبارسنجی اجباری
- نمایش Diff اجباری
- رولبک فعال
تغییر در config.yaml (safe_mode: true/false) یا منوی Toggle Safe Mode.
برای تمام عملیات تغییر:
DRY RUN — No changes will be applied.
Generated configuration: ...
Validation: ✓ PASSED
Diff: ...
Result: No changes applied.
هیچ فایلی یا سرویس تغییر نمیکند.
operation_history: timestamp/action/target/result/errorhealth_history: overall/service_running/healthy/downsettings,backup_meta
اما کانفیگ اصلی HAProxy همچنان فایل استاندارد و مستقل از برنامه باقی میماند.
haproxy-manager status --verbose
haproxy-manager validate --file <path>
haproxy-manager reload
haproxy-manager health
haproxy-manager backup list|create|restore --file <path>
haproxy-manager rollback
haproxy-manager backend create --name <n> --mode http --balance roundrobin
haproxy-manager server add --backend <b> --name <s> --address <ip> --port <p>حالت تعاملی همچنان پیشفرض در صورت اجرای بدون آرگومان است.
بدون نیاز به HAProxy واقعی — تمام وابستگیها Mock:
# لینوکس با pytest
pytest -v
# یا دستی
python -m pytest tests/
python tests/test_parser.py
python tests/test_validator.py
# ویندوز (با PYTHONUTF8)
$env:PYTHONUTF8=1; python -X utf8 -c "import sys; sys.path.insert(0,'.'); import tests.test_parser; tests.test_parser.test_parse_global(); print('ok')"پوشش: Parser roundtrip, Generator, Input Validation, Backup/Retention/Compare, Validator (mock subprocess), Health/Runtime (mock socket, Windows skip AF_UNIX), Atomic/Rollback, Security (path injection), Network (TCP/DNS).
نتیجه فعلی ویندوز:
validator_success passed
parse_stat passed
runtime_mock skipped (AF_UNIX not available on Windows)
atomic_apply_success passed
ALL TESTS PASSED
git clone <repo>
cd haproxy-manager
python -m venv venv; source venv/bin/activate
pip install -r requirements.txt
python main.py --debug # نمایش Traceback کاملساختار پیشنهادی برای توسعه REST API:
from config.manager import ConfigManager
from haproxy.service import ServiceManager
# هسته مستقل از CLI است — مستقیماً قابل استفاده در FastAPI/Flask- Fork کنید
- شاخه Feature بسازید (
git checkout -b feature/amazing) - Commit کنید
- Push و Pull Request
لطفاً قبل از PR، pytest را اجرا و از عدم شکست تستها اطمینان حاصل کنید.
MIT — استفاده با مسئولیت خود؛ قبل از اعمال در پروداکشن، در محیط Staging تست کنید.
بازخورد: https://github.com/anomalyco/opencode — با ذکر Muse Spark / OX Alpha
علاوه بر CLI تعاملی، یک پنل وب مدرن (FastAPI + Jinja2 + Bootstrap 5) با همان هسته امن ارائه شده است.
- داشبورد Real-Time — آمار Frontend/Backend/Server، وضعیت Runtime، آخرین بکاپها (Auto-Refresh 30s)
- مدیریت Frontend/Backend — ایجاد/حذف از طریق Modal + API
- ویرایشگر پیکربندی — نمایش haproxy.cfg با Diff قبل از اعمال (Atomic + بکاپ)
- سلامت و Runtime — درخت سلامت، جدول سرورها، show info/stat
- بکاپها — لیست، بکاپ فوری، بازگردانی، حذف، مقایسه Diff
- لاگها — مشاهده لاگهای اخیر و Audit + تاریخچه DB
- احراز هویت — Session Cookie (httponly, SameSite Lax)، هش SHA256، قابل تنظیم via HAPROXY_MANAGER_USER/PASS و HAPROXY_MANAGER_SECRET
- API کامل — /api/status, /api/config, /api/frontends, /api/backends, /api/service/*, /api/health, /api/backups, /api/stats
# توسعه
pip install -r requirements.txt
python main.py web --host 0.0.0.0 --port 8000
# با reload برای توسعه
python main.py web --port 8000 --reloadورود پیشفرض: admin / admin — حتماً در پروداکشن تغییر دهید:
export HAPROXY_MANAGER_USER=admin
export HAPROXY_MANAGER_PASS=YourStrongPass
export HAPROXY_MANAGER_SECRET=your-random-secret-32chars
haproxy-manager web --host 0.0.0.0 --port 8000API نمونه:
# لاگین (کوکی)
curl -c cookies.txt -X POST http://localhost:8000/login -d "username=admin&password=admin" -L
# داشبورد JSON
curl -b cookies.txt http://localhost:8000/api/status# ایجاد Frontend
curl -b cookies.txt -X POST http://localhost:8000/api/frontends -H "Content-Type: application/json" -d '{"name":"my_front","bind_ip":"*","bind_port":8080,"mode":"http"}'
# اعتبارسنجی
curl -b cookies.txt http://localhost:8000/api/config/validateامنیت وب:
- تمام تغییرات از همان ConfigManager امن (اعتبارسنجی + بکاپ + رولبک) عبور میکند
- Session 8 ساعته، HttpOnly، پیشنهاد قرارگیری پشت Nginx/Traefik با TLS
- برای چند نمونه از Redis برای Session استفاده کنید
- تمام صفحات HTML نیاز به لاگین دارند (Redirect به /login)