software packages and deploying

This commit is contained in:
2026-09-10 21:54:55 +02:00
parent 0fb18ae4f7
commit 4567df7ebb
73 changed files with 3088 additions and 6 deletions
+14
View File
@@ -17,6 +17,7 @@ BACKUP_DIR = Path(os.getenv("BACKUP_DIR", "/data/backups"))
CONFIG_PATH = Path(os.getenv("APP_CONFIG", "/app/config/config.json"))
APPINFO_PATH = Path(os.getenv("APPINFO_PATH", "/app/config/APPINFO.json"))
UPLOAD_DIR = Path(os.getenv("UPLOAD_DIR", "/app/app/static/uploads"))
SOFTWARE_PACKAGE_DIR = Path(os.getenv("SOFTWARE_PACKAGE_DIR", "/app/data/software-packages"))
BACKUP_INTERVAL_HOURS = max(1, int(os.getenv("BACKUP_INTERVAL_HOURS", "8")))
BACKUP_RETENTION_DAYS = max(1, int(os.getenv("BACKUP_RETENTION_DAYS", "3")))
BACKUP_PREFIX = "assetmanager-backup-"
@@ -101,6 +102,7 @@ def system_storage_information(log_dir: Path | None = None) -> dict:
"database_connected": True,
"config": _directory_status(CONFIG_PATH.parent),
"uploads": _directory_status(UPLOAD_DIR),
"software_packages": _directory_status(SOFTWARE_PACKAGE_DIR, create=True),
"logs": _directory_status(log_dir or Path(os.getenv("LOG_DIR", "/app/data/logs"))),
"backups": _directory_status(BACKUP_DIR, create=True),
"backup_count": len(backups),
@@ -158,6 +160,10 @@ def create_backup(created_by: str = "system", reason: str = "manual") -> dict:
target = files_dir / "uploads"
shutil.copytree(UPLOAD_DIR, target)
included.append("files/uploads/")
if SOFTWARE_PACKAGE_DIR.is_dir():
target = files_dir / "software-packages"
shutil.copytree(SOFTWARE_PACKAGE_DIR, target)
included.append("files/software-packages/")
metadata = {
"format": 1,
@@ -324,6 +330,14 @@ def restore_backup(name: str) -> dict:
else:
child.unlink()
shutil.copytree(files / "uploads", UPLOAD_DIR, dirs_exist_ok=True)
if (files / "software-packages").is_dir():
SOFTWARE_PACKAGE_DIR.mkdir(parents=True, exist_ok=True)
for child in SOFTWARE_PACKAGE_DIR.iterdir():
if child.is_dir():
shutil.rmtree(child)
else:
child.unlink()
shutil.copytree(files / "software-packages", SOFTWARE_PACKAGE_DIR, dirs_exist_ok=True)
return _metadata(path)