> ## 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).

# Como hospedar uma aplicação Ruby on Rails (Puma)

# Como hospedar aplicações Ruby on Rails na Square Cloud

O Ruby on Rails é um framework full-stack poderoso e extremamente estruturado. Para colocá-lo em produção na Square Cloud com o máximo de eficiência, o segredo está em separar a etapa de compilação de assets da execução do servidor web.

---

## 1. Compilação e Preparação do Build

Antes de rodar a aplicação em produção, o Rails precisa consolidar suas dependências e compilar todos os arquivos de frontend (CSS, JavaScript, imagens e fontes). Esse processo otimiza o carregamento e garante que o cliente não precise processar arquivos brutos.

Execute os seguintes comandos no seu ambiente para preparar o build de produção:

```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
```

O comando de precompile gerará arquivos minificados e com hashes exclusivos dentro de `public/assets`, prontos para serem servidos em alta velocidade.

---

## 2. Comando de Execução em Produção

Com o build preparado e os assets compilados, o comando de inicialização da sua aplicação na Square Cloud deve focar exclusivamente em levantar o servidor HTTP de produção (Puma) apontando para a porta obrigatória.

No seu painel ou arquivo de configuração, utilize o seguinte comando de início:

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

---

## 3. Preparando o Pacote de Envio (.zip)

Para fazer o upload da sua aplicação, crie um arquivo `.zip` contendo a estrutura limpa do seu projeto.

*   **O que INCLUIR:** Pastas `app/`, `config/`, `db/`, `lib/`, `public/` (essencial, pois contém seus assets compilados), além dos arquivos `Gemfile`, `Gemfile.lock`, `Rakefile` e `config.ru`.
*   **O que EXCLUIR:** 
    *   `.bundle/` (Configurações locais)
    *   `log/` e `tmp/` (Arquivos de log e cache locais que serão recriados no servidor)
    *   `node_modules/` (Caso utilize ferramentas Node para assets, o build já gerou o resultado final na pasta public)

---

## 4. Dicas de Performance e Solução de Problemas

*   **Logs no Terminal:** Certifique-se de adicionar a variável de ambiente `RAILS_LOG_TO_STDOUT=true` no painel da Square Cloud para conseguir monitorar os acessos e erros em tempo real pelo dashboard.
*   **Erro de Assets (404):** Se o seu app iniciar mas o visual parecer quebrado (sem CSS), garanta que a variável `RAILS_SERVE_STATIC_FILES=true` esteja configurada no painel, permitindo que o Puma sirva a pasta `public` diretamente caso não use uma CDN.
*   **Modo de Produção:** Nunca se esqueça de definir a variável `RAILS_ENV=production` no ambiente da Square Cloud para ativar todas as otimizações nativas do framework.