Centro de Ayuda

¿Cómo despliego una aplicación en un Stack?

Hashtags: #docker #stack #deploy #git #sftp

El Stack recién instalado corre una aplicación de ejemplo. Desplegar la tuya es reemplazar el contenido de un directorio y reconstruir.

El único directorio que te pertenece

Tu código va en la carpeta app/ dentro del Stack:

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

Por ejemplo, /root/stack/python/flask-mysql/app/.

Tenés tres formas de llevar tu código hasta ahí. Elegí una: Git si tu proyecto está en un repositorio, SFTP si preferís arrastrar archivos desde tu computadora, o el administrador de archivos web si no querés instalar nada.

Opción 1: desde Git

Es la recomendada: deja el servidor en un estado que podés volver a reproducir, y actualizar es un solo comando.

Conectate por SSH y entrá al directorio del Stack:

bash
cd /root/stack/python/flask-mysql

El directorio app/ ya trae la aplicación de ejemplo, así que no está vacío y git clone sobre él falla. Vaciá app/ primero y cloná tu repositorio adentro:

bash
rm -rf app
git clone https://github.com/tu-usuario/tu-repositorio.git app

Reconstruí y levantá:

bash
docker compose up -d --build

Actualizar la aplicación más adelante

bash
cd /root/stack/python/flask-mysql/app
git pull
cd ..
docker compose up -d --build

Opción 2: por SFTP

Se conecta con los mismos datos que el SSH: mismo host, mismo usuario, misma contraseña y mismo puerto. No hay que habilitar nada.

En tu cliente de SFTP:

Campo Valor
Protocolo SFTP - SSH File Transfer Protocol
Servidor la IP de tu cloud
Usuario root
Contraseña la contraseña root de tu cloud
Puerto el puerto SSH que te enviamos

Una vez conectado, navegá hasta el directorio de tu Stack:

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

Borrá los archivos de ejemplo que haya adentro y subí los de tu aplicación en su lugar.

Después, por SSH, reconstruí:

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

Opción 3: desde el navegador

Es la opción más simple, y no requiere instalar ningún programa ni usar la consola.

Tu servicio incluye Cloud Commander, un administrador de archivos web que ya viene funcionando. Entrá desde:

text
https://cloudcmd.tudominio.com

Reemplazá tudominio.com por el dominio de tu servicio.

Al entrar vas a ver únicamente dos carpetas:

  • application — el código de tu aplicación. Es la misma carpeta app/ que ves por SSH o por SFTP.
  • backups — los backups automáticos de tu Stack, listos para descargar.

Para desplegar: borrá el contenido de ejemplo que haya en application, subí los archivos de tu aplicación y aplicá los cambios.

Por qué siempre --build

bash
docker compose up -d --build

Algunos Stacks montan app/ dentro del contenedor, así que un cambio en un archivo se ve al instante. Otros compilan tu código dentro de la imagen, y ahí un cambio no existe hasta que la imagen se reconstruye. Además, las dependencias — requirements.txt, package.json, composer.json, pom.xml — se instalan durante la construcción en todos los casos.

Reconstruir siempre funciona en cualquier Stack. Es el comando seguro para memorizar.

Comprobar que salió bien

bash
docker compose ps          # todos los servicios en estado "running"
docker compose logs -f app # los logs de tu aplicación, en vivo

Después abrí el dominio de tu servidor en el navegador.

Si algo falla

Síntoma Dónde mirar
La aplicación no levanta docker compose logs app
Error al construir la imagen La salida de docker compose up --build, sin -d
Responde 502 desde el navegador Tu aplicación no está escuchando en el puerto interno esperado
No conecta con la base de datos docker compose ps — la base tarda unos segundos en quedar lista

Para volver a un estado limpio sin perder la base de datos ni los backups:

bash
docker compose down
docker compose up -d --build

Tus datos están respaldados

El Stack hace backups automáticos de la base de datos y de tu aplicación una vez por día, y conserva los últimos siete. Los encontrás en la carpeta backups de Cloud Commander. Los intervalos y la retención se cambian en el archivo .env.