Cómo Desplegar Aplicaciones

Un proyecto Salvo, después de la compilación, se convierte en un archivo ejecutable. Para el despliegue, solo necesitas subir este ejecutable junto con sus recursos estáticos dependientes al servidor.

Para proyectos basados en Rust, también existe una plataforma de despliegue muy sencilla: shuttle.rs. Shuttle ofrece soporte para proyectos como Salvo. Para más detalles, consulta la documentación oficial.

Despliegue con Docker

También puedes usar Docker para desplegar aplicaciones Salvo. A continuación, se muestra un ejemplo básico de Dockerfile, que puedes ajustar según los requisitos de tu proyecto:

# Etapa de construcción
FROM rust:slim AS build
WORKDIR /app

# Copiar primero los archivos de dependencias para construirlas (aprovechando capas de caché)
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && \
    echo 'fn main() { println!("Placeholder"); }' > src/main.rs && \
    cargo build --release

# Copiar el código fuente real y construir la aplicación
COPY src ./src/
RUN touch src/main.rs && \
    cargo build --release

# Usar una imagen base ligera para la etapa de ejecución
FROM debian:bookworm-slim
RUN apt-get update && \
    apt-get install -y --no-install-recommends ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Crear un usuario no root para ejecutar la aplicación
RUN useradd -ms /bin/bash appuser
USER appuser
WORKDIR /app

# Copiar el archivo binario desde la etapa de construcción
COPY --from=build /app/target/release/your_app_name ./app

# Establecer el comando de inicio del contenedor
CMD ["./app"]

Instrucciones de Uso

  1. Guarda el Dockerfile anterior en el directorio raíz de tu proyecto.
  2. Ajusta your_app_name al nombre real del archivo binario según tu proyecto.
  3. Si tu aplicación requiere archivos estáticos (como plantillas, CSS, JS, etc.), puedes agregar comandos COPY correspondientes.
  4. Si tu aplicación necesita configuración de variables de entorno, puedes usar la instrucción ENV.
  5. Construye la imagen de Docker:
    docker build -t your-app-name .
  6. Ejecuta el contenedor:
    docker run -p 8698:8698 your-app-name

Por favor, ajusta el número de puerto y otras configuraciones según las necesidades reales de tu aplicación.