Files
bvandeusen f80f6c87e8
CI / lint (push) Successful in 3s
CI / unit (push) Successful in 7s
CI / integration (push) Successful in 2m17s
CI / publish (push) Successful in 56s
feat(auth): capture Steward URL during first-run admin setup (OOBE)
A fresh install had no prompt for general.public_base_url, so first-run agent
installs/share links silently used the request Host header. Add a "Steward URL"
field to the first-run /setup page (create-admin), pre-filled with the current
address, with help text. setup_post saves general.public_base_url and applies
it to app.config immediately (no restart). Editable later in Settings → General.

Scribe #896.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 10:15:28 -04:00

37 lines
1.7 KiB
HTML

{% extends "base.html" %}
{% block title %}First-Run Setup — Steward{% endblock %}
{% block content %}
<div style="max-width:400px;margin:4rem auto;">
<div class="card">
<h2 class="page-title" style="margin-bottom:0.5rem;">First-Run Setup</h2>
<p style="margin-bottom:1.5rem;color:var(--text-muted);font-size:0.9rem;">Create the initial admin account.</p>
<form method="post" action="/setup">
<div class="form-group">
<label>Username</label>
<input type="text" name="username" autofocus required>
</div>
<div class="form-group">
<label>Email</label>
<input type="email" name="email" required>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" required>
</div>
<div class="form-group">
<label>Steward URL
<span style="color:var(--text-muted);font-weight:normal;font-size:0.78rem;">(how hosts & browsers reach this server)</span>
</label>
<input type="text" name="public_base_url" value="{{ default_url or '' }}"
placeholder="https://steward.example.com">
<span style="color:var(--text-muted);font-size:0.78rem;">
Used for agent installs, share links, and alert links. Pre-filled from your current
address — change it if hosts reach Steward by a different name. Editable later in Settings → General.
</span>
</div>
<button type="submit" class="btn">Create Admin Account</button>
</form>
</div>
</div>
{% endblock %}