> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Cómo alojar una aplicación Ruby on Rails (Puma)

# Cómo alojar aplicaciones Ruby on Rails en Square Cloud

Ruby on Rails es un framework full-stack potente y extremadamente estructurado. Para ponerlo en producción en Square Cloud con la máxima eficiencia, el secreto está en separar la etapa de compilación de assets de la ejecución del servidor web.

---

## 1. Compilación y preparación del build

Antes de ejecutar la aplicación en producción, Rails necesita consolidar sus dependencias y compilar todos los archivos de frontend (CSS, JavaScript, imágenes y fuentes). Este proceso optimiza la carga y garantiza que el cliente no tenga que procesar archivos en bruto.

Ejecuta los siguientes comandos en tu entorno para preparar el build de producción:

```bash
# 1. Configurar o bundler para o modo de implantação/produção
bundle config set --local deployment 'true'
bundle config set --local without 'development test'

# 2. Instalar as Gems de produção
bundle install

# 3. Pré-compilar os assets para a pasta public/assets
RAILS_ENV=production bundle exec rails assets:precompile
```

El comando de precompile generará archivos minificados y con hashes exclusivos dentro de `public/assets`, listos para ser servidos a alta velocidad.

---

## 2. Comando de ejecución en producción

Con el build preparado y los assets compilados, el comando de inicio en producción (Puma) debe apuntar al puerto obligatorio.

En tu panel o archivo de configuración, utiliza el siguiente comando de inicio:

```bash
bundle exec puma -C config/puma.rb -p 80
```

---

## 3. Preparando el paquete de envío (.zip)

Para subir tu aplicación, crea un archivo `.zip` que contenga la estructura limpia de tu proyecto.

*   **Qué INCLUIR:** Carpetas `app/`, `config/`, `db/`, `lib/`, `public/` (esencial, pues contiene tus assets compilados), además de los archivos `Gemfile`, `Gemfile.lock`, `Rakefile` y `config.ru`.
*   **Qué EXCLUIR:**
    *   `.bundle/` (configuraciones locales)
    *   `log/` y `tmp/` (archivos de log y caché locales que se recrearán en el servidor)
    *   `node_modules/` (si usas herramientas Node para assets, el build ya generó el resultado final en la carpeta public)

---

## 4. Consejos de rendimiento y solución de problemas

*   **Logs en la terminal:** Asegúrate de añadir la variable de entorno `RAILS_LOG_TO_STDOUT=true` en el panel de Square Cloud para poder monitorear los accesos y errores en tiempo real desde el dashboard.
*   **Error de Assets (404):** Si tu app inicia pero el aspecto parece roto (sin CSS), garantiza que la variable `RAILS_SERVE_STATIC_FILES=true` esté configurada en el panel, permitiendo que Puma sirva la carpeta `public` directamente si no usas una CDN.
*   **Modo de producción:** Nunca olvides definir la variable `RAILS_ENV=production` en el entorno de Square Cloud para activar todas las optimizaciones nativas del framework.