{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "backups" %} {# Backups (api/admin_backups.py, services/backup.py): one archive per backup, both databases, the uploads and a manifest. A restore is checked and staged here, and put in place at the next start -- never under the running service. #} {% block title %}{{ t("Backups") }} - {{ brand.name }}{% endblock %} {% block heading %}{{ t("Backups") }}{% endblock %} {% block admin_content %}
{{ t("A backup is one file: both databases, the uploaded files, and a manifest with every file's size and checksum. Taken while the instance runs, without stopping anything.") }}
{% if saved %}{{ tm("Backups go to %(dir)s (set by LEMBAS_BACKUP_DIR).", dir=directory) }}
{{ t("This instance runs on a temporary secret key, so no backup carries one.") }}
{% endif %}{{ t("None yet.") }}
{% else %}{{ t("The backup is checked first: its manifest, every file's checksum, both databases' integrity, and that it is from this major version. Then it waits until the service restarts, and the data it replaces is moved aside, not deleted.") }}
{# Not saved in place: an upload can be large, and a plain post shows the browser's own progress while it goes. #}