# Migrar de outro host

Não existe rota de importação automática neste ciclo: a migração é manual, com as rotas documentadas. Faça nesta ordem e mantenha o host antigo no ar até o fim.

1. **Serviço**: crie projeto e serviço e faça o primeiro deploy pelo guia da sua stack ([Primeiro deploy](/comecar/primeiro-deploy/)). Valide na URL gerada ([Subdomínio gerado](/dominios/subdominio-gerado/)).
2. **Variáveis**: recrie cada variável com `PUT /v1/projects/{p}/services/{s}/variables/{NOME}` (escopo `env:write`). Valores que vêm do banco ou de outro serviço, use referência `${{svc.VAR}}` em vez de copiar ([Variáveis e referências](/conectados/variaveis-e-referencias/)). Segredos: nunca em log nem em repositório.
3. **Banco**: crie o banco gerenciado ([PostgreSQL](/bancos/postgres/), [MariaDB](/bancos/mariadb/), [SQLite](/bancos/sqlite/)). Gere o dump no host antigo e restaure com as ferramentas do próprio motor (`pg_dump`/`psql`, `mariadb-dump`/`mariadb`) usando a `DATABASE_URL` do novo banco (TLS obrigatório). Faça um backup ([Backup e restore](/bancos/backup-restore/)) antes de qualquer restauração destrutiva.
4. **Arquivos**: suba mídia para uma galeria ([Galerias e arquivos](/cdn/galerias/)); arquivos persistentes do app vão em volume ([Volumes](/conectados/volumes/)).
5. **Teste**: rode a verificação do app na URL gerada; confira logs (`logs:read`).
6. **Domínio**: reduza o TTL do DNS antes, adicione o domínio ao serviço e aplique os registros que a API devolve ([Domínio próprio](/dominios/dominio-proprio/)).
7. **Virada**: congele escritas no host antigo, faça o dump final e restaure, aponte o DNS. Mantenha o host antigo por alguns dias.
8. **Rollback**: se algo falhar, devolva o DNS ao host antigo; no lado Nebular use [rollback](/operacao/rollback/).
