import html from pathlib import Path from fastapi import APIRouter, Depends, Form, Request from fastapi.responses import HTMLResponse, RedirectResponse from ..auth import require_user from ..backups import is_backup_path, list_backups from ..config import BACKUP_SCRIPT from ..shell import run_command from ..templates.layout import page, render_result router = APIRouter() @router.get("/backups", response_class=HTMLResponse) def backups_page(request: Request, user=Depends(require_user)): rows = "" for path in list_backups(): size_mb = path.stat().st_size / 1024 / 1024 backup_name = html.escape(path.name) backup_path = html.escape(str(path), quote=True) restore_cmd = html.escape( f"sudo /home/jiri/workspace/appfactory-tools/scripts/restore-appfactory.sh --force {path}", quote=True, ) rows += f"""
Zálohy neobsahují samotný adresář se zálohami. Obnova starší zálohy by neměla smazat novější soubory .tar.gz. Obnova zůstává ruční, aby nedošlo k nechtěnému přepsání dat.
| Záloha | Cesta | Příkaz pro obnovu | Akce |
|---|