Skip to content

Catalog data resets on update; add weekly CI rebuild and post-update refresh #56

Description

@BrettVerney

Bug: update.sh overwrites locally-refreshed catalog data

update.sh uses rsync --delete to copy application files, which overwrites apps/lxc/data/community_scripts.json and apps/vmcreator/data/vm_community_scripts.json with the versions committed to the repo at release time. Any catalog data the user had refreshed via the UI is lost, and they must manually click "Update" in the LXC and VM community scripts sections again after every app update.

Proposed Fix

1. GitHub Actions weekly catalog rebuild

Add a scheduled workflow file at .github/workflows/rebuild-catalogs.yml that runs on GitHub's own infrastructure (no impact on the user's server). Every Sunday, GitHub spins up a temporary runner that:

  • Checks out the ProxOrchestrator repo
  • Runs apps/lxc/build_catalog.py and apps/vmcreator/build_vm_catalog.py, which clone the upstream community-scripts/ProxmoxVE repo and parse the latest script metadata
  • Commits any changes to community_scripts.json, community_categories.json, vm_community_scripts.json, and vm_community_categories.json back to the repo (requires contents: write permission on the workflow — standard for this pattern)

This means the bundled catalog data in the repo stays fresh automatically. New installs ship with recent script data out of the box, and update.sh naturally pulls the latest JSON via git as part of the normal update flow — no manual refresh needed.

2. Post-update catalog refresh in update.sh

The weekly CI run keeps the bundled data current to within ~7 days, but update.sh should also trigger a background catalog rebuild after migrations and service restart — wrapping the existing rebuild_catalog() logic in a Django management command. This closes the gap between the last CI run and the actual update date, ensuring users always get fully current data after updating.

Expected outcome

  • New installs: catalog is already populated with recent scripts
  • After update.sh: catalog is automatically refreshed to the latest available data
  • Users never need to manually trigger a catalog update unless they want an on-demand mid-week refresh

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requestlxcLXC container relatedvmVM related

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions