Мастер: авто-синхронизация времени (ВНИИФТРИ) и доменные имена сервера
Шаг «Время и сеть»: - Кнопка «Синхронизировать»: bj сам пробует российские серверы точного времени ВНИИФТРИ (мини-SNTP зонд по UDP/123), и только если из сети они недоступны — просит указать свой сервер (контроллер домена/маршрутизатор). Статус времени берётся из timedatectl (timeSynced), а не из флага шага. - Поле «Доменное имя сервера»: имена вписываются в самоподписанный сертификат (SAN), чтобы интерфейс открывался по имени без предупреждения браузера. Сертификат перевыпускается на лету; A-запись заводит админ сети на DNS. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XG3zNMMf2LMoDpXo22mwMX
This commit is contained in:
@@ -560,9 +560,14 @@
|
||||
|
||||
<div class="wiz-row" style="margin-top:18px">
|
||||
<span class="wiz-row-l">Точное время</span>
|
||||
{{if .Done.Server}}<span style="color:var(--ok)">✓ синхронизируется</span>{{else}}<span style="color:var(--warn)">⚠ не синхронизируется</span>{{end}}
|
||||
{{if timeSynced}}<span style="color:var(--ok)">✓ синхронизируется</span>{{else}}<span style="color:var(--warn)">⚠ не синхронизируется</span>
|
||||
<form method="post" action="/admin/setup/time-auto" style="display:inline;margin-left:8px">
|
||||
<input type="hidden" name="return_to" value="/admin/wizard?step=12">
|
||||
<button type="submit" class="btn" style="padding:5px 12px;font-size:13px">Синхронизировать</button>
|
||||
</form>{{end}}
|
||||
</div>
|
||||
<details style="margin-top:6px" {{if not .Done.Server}}open{{end}}><summary style="cursor:pointer;color:var(--accent);font-size:13px">{{if .Done.Server}}Свой сервер времени (обычно не нужно){{else}}Укажите сервер времени вашей сети — обычно контроллер домена или маршрутизатор{{end}}</summary>
|
||||
<p class="muted" style="font-size:12.5px;margin:4px 0 0">bj сам подберёт сервер точного времени: сначала российские серверы ВНИИФТРИ, и только если из вашей сети они недоступны — попросит указать свой (контроллер домена или маршрутизатор сети).</p>
|
||||
<details style="margin-top:6px" {{if not timeSynced}}open{{end}}><summary style="cursor:pointer;color:var(--accent);font-size:13px">Указать свой сервер времени вручную</summary>
|
||||
<form method="post" action="/admin/setup/time" style="display:flex;gap:8px;flex-wrap:wrap;margin-top:8px">
|
||||
<input type="hidden" name="return_to" value="/admin/wizard?step=12">
|
||||
<input name="servers" value="{{.Settings.Time.Servers}}" placeholder="например, 10.0.0.1" aria-label="Сервер времени" style="min-width:260px">
|
||||
@@ -580,6 +585,15 @@
|
||||
<a href="https://{{serverIP}}:8443/admin/">https://{{serverIP}}:8443/</a>
|
||||
</div>
|
||||
<p class="muted" style="font-size:12.5px;margin:4px 0 0">Чтобы адрес не менялся, задайте постоянный: на консоли сервера — <code>sudo bj-network</code>.</p>
|
||||
<form method="post" action="/admin/setup/hostname" style="margin-top:12px">
|
||||
<input type="hidden" name="return_to" value="/admin/wizard?step=12">
|
||||
<label for="wiz-hostnames" class="wiz-row-l" style="display:block;margin-bottom:4px">Доменное имя сервера</label>
|
||||
<div style="display:flex;gap:8px;flex-wrap:wrap">
|
||||
<input id="wiz-hostnames" name="hostnames" value="{{range $i, $h := .Settings.HTTPS.Hostnames}}{{if $i}} {{end}}{{$h}}{{end}}" placeholder="например, m2m.corp.example.ru" aria-label="Доменное имя сервера" style="min-width:300px">
|
||||
<button type="submit" class="btn">Сохранить</button>
|
||||
</div>
|
||||
<p class="muted" style="font-size:12.5px;margin:4px 0 0">Если для сервера в вашей сети заведено доменное имя — впишите его, и bj вставит имя в сертификат: интерфейс будет открываться по нему без предупреждения браузера. Саму запись имени (A-запись → IP сервера) заводит администратор на вашем DNS / контроллере домена. Несколько имён — через пробел.</p>
|
||||
</form>
|
||||
{{if .AutoDone}}<p class="muted" style="font-size:12.5px;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--border)">Уже сделано установщиком: {{range $i, $a := .AutoDone}}{{if $i}} · {{end}}✓ {{$a}}{{end}}{{if and .Done.Postgres (pgLocal .Settings.Postgres.DSN)}}. <a href="/admin/wizard?step=2">Базу bj можно держать и на своём сервере PostgreSQL →</a>{{end}}</p>{{end}}
|
||||
<script>
|
||||
(function(){ // пояс компьютера пользователя — предложить одной кнопкой (не менять молча: сервер может стоять в другом городе)
|
||||
|
||||
Reference in New Issue
Block a user