| .. | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
Nginx Proxy Manager
This stack runs Nginx Proxy Manager separately from the Nextcloud stack while preserving the existing proxy host database and certificates.
Layout
docker-compose.ymldefines the standalone NPM service..envholds only stack-local settings likeTZand the admin bind IP.- Runtime state lives in:
./data./letsencrypt
Networks
This stack joins the same external Docker networks that the current proxy hosts depend on:
nextcloud_edgefornextcloud-appandportainernpm-sharedfor Islandflow services likewebandapi
Because the container name stays nginx-proxy-manager, the existing proxy.deltaisland.io -> nginx-proxy-manager:81 host continues to work after migration.
Upstream alias collisions
This NPM instance is attached to multiple Docker networks. If two stacks both expose a generic alias like api or web, Nginx can resolve the wrong upstream.
For Islandflow hosts, prefer explicit upstream hostnames in NPM:
islandflow-vps-web-1on port3000islandflow-vps-api-1on port4000
This avoids routing Islandflow traffic to similarly named containers from other stacks.
Migration
- Copy
.env.exampleto.envand adjust values if needed. - Stop the old NPM service from
/home/delta/nextcloud. - Copy the existing state directories into this stack:
cp -rf /home/delta/nextcloud/npm/data /home/delta/islandflow/deployment/npm/
cp -rf /home/delta/nextcloud/npm/letsencrypt /home/delta/islandflow/deployment/npm/
- Start the new stack:
docker compose up -d
- Verify the expected hosts still load:
https://proxy.deltaisland.iohttps://portainer.deltaisland.iohttps://cloud.dpdrm.com
Current Live Proxy Hosts
cloud.dpdrm.com->nextcloud-app:80portainer.deltaisland.io->portainer:9000proxy.deltaisland.io->nginx-proxy-manager:81
Islandflow-specific host mapping should use explicit upstream container names whenever possible:
flow.deltaisland.io->islandflow-vps-web-1:3000api.flow.deltaisland.io->islandflow-vps-api-1:4000