{# settings/backups.html — Steward's own backups (#5673): a verdict, the bucket they go to (Fabled Archives over S3) and the daily hour, then the recent runs. Restoring is `steward restore`; see docs/core/backups.md. #} {% extends "base.html" %} {% from "_macros.html" import crumbs %} {% from "settings/_tabs.html" import settings_tabs %} {% block title %}Settings — Backups — Steward{% endblock %} {% block section_tabs %}{{ settings_tabs("backups") }}{% endblock %} {% block breadcrumb %}{{ crumbs([("Settings", "/settings/"), ("Backups", "")]) }}{% endblock %} {% block content %} {% set tone = {"ok": "tone-ok", "warn": "tone-warn", "bad": "tone-crit", "off": "tone-dim"}[verdict.tone] %}

{{ verdict.text }} {%- if verdict.moment %} {{ verdict.moment|ago }}{% endif %}. {%- if verdict.failed %} {{ verdict.error }} {% if verdict.good %}The newest good backup was sent {{ verdict.good|ago }}.{% else %}No backup has been sent yet.{% endif %} {%- endif %}

{% if flash %}
{{ flash.message }}
{% endif %}
{{ csrf_field() }}

Bucket

Each backup is one file, steward-<time>.tar: Steward's configuration, its audit log and alert history, and its secret key. Metrics and check results are left out. Anyone holding a copy can read every password and key Steward keeps, so keep the bucket private.

The S3 address, without the bucket. Requests are path-style: endpoint/bucket/file.

{% if has_secret %} {% endif %}

An append-only key is enough: Steward only uploads and never deletes. How long backups are kept is the bucket's own setting.

Schedule

A day missed while Steward was down is made up when it is back; a failed backup is tried again an hour later. Watch it with an alert rule on "Steward itself", resource backup, metric "Newest backup's age".

{{ csrf_field() }}
{{ csrf_field() }}

Both use the saved settings.

Recent backups

{% if history %}
{% for r in history %} {% endfor %}
WhenOutcomeFileSizeTookStarted by
{{ r.at|when if r.at else "—" }} {% if r.ok %}Sent{% else %}Failed
{{ r.error }}
{% endif %}
{{ r.name or "—" }} {{ r.size|bytes if r.ok else "—" }} {{ r.secs|duration }} {{ "the schedule" if r.by == "schedule" else r.by }}
{% else %}

None yet.

{% endif %}

To bring Steward back from one, see steward restore in the backups guide (docs/core/backups.md).

{% endblock %}