Si tienes un NAS, probablemente ya hayas probado varios proyectos diferentes. Hay muchas cosas que puedes hacer con uno, especialmente si creaste el tuyo propio y controlas toda la máquina y el sistema operativo. Sin embargo, incluso si no lo haces, la mayoría al menos es compatible con Docker. Docker es un sistema de contenedores que te permite ejecutar diferentes aplicaciones separadas entre sí en un entorno controlado, y es una forma excelente y sencilla de implementar aplicaciones.

Un proyecto que puede interesarte es alojar tu propio sitio web en tu NAS. ¡Te mostraremos cómo hacerlo! Podrás escribir un servidor web básico en Flask, colocarlo en contenedores con Docker y luego transferir ese contenedor a tu NAS.

Hemos publicado el código fuente de esta aplicación en GitHub. ¡Puedes consultarlo al final de este artículo! Necesitarás tener Docker instalado para este tutorial.

Relacionado
Guía de contenedores de Linux: Introducción a los contenedores

Los contenedores han sido una palabra de moda durante años... pero ¿qué son exactamente?

Cómo alojar una aplicación Python Flask en su NAS usando Docker

Paso 1: Escribe el código

Código de la aplicación Python Flask y código index.html

Escribir el código para tu aplicación Flask en Python es bastante fácil. Todo lo que necesitas hacer es crear un programa que pueda escuchar en un puerto, identificarse como una aplicación Flask y luego ofrecer una plantilla HTML. Este archivo HTML deberá ir en una carpeta /templates dentro de la carpeta de tu proyecto.

Deberá asegurarse de que estos archivos se llamen app.py para su código Python e index.html para su código HTML. Colóquelos en las carpetas adecuadas y asegúrese de que su código sea igual (o similar) al que se muestra en la captura de pantalla anterior. Deberá prestar especial atención a la sangría en Python. Además, asegúrese de tener instalado el módulo Flask ejecutando el siguiente comando:

Instalación de flask de pip3

¡Una vez instalado, ya debería estar funcionando en tu máquina!

Paso 2: Creando tu contenedor Docker

Parámetros de Dockerfile que definen la versión de Python que se utilizará y otras variables

Hay dos formas de crear un contenedor Docker. Te recomendamos usar el comando de compilación Docker. Crea un Dockerfile y complétalo. Puedes usar todos los parámetros de la captura de pantalla anterior. Puedes cambiar "World" por cualquier nombre que desees. Si no tienes esta variable definida, Docker nombrará el entorno por ti.

Paso 3: Crea tu archivo de requisitos

Archivo de requisitos para Python Flask

El archivo de requisitos contendrá los módulos Python necesarios que el contenedor necesitará para ejecutar la aplicación. Para este programa básico, todo lo que necesitará es Flask y, en mi caso, tuve que usar una versión anterior de Werkzeug. Cree un archivo requirements.txt en la misma carpeta que app.py y Dockerfile, y asegúrese de que coincida con la captura de pantalla anterior.

Estoy usando una versión anterior de Flask para este tutorial, pero Flask 3.0 ya está disponible. Puedes actualizar la dependencia aquí si sabes lo que estás haciendo.

Paso 4: Crea tu contenedor Docker y guárdalo

Ejecutando la compilación de Docker

¡Ya está listo! Ejecute el siguiente comando en una terminal en la misma ventana para crear su contenedor Docker.

docker build -t mi-flask-app .

Esto creará su aplicación Docker. Ahora puede ejecutarla en su máquina para asegurarse de que funcione con:

docker run -p 5000:5000 mi aplicación flask

Si todo va bien, puedes navegar hasta 127.0.0.1:5000 en tu navegador y debería funcionar. Si no fue así, vuelve a leer este tutorial y comprueba si te has saltado algún paso.

Guardar el contenedor Docker en un archivo

Ahora puedes guardar tu contenedor Docker con el siguiente comando para exportarlo a un archivo que puedes transferir a tu NAS.

docker save -o mi-aplicación-flask.tar mi-aplicación-flask

¡Eso es todo, ahora has creado tu primera aplicación Docker!

Paso 5: Transfiere tu imagen de Docker a tu NAS

imagen de Docker de lanzamiento de Truenas
Fuente: TrueNAS

Por último, deberás transferir esta imagen de Docker a tu NAS. Según el NAS que uses, esto debería ser fácil, pero tendrá diferentes pasos. En la captura de pantalla anterior, puedes ver la opción "Iniciar imagen de Docker" en TrueNAS, y es tan simple como copiar tu archivo de Docker y pasarle los parámetros correctos para iniciarlo.

Sin embargo, en el caso de Synology e incluso de Ugreen, recomendamos consultar las instrucciones sobre cómo usar Docker con esas máquinas. Podrás poner en funcionamiento tu contenedor, pero la forma exacta de hacerlo depende de los pasos que indique la empresa para hacerlo.

Docker es una forma segura y sencilla de ejecutar programas en su NAS

Juega también con docker-compose

Ugreen-NAS-2

Incluimos un archivo docker-compose en GitHub para este proyecto, y puedes experimentar con él para intentar que funcione. Es otra forma de pasar los parámetros necesarios para ejecutar el contenedor a Docker cuando lo está compilando. Vale la pena familiarizarse con él, ya que un archivo docker-compose se puede usar para varios proyectos diferentes, algo que puede ser útil si comienzas a experimentar con más aplicaciones Flask.

Relacionado
8 proyectos increíbles que completé solo con mi NAS

Un NAS es una puerta de entrada al mundo de la informática y puede enseñarte mucho.