Centro de Ayuda

¿Cómo despliego un Stack?

Un Stack es un entorno completo listo para tu aplicación: el contenedor de tu lenguaje, la base de datos si el Stack la incluye, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y un administrador de archivos web. Se instala con un solo comando.

Antes de empezar

Necesitás conectarte por SSH a tu servidor con los datos que te enviamos al activar el servicio.

Ejemplo de datos de conexión SSH:

Host: 69.61.21.122
Usuario: root
Contraseña: (la contraseña root de tu cloud)
Puerto: (puerto específico para tu cloud)

Ejemplo de conexión con Putty

Docker y Docker Compose ya vienen instalados en el servidor. No hace falta que instales nada más.

Ver los Stacks disponibles

bash
docker-deploy-stack --list

El comando lista cada Stack con su lenguaje y su identificador, en el formato lenguaje/stack. Ese identificador es el que vas a usar para instalarlo.

Instalar un Stack

Podés instalarlo directamente, sin menú:

bash
docker-deploy-stack --stack python/flask-mysql

O ejecutar el comando sin argumentos para elegirlo desde un menú interactivo:

bash
docker-deploy-stack

Opciones útiles

Opción Para qué sirve
--list Lista los Stacks disponibles.
--stack lenguaje/stack Instala ese Stack sin pasar por el menú.
--language python Muestra en el menú solo los Stacks de ese lenguaje.
--install-dir /opt/stacks Instala en otro directorio. Por defecto es /root.
--dry-run Muestra qué se instalaría, sin descargar nada.

Dónde queda instalado

Por defecto, en:

text
/root/stack/<lenguaje>/<stack>/

Por ejemplo, /root/stack/python/flask-mysql/. Si usaste --install-dir, la ruta es ese directorio seguido de stack/<lenguaje>/<stack>/.

Ese directorio es el centro de todo. Adentro vas a encontrar:

text
.
├── app/                  el código de tu aplicación
├── app.Dockerfile        cómo se construye la imagen de tu aplicación
├── compose.yaml          la definición de todos los servicios
├── nginx/default.conf    el nginx que recibe el tráfico del puerto 80
├── backup/               el script de backups automáticos
├── .env                  la configuración editable del Stack
└── .env.example          los valores por defecto, como referencia

Levantar el Stack

Entrá al directorio del Stack y levantalo:

bash
cd /root/stack/python/flask-mysql
docker compose up -d

La primera vez tarda unos minutos, porque descarga las imágenes y construye la de tu aplicación.

Cuando termina, ya podés abrir el dominio de tu servidor en el navegador y ver la aplicación de ejemplo que trae el Stack.

Las contraseñas se generan solas

No hay ningún archivo de contraseñas para editar antes de levantar el Stack. La primera vez que arranca, el Stack genera una contraseña aleatoria para la base de datos y la guarda en un volumen interno de Docker, al que solo llegan los contenedores que la necesitan.

Si en algún momento necesitás esa contraseña, por ejemplo para conectarte con un cliente de base de datos:

bash
docker compose exec db cat /run/secrets/db-password

Configurar el Stack

Al instalarlo se crea un archivo .env a partir de .env.example. Ahí están los valores que podés cambiar:

bash
APP_PORT=80                      # puerto público del Stack
APP_ENV=development              # entorno de la aplicación
DB_NAME=example                  # nombre de la base de datos
BACKUP_ENABLED=1                 # backups automáticos
BACKUP_INTERVAL_SECONDS=86400    # cada cuánto se hace un backup
BACKUP_RETENTION_DAYS=7          # cuántos días se conservan

Después de cambiar el .env, aplicá los cambios:

bash
docker compose up -d

Comandos que vas a usar seguido

bash
docker compose ps          # qué contenedores están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores

Siguiente paso

El Stack instalado trae una aplicación de ejemplo. Para reemplazarla por la tuya, seguí como-despliego-una-aplicacion-en-un-stack.md.

Guía g.0320 · Versión de origen 1 · es