<%- include("partials/layout-top", { title }) %>
<%- include("partials/page-header", { eyebrow: "Administration", pageTitle: "Settings", description: "Manage core behavior, updates, and platform integrations." }) %>
<%- include("partials/state-button", { type: "submit", states: [ { id: "idle", text: "Save settings" }, { id: "loading", text: "Saving", spinner: true }, { id: "success", text: "Saved" } ] }) %> <%- include("partials/state-button", { type: "submit", classes: "subtle", attrs: "formaction=\"/admin/check-update\" formmethod=\"post\"", states: [ { id: "idle", text: "Check for updates" }, { id: "loading", text: "Checking", spinner: true }, { id: "success", text: "Checked" } ] }) %> <%- include("partials/state-button", { type: "submit", classes: "subtle", attrs: "formaction=\"/admin/update\" formmethod=\"post\" data-confirm-mode=\"modal\" data-confirm-title=\"Update from git\" data-confirm-text=\"Pull updates from the configured remote and branch, then restart Lumi if the update succeeds.\" data-confirm-label=\"Update from git\"", states: [ { id: "idle", text: "Update from git" }, { id: "loading", text: "Updating", spinner: true }, { id: "success", text: "Updated" } ] }) %>

Git update checks use the configured remote and branch.

Platform Integration

Enable or disable platform adapters and run the setup wizards.

<% (platforms || []).forEach((platform) => { %>
<%= platform.label %> <% if (!platform.supported) { %> Coming soon <% } %>
<% if (platform.supported) { %>
Open wizard <%= platform.configured ? 'Configured' : 'Not configured' %>
<% } else { %>

Support planned for a future update.

<% } %>
<% }) %>
<% if (localhostLoginAvailable) { %>

Localhost Login

Development-only login shown only on localhost. Defaults are admin / admin until changed.

<% } %>

Homepage content

Configure public homepage link buttons and the priority-based dynamic hero without editing raw JSON.

Homepage link buttons

Add public or role-limited links shown as cards on the homepage.

Homepage hero entries

The first available enabled hero by priority is shown on the homepage.

Advanced JSON

The builder writes JSON into hidden fields before save. Edit only if you need a field the builder does not expose.

<%- include("partials/state-button", { type: "submit", states: [ { id: "idle", text: "Save settings" }, { id: "loading", text: "Saving", spinner: true }, { id: "success", text: "Saved" } ] }) %>

Navigation icons

Upload SVG or PNG icons for sidebar sublinks.

<%- include("partials/layout-bottom") %>