Si no tenemos comprado ningún dominio, pues lo mapeamos a nuestro local, pero como el dominio local coincida con preproducción o con producción, vamos a tener un problema grave.
Por ello propongo que el dominio sea test.servicio.nombredesarrollador.com, quedando nuestro /etc/hosts así:
127.0.0.1 test.grafana.rafa.com
127.0.0.1 test.rafa.com
127.0.0.1 test.prometheus.rafa.com
127.0.0.1 test.portainer.rafa.com
¿Para qué queremos crear una CA? Pues podríamos comprobar a generar certificados de cliente para otras aplicaciones que pudiéramos estar desarrollando, por ejemplo, para comprobar que sólo los que tengan nuestros certificados acceden a nuestros servicios
- nginx_conf: Contiene todos los virtualhost de nginx.
- portainer_data: Contiene la configuración de los usuarios de portainer.
- certs: Contiene todos .cert, .key usados por nginx
- env_files: Contiene todos los ajustes parametrizables de cada servicio. Ejemplos con grafana:
-
Elasticsearch: Almacenará los logs de los contenedores, registrando cualquier traza que pudieran llegar a soltar los servicios dockerizados, incluido el propio elastic.
-
Fluent-bit: Es el servicio que enviará los logs a Elasticsearch. Plantilla de fluentbit
-
Nginx: A parte de servir la web del site de pruebas, hará de proxy inverso.
-
Grafana: Es un servicio web que permite hacer gráficos y paneles con la información del sistema. Puedes ver aquí una configuración básica. Variables de entorno de Grafana
-
Prometheus: Se encarga de la monitorización de servicios, dado que es un entorno local, no necesitaremos enviar alertas por correo. Plantilla de Prometheus
-
Portainer: Es una interfaz web que permite ver los contenedores y gestionarlos de forma básica.
-
CAdvisor: Exporta métricas de los contenedores que pueden ser ingestadas por Grafana y prometheus
-
Kibana: Permitirá establecer configuraciones avanzadas en Elasticsearch
-
Análisis de SSL/TSL con testssl.sh (pendiente de documentar)
-
Auditorías de imágenes de Docker con trivy (pendiente de documentar)
- No reposites los ficheros .env o que contengan credenciales
- Ten cuidado con el orden de arranque de servicios
- Usa contraseñas seguras, puedes generarlas con passwordgenerator
- Guarda las contraseñas en un lugar seguro, como por ejemplo keepassxc