36 lines
1.3 KiB
HTML
36 lines
1.3 KiB
HTML
{% extends "base.html" %}
|
|||
|
|
{% block title %}Initial setup{% endblock %}
|
||
|
|
{% block content %}
|
||
|
|
<div class="auth-shell">
|
||
|
|
<div class="auth-card">
|
||
|
|
<div class="auth-prompt">first-run setup</div>
|
||
|
|
<h1>Create administrator</h1>
|
||
|
|
<p class="auth-sub">No accounts exist yet. Create the first administrator to secure {{ brand_name }}.</p>
|
||
|
|
<form method="post" class="form" novalidate>
|
||
|
|
{{ form.csrf_token }}
|
||
|
|
<div>
|
||
|
|
{{ form.username.label }}
|
||
|
|
{{ form.username(autocomplete="username", autofocus=True) }}
|
||
|
|
{% for err in form.username.errors %}<div class="error">{{ err }}</div>{% endfor %}
|
||
|
|
</div>
|
||
|
|
<div>
|
||
|
|
{{ form.email.label }}
|
||
|
|
{{ form.email(autocomplete="email") }}
|
||
|
|
{% for err in form.email.errors %}<div class="error">{{ err }}</div>{% endfor %}
|
||
|
|
</div>
|
||
|
|
<div>
|
||
|
|
{{ form.password.label }}
|
||
|
|
{{ form.password(autocomplete="new-password") }}
|
||
|
|
{% for err in form.password.errors %}<div class="error">{{ err }}</div>{% endfor %}
|
||
|
|
</div>
|
||
|
|
<div>
|
||
|
|
{{ form.confirm.label }}
|
||
|
|
{{ form.confirm(autocomplete="new-password") }}
|
||
|
|
{% for err in form.confirm.errors %}<div class="error">{{ err }}</div>{% endfor %}
|
||
|
|
</div>
|
||
|
|
{{ form.submit(class_="btn btn-primary btn-block") }}
|
||
|
|
</form>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
{% endblock %}
|