En este post quiero compartir este proyecto que he creado en GitHub: un servidor Nginx dentro de un contenedor Docker con funciones avanzadas de seguridad y gestión de certificados. No solo configura un servidor Nginx, sino que también implementa autenticación con htpasswd, protección contra ataques de fuerza bruta mediante fail2ban y generación automática de certificados SSL con certbot. ¡Todo esto en un entorno Docker fácil de desplegar como me gusta para TomoNota!

Características Principales:

  1. Autenticación con htpasswd:
    • Protege tu servidor con credenciales usuario y contraseña sin preparar una web de login.
    • Fácil configuración mediante variables de entorno y scripts automatizados.
    • Para todos aquellos contenedores Docker que queramos añadir un login.
  2. Protección contra Ataques de Fuerza Bruta con fail2ban:
    • Monitorea y bloquea intentos de acceso no autorizados.
    • Configurable para adaptarse a diferentes proyectos y necesidades.
  3. Certificados SSL Automáticos con Certbot:
    • Genera y renueva certificados SSL automáticamente con Let’s Encrypt.
    • Alternativa para usar certificados gratuitos de ZeroSSL.
  4. Contenedor docker
    • Para facilitar el uso del proyecto.
    • Lo he organizado de manera que sea fácil de entender y modificar. Además, está todo documentado en el README para cuando lo clones / descargues de GitHub.

Este proyecto es ideal para cualquiera que quiera configurar un servidor Nginx seguro y con soporte para SSL en Docker. Está diseñado para ser fácil de usar y configurar, con un enfoque en la seguridad y la automatización.

Enlace a GitHub:

https://github.com/Pistatxos/nginxDocker


Espero que que el proyecto os sea útil, seguro que ahorrará tiempo en la configuración de tus servidores.
¡No dudes en dejar comentarios y contribuciones!

Salu2.

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Warning: Undefined array key "rerror" in /volume1/web/WebTomoNota/wp-content/plugins/wp-recaptcha-bp/recaptcha.php on line 300 Call Stack: 0.0003 361584 1. {main}() /volume1/web/WebTomoNota/index.php:0 0.0004 362824 2. require('/volume1/web/WebTomoNota/wp-blog-header.php') /volume1/web/WebTomoNota/index.php:17 0.5486 14455536 3. require_once('/volume1/web/WebTomoNota/wp-includes/template-loader.php') /volume1/web/WebTomoNota/wp-blog-header.php:19 0.5609 14737632 4. include('/volume1/web/WebTomoNota/wp-content/themes/yuki/index.php') /volume1/web/WebTomoNota/wp-includes/template-loader.php:106 2.8669 19104288 5. yuki_do_elementor_location($elementor_location = 'single', $template_part = 'template-parts/special', $name = 'single') /volume1/web/WebTomoNota/wp-content/themes/yuki/index.php:20 2.8669 19104288 6. get_template_part($slug = 'template-parts/special', $name = 'single', $args = ???) /volume1/web/WebTomoNota/wp-content/themes/yuki/inc/helpers.php:34 2.8669 19104864 7. locate_template($template_names = [0 => 'template-parts/special-single.php', 1 => 'template-parts/special.php'], $load = TRUE, $load_once = FALSE, $args = []) /volume1/web/WebTomoNota/wp-includes/general-template.php:206 2.8670 19104976 8. load_template($_template_file = '/volume1/web/WebTomoNota/wp-content/themes/yuki/template-parts/special-single.php', $load_once = FALSE, $args = []) /volume1/web/WebTomoNota/wp-includes/template.php:745 2.8672 19110096 9. require('/volume1/web/WebTomoNota/wp-content/themes/yuki/template-parts/special-single.php') /volume1/web/WebTomoNota/wp-includes/template.php:812 2.9413 19112768 10. do_action($hook_name = 'yuki_action_after_single_post') /volume1/web/WebTomoNota/wp-content/themes/yuki/template-parts/special-single.php:58 2.9413 19113144 11. WP_Hook->do_action($args = [0 => '']) /volume1/web/WebTomoNota/wp-includes/plugin.php:517 2.9413 19113144 12. WP_Hook->apply_filters($value = '', $args = [0 => '']) /volume1/web/WebTomoNota/wp-includes/class-wp-hook.php:348 3.0532 19182816 13. yuki_show_post_comments('') /volume1/web/WebTomoNota/wp-includes/class-wp-hook.php:324 3.0533 19182816 14. comments_template($file = ???, $separate_comments = ???) /volume1/web/WebTomoNota/wp-content/themes/yuki/inc/template-functions.php:354 3.0576 19204176 15. require('/volume1/web/WebTomoNota/wp-content/themes/yuki/comments.php') /volume1/web/WebTomoNota/wp-includes/comment-template.php:1631 3.0588 19205352 16. comment_form($args = ['class_form' => 'comment-form yuki-form form-default'], $post = ???) /volume1/web/WebTomoNota/wp-content/themes/yuki/comments.php:66 3.0612 19217072 17. do_action($hook_name = 'comment_form', ...$arg = variadic(1490)) /volume1/web/WebTomoNota/wp-includes/comment-template.php:2896 3.0612 19217448 18. WP_Hook->do_action($args = [0 => 1490]) /volume1/web/WebTomoNota/wp-includes/plugin.php:517 3.0612 19217448 19. WP_Hook->apply_filters($value = '', $args = [0 => 1490]) /volume1/web/WebTomoNota/wp-includes/class-wp-hook.php:348 3.0613 19218200 20. ReCAPTCHAPlugin->show_recaptcha_in_comments(1490) /volume1/web/WebTomoNota/wp-includes/class-wp-hook.php:324