Para que el Proxy y las Webs se comuniquen sin exponer puertos al exterior, creamos una red virtual interna.
docker network create red-internet
Luego, en cada docker-compose.yml, añadimos:
networks:
default:
external:
name: red-internet
Las IPs de AWS pueden cambiar al reiniciar. Necesitamos un script que avise a DuckDNS de nuestra nueva IP automáticamente.
mkdir ~/duckdns && nano ~/duckdns/duck.sh
#!/bin/bash echo url="https://www.duckdns.org/update?domains=TU_DOMINIO&token=TU_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
chmod +x duck.sh y prográmalo en el cron (crontab -e) para que corra cada 5 minutos.
Para obtener el candado verde 🔒, usamos Let's Encrypt dentro de Nginx Proxy Manager.
Demuestra que dominas la infraestructura respondiendo correctamente: