Files
mirror/app/templates/settings/index.html
T
mohammadian7 63d0699cdd Fix Docker apply crash and add safe profile test flow
Remove invalid _mirror_manager from daemon.json that prevented Docker from starting. Add 2-minute test apply with auto-rollback, final apply confirmation, emergency-restore CLI/UI, and post-restart Docker health checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 20:20:10 +03:30

58 lines
2.9 KiB
HTML

{% extends "base.html" %}
{% from "macros.html" import guide_box %}
{% block title %}تنظیمات{% endblock %}
{% block content %}
<h2>تنظیمات سیستم</h2>
{{ guide_box(guide, 'settings') }}
<form method="post" class="card p-4">
<h5>Auto-switch (اختیاری)</h5>
<p class="text-muted small">در صورت fail شدن میرور فعال، به بهترین میرور جایگزین switch می‌شود.</p>
<div class="row g-2 mb-4">
{% for key, label in [
('auto_switch_dns', 'DNS'),
('auto_switch_apt', 'APT'),
('auto_switch_docker', 'Docker'),
('auto_switch_github', 'GitHub'),
('auto_switch_pip', 'pip'),
('auto_switch_npm', 'npm'),
] %}
<div class="col-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="{{ key }}" id="{{ key }}" {% if settings.get(key) == 'true' %}checked{% endif %}>
<label class="form-check-label" for="{{ key }}">{{ label }}</label>
</div>
</div>
{% endfor %}
</div>
<h5>Rollback و تست</h5>
<div class="row g-3 mb-4">
<div class="col-md-4">
<label class="form-label">پنجره تست موقت (دقیقه)</label>
<input type="number" name="test_rollback_minutes" class="form-control" value="{{ settings.get('test_rollback_minutes', '2') }}" min="1" max="30">
<div class="form-text">پس از «تست موقت» — rollback خودکار اگر تأیید نشود</div>
</div>
<div class="col-md-4">
<label class="form-label">پنجره rollback قدیمی (دقیقه)</label>
<input type="number" name="rollback_minutes" class="form-control" value="{{ settings.get('rollback_minutes', '15') }}" min="5" max="60">
</div>
<div class="col-md-4">
<label class="form-label">فاصله تست auto-switch (دقیقه)</label>
<input type="number" name="auto_test_interval_minutes" class="form-control" value="{{ settings.get('auto_test_interval_minutes', '30') }}" min="10" max="1440">
</div>
<div class="col-md-4">
<label class="form-label">حداکثر switch در روز</label>
<input type="number" name="max_switches_per_day" class="form-control" value="{{ settings.get('max_switches_per_day', '3') }}" min="1" max="20">
</div>
</div>
<div class="form-check mb-4">
<input class="form-check-input" type="checkbox" name="rollback_on_all_fail" id="rollback_on_all_fail" {% if settings.get('rollback_on_all_fail', 'true') == 'true' %}checked{% endif %}>
<label class="form-check-label" for="rollback_on_all_fail">هشدار وقتی همه میرورهای یک بخش fail شوند</label>
</div>
<button type="submit" class="btn btn-primary">ذخیره تنظیمات</button>
</form>
{% endblock %}