> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Migre do Heroku para a Square Cloud

> Migre do Heroku para a Square Cloud: mapeie o Procfile, as Config Vars, o Postgres e os logs, faça deploy com a CLI e aponte seu domínio personalizado.

## O que você tem na Square Cloud

* **Preço fixo e previsível em BRL**: o preço de um único plano mensal cobre a RAM e a vCPU que as suas aplicações usam. Veja [Planos e Preços](/pt-br/platform/plans).
* **Recursos dedicados**: RAM e vCPU são reservadas para as suas aplicações.
* **Deploy em segundos**: envie um zip ou faça push via CLI e a sua aplicação está rodando.

## Mapeamento de conceitos

| Heroku | Square Cloud |
| - | - |
| `Procfile` (tipos de processo `web:`/`worker:`) | [Arquivo de configuração `squarecloud.app`](/pt-br/getting-started/config-file): campos `MAIN`/`START` |
| Buildpacks | [Runtimes](/pt-br/runtimes/introduction): detecção automática de linguagem, sem buildpack para escolher |
| Config Vars | [Variáveis de ambiente](/pt-br/platform/environment-variables), definidas no dashboard ou enviadas de um arquivo `.env` |
| `$PORT` | `PORT`, definida como `80` na Square Cloud, mais `HOST=0.0.0.0`: um código que escuta em `process.env.PORT` continua funcionando |
| Heroku Postgres | [Bancos de dados gerenciados da Square Cloud](/pt-br/services/databases) (PostgreSQL, MySQL, MongoDB, Redis) |
| `heroku logs --tail` | [`squarecloud app realtime`](/pt-br/cli-reference/logs#squarecloud-app-realtime) para acompanhar os logs ao vivo, [`squarecloud app logs`](/pt-br/cli-reference/logs#squarecloud-app-logs) para as linhas mais recentes, ou os logs do dashboard |
| Domínios personalizados (dynos pagos) | Domínios personalizados no [plano Standard ou superior](/pt-br/platform/plans) |

## Passos de migração

<Steps>
  <Step title="Crie seu arquivo de configuração">
    Substitua seu `Procfile` por um arquivo `squarecloud.app` na raiz do seu projeto. Um `Procfile` do Heroku como:

    ```
    web: node index.js
    ```

    se torna:

    ```systemd squarecloud.app theme={"system"}
    MAIN=index.js
    MEMORY=512
    VERSION=recommended
    DISPLAY_NAME=My migrated app
    SUBDOMAIN=my-app
    ```

    Um processo `web` precisa escutar no host `0.0.0.0` e na porta da variável `PORT` (`80`). Para um tipo de processo worker, remova `SUBDOMAIN` e defina `START` com o comando de inicialização do seu worker. Veja a [referência do arquivo de configuração](/pt-br/getting-started/config-file) para todos os campos.
  </Step>

  <Step title="Defina suas variáveis de ambiente">
    Exporte suas Config Vars do Heroku (`heroku config`) e defina as mesmas chaves na Square Cloud, seja pela aba de variáveis de ambiente do dashboard ou enviando um arquivo `.env`:

    ```bash theme={"system"}
    squarecloud app env set --from-file .env --app <appID>
    ```

    Depois, reinicie a aplicação: ela lê as variáveis de ambiente ao iniciar. Veja [Variáveis de ambiente](/pt-br/platform/environment-variables).
  </Step>

  <Step title="Faça o deploy">
    Envie seu projeto pela CLI ou pelo dashboard:

    ```bash theme={"system"}
    squarecloud upload
    ```

    Veja [Como Hospedar seu Site/API](/pt-br/tutorials/how-to-deploy-your-website) para um passo a passo completo dos dois métodos.
  </Step>

  <Step title="Aponte seu DNS">
    Assim que a aplicação estiver no ar em `<subdominio>.squareweb.app`, aponte o DNS do seu domínio para a Square Cloud e vincule-o pela CLI:

    ```bash theme={"system"}
    squarecloud app network domain example.com --app <appID>
    ```

    Domínios personalizados exigem um plano Standard ativo ou superior. Para os registros DNS, veja [como configurar seu próprio domínio](https://help.squarecloud.app/pt-br/article/como-configurar-seu-proprio-dominio-cnamedns-j39hh2/) na central de ajuda.
  </Step>
</Steps>

## Principais diferenças a considerar

* **Região e latência.** O data center da Square Cloud fica localizado em Nova Iorque: veja a [Visão Geral da Plataforma](/pt-br/platform/overview) para detalhes de infraestrutura. Se a maioria dos seus usuários está em uma região diferente da região do seu dyno atual no Heroku, meça a latência antes de migrar.
* **É necessário um plano ativo.** Toda aplicação roda dentro de um plano. Veja [Planos e Preços](/pt-br/platform/plans) para escolher o tier certo para a sua carga de trabalho.
* **Bancos de dados migram separadamente.** Migrar dados do Heroku Postgres significa exportá-los (ex.: `pg_dump`) e restaurá-los em um novo [banco de dados gerenciado da Square Cloud](/pt-br/services/databases): planeje uma janela de manutenção para a transição.

## Próximos passos

<CardGroup cols={3}>
  <Card title="Arquivo de configuração" icon="file-code" href="/pt-br/getting-started/config-file">
    Todos os campos do arquivo que substitui o seu Procfile.
  </Card>

  <Card title="Variáveis de ambiente" icon="key" href="/pt-br/platform/environment-variables">
    Leve as suas Config Vars e mantenha os segredos fora do código.
  </Card>

  <Card title="Banco de dados gerenciado" icon="database" href="/pt-br/tutorials/how-to-deploy-your-database">
    Crie o banco de dados que substitui o Heroku Postgres.
  </Card>
</CardGroup>

## Contate-nos

Se você continuar enfrentando **dificuldades técnicas**, nossa **equipe de suporte especializada** está disponível para auxiliá-lo. [**Entre em contato conosco**](https://squarecloud.app/pt-br/support) e teremos prazer em ajudá-lo a resolver qualquer questão: a qualidade do suporte é uma grande parte do motivo pelo qual desenvolvedores avaliam a Square Cloud com [**4,9/5 em 402 avaliações**](https://www.trustpilot.com/review/squarecloud.app) no Google e Trustpilot.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.