Como tirar meu app do Bolt.new e hospedar fora
Para tirar o app do Bolt.new, pegue o código pelo Download ou pelo GitHub, leve o banco para uma conta sua do Supabase com o Claim, recrie os segredos e publique num servidor seu. Por último, mova o domínio. O Bolt confirma que o código é seu; o trabalho está no banco e nas configurações que ficam na plataforma.
Recomendação da Heartscale: leve o Bolt Database com o Claim, nunca com o botão Connect, e só apague o projeto no Bolt depois de conferir os dados na conta nova. Se o app tem usuários reais, login ou funções de servidor, peça uma revisão das regras de acesso do banco antes de virar o domínio.
Antes de começar: o que é seu e o que fica no Bolt
A central de ajuda do Bolt diz que todo código criado com o Bolt e o StackBlitz é seu, inclusive para uso comercial (Corporate and commercial). O código sai inteiro. O resto depende de onde o projeto guarda as coisas:
| Parte | Onde fica | Como sai |
|---|---|---|
| Código | No projeto do Bolt | Download (.zip) ou GitHub |
| Banco | Bolt Database (Bolt Cloud) ou um Supabase conectado | Claim para o Supabase ou export de tabelas |
| Segredos | Aba Secrets do banco | Recriados à mão |
| Site publicado | bolt.host ou Netlify |
Novo deploy no seu servidor |
| Domínio | Seu registrador ou comprado pelo Bolt | Troca de DNS ou transferência |
Descubra qual banco o projeto usa antes de tudo. Clique no ícone de banco no topo da tela, ao centro. O Bolt Cloud cria um banco sozinho quando o projeto precisa (Bolt Cloud). Se o projeto foi ligado a um Supabase seu, o banco já está na sua conta e a mudança fica bem menor.
Passo 1: pegue o código
Há dois caminhos na documentação oficial.
Download do .zip (Manage your projects):
- Abra o projeto no Bolt.
- Clique no título do projeto, no canto superior esquerdo, e depois em Download.
- Descompacte o arquivo.
- Com o Node.js instalado, rode na pasta do projeto:
npm install && npm run dev
GitHub (GitHub for version control):
- No projeto, clique no ícone do GitHub, no canto superior direito, e em Log in to GitHub.
- Clique em Authorize e em Install the GitHub App. Escolha All repositories ou Only select repositories e confirme em Install & Authorize.
- Clique de novo no ícone do GitHub, dê um nome ao repositório e clique em Create repository.
O repositório nasce privado, no branch main. O Bolt sincroniza nos dois sentidos: grava um commit a cada mudança que não quebra o projeto e busca alterações do GitHub a cada 30 segundos. Só o dono do projeto conecta e gerencia a integração.
Prefira o GitHub. Ele guarda o histórico e permite que o servidor novo faça deploy a cada push. Dois cuidados da doc: se o Bolt e o GitHub mudarem quase ao mesmo tempo, o Bolt sobrescreve a versão do GitHub. E desconectar o projeto do GitHub não tem volta; para religar o mesmo repositório, só pelo suporte.
Passo 2: leve o banco
O caminho muda conforme o banco.
Se o projeto usa o Bolt Database
A página do banco diz que hoje não há forma suportada de migrar um Bolt Database existente para o Supabase (Database). O botão Connect troca a conexão e pode causar perda de dados (Advanced database settings).
A saída que o Bolt indica para manter os dados é o Claim, que passa o banco para a sua conta do Supabase (Supabase for databases):
- Confirme que o Bolt está conectado à sua conta do Supabase.
- Abra o projeto e clique no ícone de banco, no topo ao centro.
- Abra a aba Advanced e clique em Claim.
- Termine as etapas no Supabase.
Depois disso, o banco aparece como um projeto na lista Projects do Supabase. O Claim exige plano Pro ou Teams no Bolt, e você precisa ser dono da organização no Supabase.
Sem o Claim, resta exportar os dados tabela por tabela (Database tables): ícone de banco, abra a tabela, marque a caixa do cabeçalho para selecionar todas as linhas, clique em Export e escolha CSV ou JSON. Isso leva as linhas, mas não a estrutura completa do banco. Faça o Claim sempre que o plano permitir.
Se o projeto já usa um Supabase seu
O banco já está na sua conta e continua lá. Ao apagar um projeto, o Bolt não apaga recursos externos como um Supabase (Manage your projects). Só falta apontar o app novo para ele.
Depois do Claim
O banco passa a ser seu para manter e proteger. Revise as regras de acesso das tabelas antes de abrir o app para o público. Nosso guia de RLS no Supabase mostra como conferir. Na nossa revisão, abrimos cada tabela que veio com o Claim, conferimos se o RLS está ligado e o que cada política deixa um visitante anônimo e um usuário logado ler e gravar.
Passo 3: recrie os segredos e as variáveis
Os segredos do Bolt ficam em ícone de banco → Secrets, e as funções de servidor leem esses valores (Database secrets settings). A própria doc pede que nunca fiquem em texto no código. Anote os nomes de cada segredo e recrie os valores no servidor novo.
Se o app é feito com Vite, vale uma regra do Vite: variáveis que começam com VITE_ entram no código do navegador na hora do build e não devem guardar chaves secretas (Env Variables and Modes). Mudou uma delas? Precisa buildar de novo. Procure no código onde o app lê a URL e a chave do banco e confira se apontam para o projeto certo do Supabase.
Passo 4: faça o build e hospede
Abra o package.json e veja os scripts. Num projeto Vite, npm run build gera os arquivos na pasta dist/ (Deploying a Static Site). O vite preview serve só para testar localmente, não para produção.
npm ci
npm run build
# saída em dist/
Numa VPS com Nginx, copie o dist/ e mande toda rota para o index.html:
location / {
try_files $uri $uri/ /index.html;
}
Depois, ponha HTTPS. Se preferir um painel, o Coolify instala numa VPS Linux com pelo menos 2 núcleos e 2 GB de RAM e faz deploy a partir do GitHub.
Se o app tem lógica no servidor, ela precisa de um lugar para rodar. Depois do Claim, confira no Supabase se as funções de servidor estão lá: a doc do Bolt não detalha o que o Claim leva além do banco. Uma observação da doc do Netlify no Bolt: a integração hospeda sites só de navegador, sem banco nem backend (Netlify for hosting).
Passo 5: teste antes de virar
Rode o app novo num endereço provisório e confira:
- Abra uma rota interna direto pelo endereço e recarregue. Erro 404 indica falta do fallback para
index.html. - Entre e saia do app. Erro de redirecionamento costuma ser a URL nova faltando na lista de retornos do login no Supabase.
- Leia, grave e envie um arquivo.
- Chame cada função de servidor e veja se ela encontra os segredos.
Passo 6: mova o domínio
Domínio de outro registrador. No Bolt, ele aponta para site-dns.bolt.host (Connect your domain). Para soltar: ícone de engrenagem → All project settings → Domains & Hosting, três pontos na linha do domínio → Remove domain. Depois, troque os registros no seu provedor de DNS para o servidor novo.
Domínio comprado pelo Bolt. A transferência para outro registrador só abre 60 dias depois da compra. Durante o bloqueio, o Bolt permite mover o domínio para uma conta da Name.com em seu nome (Purchase a domain). A renovação automática fica em Settings → Cloud.
Passo 7: encerre no Bolt
- Para tirar o
bolt.hostdo ar, desconecte o domínio próprio e use Publish → Unpublish (Publish your project). - Não apague o projeto antes de conferir o banco novo. Apagar remove de vez os arquivos, o histórico do chat e o Bolt Database, sem volta (Manage your projects).
- Não conte com a cópia do projeto como backup do banco: ao duplicar, o Bolt Database leva a estrutura, mas não os dados.
Quanto tempo leva
Um site sem banco é o caso simples: passos 1, 4, 5 e 6. Com Bolt Database, o Claim decide o ritmo. Com login, arquivos e funções de servidor, o teste do passo 5 pede mais cuidado. O mesmo raciocínio vale para outras plataformas, como mostramos no guia como sair do Lovable. Veja também o serviço de migração de plataforma.
Fazer sozinho ou contratar?
Este guia basta quando o app é simples; a tabela mostra quando vale ter uma equipe ao lado.
| Situação | Caminho |
|---|---|
Site sem banco, ou banco já num Supabase seu, e alguém no time que roda npm run build |
Faça sozinho com este guia |
| Bolt Database com dados de usuários reais | Chame uma equipe para conduzir o Claim e conferir os dados antes de apagar o projeto |
| Login, pagamento ou dados pessoais no app | Peça o diagnóstico da Heartscale antes de virar: banco, segredos, funções de servidor e regras de acesso |
| Prazo curto ou ninguém técnico no time | Contrate a migração com preço fechado |
Peça o diagnóstico da Heartscale
Nossa equipe mapeia o que o seu app usa do Bolt: banco, segredos, funções de servidor e domínio. Conferimos as regras de acesso do banco que vai para a sua conta e entregamos o plano de migração com preço fechado.
O diagnóstico de lançamento custa R$ 99 (de R$ 398) e é abatido se você fechar a migração. Só trabalhamos em app de quem prova ser dono.