Add Salamander obfs branch: replace masquerade with packet obfuscation.

- ACME TLS challenge on 443 (no port 80 or nginx decoy)
- Auto-generate and persist obfs password per server
- Update client export, HTML catalog, and vault examples
- Document Salamander vs main and ACME auto-renewal in README
This commit is contained in:
Sergey Antropoff
2026-07-01 02:17:22 +03:00
parent 6f96a26bed
commit 0aec9e6e54
19 changed files with 365 additions and 182 deletions
@@ -75,6 +75,15 @@
font-size: 0.8rem;
font-weight: 600;
}
.badge-salamander {
margin-left: 0.35rem;
background: rgba(163, 113, 247, 0.18);
color: #a371f7;
}
.server-obfs {
margin-top: 1.25rem;
max-width: 100%;
}
.user-card {
background: var(--bg-card);
border: 1px solid var(--border);
@@ -235,6 +244,17 @@
Домен: <strong>{{ hysteria2_domain }}:{{ hysteria2_listen_port }}</strong>
</p>
<span class="badge">{{ hysteria2_export_users | length }} {{ 'пользователь' if hysteria2_export_users | length == 1 else 'пользователей' }}</span>
<span class="badge badge-salamander">Salamander</span>
<div class="field server-obfs">
<label for="obfs-server">Пароль обфускации (Salamander)</label>
<div class="input-row">
<input type="text" id="obfs-server" value="{{ hysteria2_obfs_password | e }}" readonly>
<button type="button" class="btn-copy" onclick="copyField('obfs-server', this)" title="Копировать obfs-password" aria-label="Копировать obfs-password">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
</button>
</div>
</div>
</header>
{% for user in hysteria2_export_users %}