From what I can see, your current setup mixes Nginx Proxy Manager and the entire Nextcloud AIO stack inside one shared Docker Compose environment. This is the main reason why your update failed and why AIO behaved as if it were a fresh installation.
In my deployment guide here:
https://help.nextcloud.com/t/proxmox-nginx-nextcloud-aio-watchtower-deployment-guide/233643
I explain a structure where Nginx Proxy Manager and Nextcloud AIO run separately.
The guide uses two VMs for clarity, but the same principle works even if both services run side-by-side on the same host.
The key point is to keep them logically separated:
-
NPM has its own clean
docker-compose.ymland only exposes ports 80 / 81 / 443. -
Nextcloud AIO has its own compose, its own network, and its own volumes.
-
No shared compose file and no shared networks between them.
This separation gives you two benefits:
-
Safe updates:
NPM can be updated with Watchtower, while AIO uses its built-in updater without interference. -
Simpler troubleshooting:
A small misconfiguration in NPM (such asexpose: 81:81) cannot break the entire AIO stack.
If you follow the separation model from the guide, NPM will run perfectly alongside Nextcloud AIO, and problems like this will not occur.