تحديث الإضافة الخاصة بدون إعادة بناء التطبيق

The first thing I would do here is split it into 2 containers, one data and one web.

That way you can bootstrap a new web container while the site is running.

Not against making /admin/upgrade smarter, feel free to send through a PR in that department.