{"id":56238,"date":"2026-06-26T09:15:58","date_gmt":"2026-06-26T02:15:58","guid":{"rendered":"\/br\/tutoriais\/?p=56238"},"modified":"2026-06-26T09:31:22","modified_gmt":"2026-06-26T02:31:22","slug":"como-publicar-app-codex","status":"publish","type":"post","link":"\/br\/tutoriais\/como-publicar-app-codex","title":{"rendered":"Como publicar um app criado com Codex na Hostinger"},"content":{"rendered":"<p>Voc&ecirc; pode publicar um app criado com o Codex de diferentes formas, como usando ferramentas de linha de comando (CLI), plataformas baseadas em cont&ecirc;ineres, pipelines de CI\/CD ou implanta&ccedil;&otilde;es via Git, dependendo da hospedagem escolhida.<\/p><p>Na Hostinger, esse processo &eacute; ainda mais simples. Basta importar um reposit&oacute;rio do GitHub ou enviar um arquivo ZIP pelo fluxo de configura&ccedil;&atilde;o de <strong>Aplicativo Web Node.js<\/strong> no hPanel. A plataforma detecta automaticamente o framework, executa o build e faz a implanta&ccedil;&atilde;o do aplicativo, sem que voc&ecirc; precise configurar o servidor manualmente.<\/p><p>Veja como publicar um app criado com o Codex na Hostinger:<\/p><ol class=\"wp-block-list\">\n<li><strong>Prepare o projeto para o deploy.<\/strong> Exporte o projeto do Codex pelo GitHub ou como um arquivo ZIP e confirme que ele inclui um arquivo <strong>package.json<\/strong> antes de iniciar a implanta&ccedil;&atilde;o.<\/li>\n\n\n\n<li><strong>Implante o aplicativo.<\/strong> Depois de contratar um plano de Hospedagem Node.js, conecte um reposit&oacute;rio do GitHub para automatizar os deploys ou envie um arquivo ZIP para publicar o app rapidamente.<\/li>\n\n\n\n<li><strong>Adicione vari&aacute;veis de ambiente.<\/strong> Se o aplicativo usa chaves de API, URLs de banco de dados ou credenciais de autentica&ccedil;&atilde;o, adicione essas informa&ccedil;&otilde;es como vari&aacute;veis de ambiente no hPanel em vez de mant&ecirc;-las diretamente no c&oacute;digo.<\/li>\n\n\n\n<li><strong>Teste a vers&atilde;o publicada do app.<\/strong> Abra a URL do aplicativo e verifique se ele carrega corretamente e se os principais recursos funcionam como esperado.<\/li>\n\n\n\n<li><strong>Gerencie o aplicativo.<\/strong> Acompanhe o uso de recursos, atualize as vari&aacute;veis de ambiente, corrija vulnerabilidades e publique novas vers&otilde;es conforme o projeto evolui.<\/li>\n\n\n\n<li><strong>Monitore vulnerabilidades e mantenha as depend&ecirc;ncias atualizadas.<\/strong> A Hostinger verifica automaticamente o aplicativo em busca de pacotes npm vulner&aacute;veis. Se o projeto estiver conectado ao GitHub, voc&ecirc; tamb&eacute;m pode usar o recurso de corre&ccedil;&atilde;o autom&aacute;tica para aplicar atualiza&ccedil;&otilde;es de seguran&ccedil;a sem precisar revisar cada depend&ecirc;ncia manualmente.<\/li>\n<\/ol><p>Depois que o projeto entrar em produ&ccedil;&atilde;o, revise o c&oacute;digo regularmente. Como o Codex pode gerar e modificar c&oacute;digo rapidamente, revisar cada altera&ccedil;&atilde;o antes de um novo deploy ajuda a identificar erros e mudan&ccedil;as indesejadas antes que elas cheguem aos usu&aacute;rios.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-1-prepare-seu-app-criado-com-o-codex-para-implantacao\">1. Prepare seu app criado com o Codex para implanta&ccedil;&atilde;o<\/h2><p>Se voc&ecirc; conectou um reposit&oacute;rio do GitHub durante a sess&atilde;o de build, o Codex pode enviar o c&oacute;digo diretamente para ele. Se preferir, tamb&eacute;m &eacute; poss&iacute;vel baixar os arquivos do projeto e export&aacute;-los em um arquivo ZIP, sem precisar conectar um reposit&oacute;rio.<\/p><p>Antes de fazer o deploy, confirme que o projeto exportado inclui um arquivo <strong>package.json<\/strong>. A Hostinger usa esse arquivo para identificar o framework, instalar as depend&ecirc;ncias e executar o processo de build correto.<\/p><p>Sem o <strong>package.json<\/strong>, a detec&ccedil;&atilde;o autom&aacute;tica do framework pode falhar. Nesse caso, talvez seja necess&aacute;rio informar manualmente o diret&oacute;rio de sa&iacute;da, o comando de build e o ponto de entrada da aplica&ccedil;&atilde;o. Essas informa&ccedil;&otilde;es normalmente est&atilde;o no pr&oacute;prio <strong>package.json<\/strong> ou nos arquivos de configura&ccedil;&atilde;o do framework.<\/p><p>A Hostinger oferece suporte a diversos frameworks Node.js, como Angular, Astro, Next.js, Nuxt, Parcel, React, React Router, Svelte, SvelteKit, Vite, Vue.js, Express, Fastify e Hono. As vers&otilde;es compat&iacute;veis do Node.js s&atilde;o 18.x, 20.x, 22.x e 24.x.<\/p><p>Confirmar essa compatibilidade antes do deploy ajuda a evitar problemas durante a implanta&ccedil;&atilde;o do aplicativo.<\/p><p>Tamb&eacute;m vale a pena separar com anteced&ecirc;ncia todas as vari&aacute;veis de ambiente necess&aacute;rias, como chaves de API, credenciais do banco de dados e outros valores de configura&ccedil;&atilde;o.<\/p><h2 class=\"wp-block-heading\" id=\"h-2-faca-o-deploy-do-seu-app-criado-com-o-codex\">2. Fa&ccedil;a o deploy do seu app criado com o Codex<\/h2><p>Para come&ccedil;ar, voc&ecirc; vai precisar de um plano de <strong>Hospedagem Node.js<\/strong> da Hostinger. Se voc&ecirc; j&aacute; tem um plano Business ou Cloud compat&iacute;vel, basta fazer login no hPanel. Depois, acesse <strong>Sites &rarr; Adicionar site &rarr; Node.js Web App<\/strong>.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b4f3d8c\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b4f3d8c\"><img decoding=\"async\" width=\"1024\" height=\"559\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-8b00c6bd-1368-4846-a3eb-9845ae247580.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56533\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-8b00c6bd-1368-4846-a3eb-9845ae247580.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-8b00c6bd-1368-4846-a3eb-9845ae247580.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-8b00c6bd-1368-4846-a3eb-9845ae247580.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-8b00c6bd-1368-4846-a3eb-9845ae247580.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Se esta for a sua primeira vez hospedando um aplicativo web na Hostinger, voc&ecirc; tamb&eacute;m pode acessar nossa p&aacute;gina de <a href=\"https:\/\/www.hostinger.com\/br\/web-apps-hosting\/codex-hosting\" target=\"_blank\" rel=\"noreferrer noopener\">Hospedagem para apps do Codex <\/a>e contratar um plano.<\/p><p>Durante a configura&ccedil;&atilde;o da Hospedagem Node.js, escolha um dom&iacute;nio para conectar ao projeto ou use um dom&iacute;nio tempor&aacute;rio gerado automaticamente.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b501d71\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b501d71\"><img decoding=\"async\" width=\"1024\" height=\"518\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-bad65aa6-6ca2-48ee-9b95-4b13fdc01fa2.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56534\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-bad65aa6-6ca2-48ee-9b95-4b13fdc01fa2.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-bad65aa6-6ca2-48ee-9b95-4b13fdc01fa2.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-bad65aa6-6ca2-48ee-9b95-4b13fdc01fa2.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-bad65aa6-6ca2-48ee-9b95-4b13fdc01fa2.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Em seguida, escolha como deseja implantar o app criado com o Codex:<\/p><ul class=\"wp-block-list\">\n<li><strong>Reposit&oacute;rio no GitHub.<\/strong> Conecte o reposit&oacute;rio &agrave; Hostinger. Depois da configura&ccedil;&atilde;o inicial, cada altera&ccedil;&atilde;o enviada para a branch conectada inicia automaticamente um novo deploy. Essa op&ccedil;&atilde;o &eacute; ideal para projetos que continuar&atilde;o sendo atualizados.<\/li>\n\n\n\n<li><strong>Upload de arquivo ZIP.<\/strong> Envie um arquivo ZIP com os arquivos do projeto. Nesse caso, n&atilde;o &eacute; preciso conectar um reposit&oacute;rio do GitHub. Essa op&ccedil;&atilde;o &eacute; ideal para prot&oacute;tipos ou implanta&ccedil;&otilde;es pontuais.<\/li>\n<\/ul><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b503af6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b503af6\"><img decoding=\"async\" width=\"1024\" height=\"557\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-c7623ac7-c1b1-4706-9fcf-9fb3a3c6f6ca.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56535\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-c7623ac7-c1b1-4706-9fcf-9fb3a3c6f6ca.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-c7623ac7-c1b1-4706-9fcf-9fb3a3c6f6ca.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-c7623ac7-c1b1-4706-9fcf-9fb3a3c6f6ca.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-c7623ac7-c1b1-4706-9fcf-9fb3a3c6f6ca.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Independentemente do m&eacute;todo escolhido, a Hostinger analisa o arquivo <strong>package.json<\/strong> para detectar automaticamente o framework e as configura&ccedil;&otilde;es de build do projeto. Na maioria dos casos, as configura&ccedil;&otilde;es sugeridas j&aacute; est&atilde;o prontas para uso. Basta clicar em <strong>Implantar<\/strong>.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b505986\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b505986\"><img decoding=\"async\" width=\"1024\" height=\"649\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-16c470e1-7255-4b0b-9b24-621e82aa7f09.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56536\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-16c470e1-7255-4b0b-9b24-621e82aa7f09.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-16c470e1-7255-4b0b-9b24-621e82aa7f09.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-16c470e1-7255-4b0b-9b24-621e82aa7f09.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-16c470e1-7255-4b0b-9b24-621e82aa7f09.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Se o framework n&atilde;o for detectado e acabar classificado como <strong>Outro<\/strong>, voc&ecirc; vai precisar informar manualmente o diret&oacute;rio de sa&iacute;da e o arquivo de entrada antes de fazer o deploy.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b507b93\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b507b93\"><img decoding=\"async\" width=\"1024\" height=\"1032\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56538\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=298,fit=scale-down 298w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=1016,fit=scale-down 1016w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-2bb82f24-b6a0-4071-b195-a21b55decf48.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Para ver o passo a passo completo, leia nosso guia sobre <a href=\"https:\/\/www.hostinger.com\/br\/support\/como-implantar-aplicativos-criados-com-codex-na-hostinger\/\" target=\"_blank\" rel=\"noreferrer noopener\">como publicar apps criados com o Codex na Hostinger.<\/a><\/p><h2 class=\"wp-block-heading\" id=\"h-3-adicione-variaveis-de-ambiente\">3. Adicione vari&aacute;veis de ambiente<\/h2><p>Muitos apps criados com o Codex dependem de vari&aacute;veis de ambiente para funcionar, principalmente quando se conectam a bancos de dados externos, gerenciam a autentica&ccedil;&atilde;o de usu&aacute;rios, processam pagamentos ou fazem chamadas para APIs de terceiros.<\/p><p>Se esse for o caso do seu aplicativo, ele vai precisar que informa&ccedil;&otilde;es como chaves de API, URLs de banco de dados e credenciais de autentica&ccedil;&atilde;o estejam dispon&iacute;veis durante a execu&ccedil;&atilde;o.<\/p><p>Em vez de armazenar esses dados no c&oacute;digo do projeto, adicione-os pelo hPanel. Assim, as informa&ccedil;&otilde;es sens&iacute;veis ficam protegidas e voc&ecirc; pode atualiz&aacute;-las sem precisar fazer um novo deploy.<\/p><p>Antes de configurar as vari&aacute;veis, verifique no c&oacute;digo gerado pelo Codex quais nomes o aplicativo espera encontrar. Em projetos Next.js, por exemplo, &eacute; comum encontrar vari&aacute;veis como <strong>DATABASE_URL<\/strong>, <strong>API_KEY<\/strong> e <strong>NEXT_PUBLIC_<\/strong>*.<\/p><p>Depois, acesse <strong>Vari&aacute;veis de ambiente<\/strong> no menu lateral do painel da Hospedagem Node.js, clique em <strong>Adicionar vari&aacute;vel de ambiente<\/strong> e informe o nome e o valor de cada vari&aacute;vel.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b509f69\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b509f69\"><img decoding=\"async\" width=\"1024\" height=\"458\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-34c689d2-0f83-47d0-bebf-078c295f2581.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56539\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-34c689d2-0f83-47d0-bebf-078c295f2581.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-34c689d2-0f83-47d0-bebf-078c295f2581.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-34c689d2-0f83-47d0-bebf-078c295f2581.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-34c689d2-0f83-47d0-bebf-078c295f2581.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Se o aplicativo usa um banco de dados, a Hospedagem Node.js da Hostinger oferece um assistente de conex&atilde;o integrado para o Supabase e o MongoDB Atlas. Abra o painel da Hospedagem Node.js, acesse <strong>Banco de dados<\/strong>, clique em <strong>Conectar<\/strong> e escolha o provedor que deseja usar.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure data-wp-context='{\"imageId\":\"6a3e70b50bead\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b50bead\" class=\"size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"581\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-855bf03b-1853-4e05-9e30-3a7fa8fbaed6.jpg\/public\" alt=\"\" class=\"wp-image-56541\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-855bf03b-1853-4e05-9e30-3a7fa8fbaed6.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-855bf03b-1853-4e05-9e30-3a7fa8fbaed6.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-855bf03b-1853-4e05-9e30-3a7fa8fbaed6.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-855bf03b-1853-4e05-9e30-3a7fa8fbaed6.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Depois, siga as instru&ccedil;&otilde;es na tela para informar os dados da conex&atilde;o. A Hostinger salva essas informa&ccedil;&otilde;es automaticamente como vari&aacute;veis de ambiente e recompila o projeto para aplicar a nova configura&ccedil;&atilde;o.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-teste-seu-aplicativo-criado-com-o-codex-publique\">4. Teste seu aplicativo criado com o Codex publique<\/h2><p>Assim que a implanta&ccedil;&atilde;o for conclu&iacute;da e as vari&aacute;veis de ambiente estiverem configuradas, acesse a URL do aplicativo e confirme se tudo est&aacute; funcionando corretamente.<\/p><p>Primeiro, verifique se o aplicativo carrega sem erros e se todas as p&aacute;ginas est&atilde;o acess&iacute;veis. Depois, teste os principais recursos, como formul&aacute;rios, bot&otilde;es, autentica&ccedil;&atilde;o, integra&ccedil;&otilde;es com APIs, conex&otilde;es com o banco de dados e outras funcionalidades importantes para os usu&aacute;rios.<\/p><p>Se o aplicativo usa vari&aacute;veis de ambiente ou servi&ccedil;os externos, confirme tamb&eacute;m se essas integra&ccedil;&otilde;es est&atilde;o funcionando corretamente. Caso encontre algum problema, consulte os logs de implanta&ccedil;&atilde;o no hPanel para identificar a causa. Depois, ajuste as configura&ccedil;&otilde;es do projeto ou do processo de build, se necess&aacute;rio, e fa&ccedil;a um novo deploy.<\/p><p>Sempre teste o aplicativo ap&oacute;s cada implanta&ccedil;&atilde;o para confirmar que tudo est&aacute; funcionando como esperado.<\/p><h2 class=\"wp-block-heading\" id=\"h-5-gerencie-seu-app-criado-com-o-codex-e-ja-publicado\">5. Gerencie seu app criado com o Codex e j&aacute; publicado<\/h2><p>Depois da implanta&ccedil;&atilde;o, voc&ecirc; pode gerenciar o app criado com o Codex pelo painel da <strong>Hospedagem Node.js<\/strong> no hPanel. Nele, voc&ecirc; encontra tudo o que precisa para monitorar o aplicativo, atualizar configura&ccedil;&otilde;es, solucionar problemas e fazer novos deploys sempre que necess&aacute;rio.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b50e288\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b50e288\"><img decoding=\"async\" width=\"1024\" height=\"860\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-9ee8d335-8696-4ac8-80d4-9f22798c996e.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56543\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-9ee8d335-8696-4ac8-80d4-9f22798c996e.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-9ee8d335-8696-4ac8-80d4-9f22798c996e.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-9ee8d335-8696-4ac8-80d4-9f22798c996e.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-9ee8d335-8696-4ac8-80d4-9f22798c996e.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>No painel, voc&ecirc; encontra:<\/p><ul class=\"wp-block-list\">\n<li><strong>Link para o reposit&oacute;rio no GitHub.<\/strong> Se o deploy foi feito pelo GitHub, voc&ecirc; ver&aacute; um atalho para o reposit&oacute;rio conectado.<\/li>\n\n\n\n<li><strong>Status do &uacute;ltimo deploy.<\/strong> Confira se a implanta&ccedil;&atilde;o mais recente foi conclu&iacute;da com sucesso ou se ocorreu algum erro, al&eacute;m da data, do hor&aacute;rio e do acesso aos logs.<\/li>\n\n\n\n<li><strong>Logs de implanta&ccedil;&atilde;o.<\/strong> Consulte os detalhes do processo de build e deploy para identificar e corrigir problemas.<\/li>\n\n\n\n<li><strong>Vari&aacute;veis de ambiente.<\/strong> Adicione, edite ou remova as vari&aacute;veis de ambiente usadas pelo aplicativo.<\/li>\n\n\n\n<li><strong>Configura&ccedil;&otilde;es e reimplanta&ccedil;&atilde;o.<\/strong> Atualize as configura&ccedil;&otilde;es de build e fa&ccedil;a um novo deploy ap&oacute;s as altera&ccedil;&otilde;es.<\/li>\n\n\n\n<li><strong>Gerenciador de arquivos.<\/strong> Navegue e gerencie os arquivos publicados diretamente pelo hPanel.<\/li>\n\n\n\n<li><strong>Gr&aacute;ficos de uso de recursos.<\/strong> Monitore o consumo de CPU, mem&oacute;ria RAM e I\/O.<\/li>\n<\/ul><p>O painel tamb&eacute;m oferece a op&ccedil;&atilde;o <strong>Reiniciar<\/strong> para aplicativos que executam um processo persistente no servidor, como projetos em Express.js, Next.js e NestJS.<\/p><p>Acompanhar o uso de recursos &agrave; medida que o aplicativo cresce ajuda a identificar poss&iacute;veis gargalos antes que eles afetem o desempenho. Se o tr&aacute;fego aumentar ou a aplica&ccedil;&atilde;o come&ccedil;ar a lidar com cargas de trabalho mais intensas, monitore regularmente os gr&aacute;ficos de CPU, mem&oacute;ria RAM e I\/O.<\/p><p>Quando o consumo se aproximar dos limites do plano, considere otimizar a aplica&ccedil;&atilde;o ou fazer um upgrade da hospedagem para manter um desempenho est&aacute;vel.<\/p><h2 class=\"wp-block-heading\" id=\"h-6-monitore-vulnerabilidades-e-atualize-as-dependencias\">6. Monitore vulnerabilidades e atualize as depend&ecirc;ncias<\/h2><p>Publicar o aplicativo &eacute; s&oacute; o come&ccedil;o. Como muitos apps criados com o Codex dependem de pacotes npm, manter as depend&ecirc;ncias atualizadas e acompanhar poss&iacute;veis vulnerabilidades faz parte da manuten&ccedil;&atilde;o do projeto.<\/p><p>A Hostinger verifica automaticamente os aplicativos publicados em busca de vulnerabilidades conhecidas em pacotes npm e gera relat&oacute;rios com os pacotes afetados, o n&iacute;vel de gravidade de cada problema e as vers&otilde;es corrigidas dispon&iacute;veis.<\/p><p>Voc&ecirc; pode acessar esses relat&oacute;rios em <strong>Seguran&ccedil;a &rarr; Vulnerabilidades<\/strong> no painel da <strong>Hospedagem Node.js<\/strong>.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a3e70b510573\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a3e70b510573\"><img decoding=\"async\" width=\"1024\" height=\"531\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-f48e794c-81e8-4b91-bc34-3a7727c69fe4.jpg\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-56544\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-f48e794c-81e8-4b91-bc34-3a7727c69fe4.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-f48e794c-81e8-4b91-bc34-3a7727c69fe4.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-f48e794c-81e8-4b91-bc34-3a7727c69fe4.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/06\/fi-f48e794c-81e8-4b91-bc34-3a7727c69fe4.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Quando uma vulnerabilidade for detectada, atualize a depend&ecirc;ncia afetada para a vers&atilde;o recomendada e fa&ccedil;a um novo deploy. Manter as depend&ecirc;ncias atualizadas ajuda a reduzir riscos de seguran&ccedil;a, melhora a estabilidade e mant&eacute;m o aplicativo funcionando corretamente.<\/p><p>Se n&atilde;o houver uma corre&ccedil;&atilde;o autom&aacute;tica dispon&iacute;vel, atualize manualmente o pacote afetado e fa&ccedil;a um novo deploy.<\/p><p>Para aplicativos implantados pelo GitHub, a Hostinger tamb&eacute;m oferece um recurso de corre&ccedil;&atilde;o autom&aacute;tica que simplifica esse processo. Em vez de atualizar os pacotes manualmente, voc&ecirc; pode criar uma <strong>pull request<\/strong> no GitHub com as corre&ccedil;&otilde;es recomendadas diretamente pelo hPanel.<\/p><p>Depois que a <strong>pull request<\/strong> for criada, revise as altera&ccedil;&otilde;es propostas, fa&ccedil;a o merge se tudo estiver certo e inicie um novo deploy.<\/p><p>A corre&ccedil;&atilde;o autom&aacute;tica est&aacute; dispon&iacute;vel apenas para aplicativos implantados pelo GitHub. Al&eacute;m disso, o aplicativo da Hostinger no GitHub precisa ter permiss&atilde;o de grava&ccedil;&atilde;o no reposit&oacute;rio.<\/p><p>Se essa permiss&atilde;o ainda n&atilde;o tiver sido concedida, voc&ecirc; ver&aacute; um erro ao tentar criar a <strong>pull request<\/strong>. Nesse caso, o GitHub enviar&aacute; um e-mail em nome da Hostinger para solicitar a aprova&ccedil;&atilde;o da atualiza&ccedil;&atilde;o de permiss&otilde;es.<\/p><p>A Hostinger nunca faz merge das altera&ccedil;&otilde;es nem envia atualiza&ccedil;&otilde;es diretamente para as suas branches. Todas as corre&ccedil;&otilde;es s&atilde;o enviadas como <strong>pull requests<\/strong>, para que voc&ecirc; possa revis&aacute;-las e aprov&aacute;-las antes da implanta&ccedil;&atilde;o.<\/p><p>O recurso de corre&ccedil;&atilde;o autom&aacute;tica se limita &agrave; atualiza&ccedil;&atilde;o de depend&ecirc;ncias. Ele n&atilde;o tem acesso aos segredos do reposit&oacute;rio nem &agrave;s vari&aacute;veis de ambiente, garantindo que voc&ecirc; continue no controle do c&oacute;digo e das configura&ccedil;&otilde;es do aplicativo.<\/p><p>Para conhecer outras pr&aacute;ticas recomendadas de seguran&ccedil;a, confira nosso guia sobre <a href=\"https:\/\/www.hostinger.com\/br\/tutoriais\/seguranca-de-web-app\">como manter seu aplicativo web seguro.<\/a><\/p><h2 class=\"wp-block-heading\" id=\"h-problemas-comuns-ao-implantar-um-aplicativo-criado-com-o-codex\">Problemas comuns ao implantar um aplicativo criado com o Codex<\/h2><p>Se o app criado com o Codex n&atilde;o faz o deploy ou n&atilde;o roda direito, o problema geralmente est&aacute; na configura&ccedil;&atilde;o do projeto, nas configura&ccedil;&otilde;es de build, nas depend&ecirc;ncias ou em vari&aacute;veis de ambiente ausentes. <\/p><p>A tabela abaixo mostra os problemas mais comuns ao implantar o Codex com a Hostinger e como resolver cada um deles:<\/p><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Poss&iacute;vel problema<\/strong> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Solu&ccedil;&atilde;o<\/strong> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Arquivo<\/span> <strong>package.json<\/strong> <span>ausente<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Certifique-se de que o arquivo package.json esteja na raiz do seu projeto antes de fazer upload ou enviar para o GitHub<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>O app &eacute; compilado com sucesso, mas n&atilde;o serve os arquivos esperados por causa de um diret&oacute;rio de sa&iacute;da incorreto<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Verifique o arquivo de configura&ccedil;&atilde;o do seu framework ou o <\/span> <strong>package.json<\/strong> <span> para encontrar o caminho de sa&iacute;da correto e atualize-o nas configura&ccedil;&otilde;es de build.<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Vari&aacute;veis de ambiente ausentes fazem o aplicativo carregar, mas os recursos que dependem de APIs ou bancos de dados falham<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Verifique se todas as vari&aacute;veis de ambiente obrigat&oacute;rias foram adicionadas e, em seguida, fa&ccedil;a a implanta&ccedil;&atilde;o novamente<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Arquivo de entrada incorreto, ent&atilde;o os aplicativos do lado do servidor podem n&atilde;o iniciar ap&oacute;s a implanta&ccedil;&atilde;o<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Confirme o arquivo de entrada correto no seu <\/span> <strong>package.json<\/strong> <span> e atualize-o nas configura&ccedil;&otilde;es de build<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>As depend&ecirc;ncias n&atilde;o s&atilde;o instaladas ou compiladas por causa de uma vers&atilde;o do Node.js incompat&iacute;vel ou sem suporte<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Selecione, nas configura&ccedil;&otilde;es de build, uma vers&atilde;o compat&iacute;vel do Node.js que atenda aos requisitos do seu projeto<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Arquivo ZIP grande ou incompleto<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Certifique-se de que o arquivo <\/span> <strong>ZIP<\/strong> <span> contenha toda a estrutura do projeto ou exclua a pasta <\/span> <strong>node_modules<\/strong> <span> para manter o tamanho do arquivo em um n&iacute;vel gerenci&aacute;vel<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Erro 403 ap&oacute;s nova implanta&ccedil;&atilde;o<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Um erro 403 ap&oacute;s uma nova implanta&ccedil;&atilde;o pode acontecer por causa de um problema de cache. Reimplantar o aplicativo resolve isso.<\/span> <\/p><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div><h2 class=\"wp-block-heading\" id=\"h-deploy-pelo-github-ou-upload-de-zip-qual-metodo-escolher\">Deploy pelo GitHub ou upload de ZIP: qual m&eacute;todo escolher?<\/h2><p>Os dois m&eacute;todos colocam no ar o app criado com o Codex. A escolha certa depende de como voc&ecirc; pretende gerenciar e atualizar o aplicativo.<\/p><p>A implanta&ccedil;&atilde;o pelo GitHub &eacute; a melhor escolha para qualquer <strong>projeto que voc&ecirc; pretenda aprimorar com o tempo<\/strong>. O upload de arquivo ZIP &eacute; uma op&ccedil;&atilde;o perfeitamente v&aacute;lida para <strong>casos de uso mais simples<\/strong>, j&aacute; que &eacute; mais r&aacute;pido de configurar e n&atilde;o exige uma conta no GitHub. <\/p><p>A tabela abaixo mostra, em mais detalhes, a diferen&ccedil;a entre a implanta&ccedil;&atilde;o pelo GitHub e o envio de um arquivo ZIP:<\/p><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Recurso<\/strong> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Implanta&ccedil;&atilde;o no GitHub<\/strong> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Upload de arquivo ZIP<\/strong> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Facilidade de atualiza&ccedil;&atilde;o<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Reimplanta&ccedil;&otilde;es e atualiza&ccedil;&otilde;es podem ser disparadas automaticamente<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Envie um novo arquivo ZIP sempre que fizer altera&ccedil;&otilde;es no aplicativo<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Reimplanta&ccedil;&atilde;o autom&aacute;tica<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Sim, ao fazer push para a branch conectada<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>N&atilde;o, &eacute; necess&aacute;rio reimplantar manualmente<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Suporte a reposit&oacute;rios privados<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Sim<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>N&atilde;o se aplica<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Corre&ccedil;&atilde;o autom&aacute;tica de vulnerabilidades<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Sim<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>N&atilde;o aplic&aacute;vel &ndash; sem conex&atilde;o com reposit&oacute;rio<\/span> <\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Melhor caso de uso<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Projetos em andamento, aplicativos que ser&atilde;o atualizados com frequ&ecirc;ncia ou fluxos de trabalho do Codex que enviam c&oacute;digo para o GitHub<\/span> <\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Prot&oacute;tipos r&aacute;pidos, implanta&ccedil;&otilde;es pontuais ou projetos em que a integra&ccedil;&atilde;o com o GitHub n&atilde;o &eacute; necess&aacute;ria<\/span> <\/p><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div><h2 class=\"wp-block-heading\" id=\"h-o-que-voce-pode-fazer-depois-de-publicar-um-app-criado-com-o-codex\">O que voc&ecirc; pode fazer depois de publicar um app criado com o Codex?<\/h2><p>Publicar um app criado com o Codex &eacute; o momento em que o c&oacute;digo gerado por IA se transforma em um aplicativo dispon&iacute;vel para usu&aacute;rios reais. Com uma URL publicada, voc&ecirc; pode compartilhar o projeto, coletar feedback e come&ccedil;ar a aprimor&aacute;-lo com base no uso.<\/p><p>Se o aplicativo estiver conectado ao GitHub, voc&ecirc; pode continuar desenvolvendo diretamente no Codex. Ele pode trabalhar em v&aacute;rias melhorias ao mesmo tempo, criar commits e abrir <strong>pull requests<\/strong> para a sua revis&atilde;o.<\/p><p>Na Hostinger, basta fazer o merge de uma <strong>pull request<\/strong> para iniciar automaticamente um novo deploy. Assim, o ciclo de build e entrega continua r&aacute;pido. Voc&ecirc; tamb&eacute;m pode conectar bancos de dados externos e APIs, monitorar o uso de recursos e identificar vulnerabilidades em depend&ecirc;ncias usando as ferramentas integradas do hPanel.<\/p><p>O c&oacute;digo gerado pelo Codex &eacute; um excelente ponto de partida, mas vale a pena revisar cada altera&ccedil;&atilde;o antes de coloc&aacute;-la em produ&ccedil;&atilde;o. Teste o aplicativo com aten&ccedil;&atilde;o e trate cada deploy como parte de um processo cont&iacute;nuo de desenvolvimento e melhorias.<\/p><p>Quer mais ideias para criar com o Codex? Confira nosso guia com os melhores casos de uso.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Voc&ecirc; pode publicar um app criado com o Codex de diferentes formas, como usando ferramentas de linha de comando (CLI), plataformas baseadas em cont&ecirc;ineres, pipelines de CI\/CD ou implanta&ccedil;&otilde;es via Git, dependendo da hospedagem escolhida. Na Hostinger, esse processo &eacute; ainda mais simples. Basta importar um reposit&oacute;rio do GitHub ou enviar um arquivo ZIP pelo [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/como-publicar-app-codex\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":473,"featured_media":56218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Como publicar um app criado com Codex na Hostinger","rank_math_description":"Aprenda como publicar um app criado com Codex na Hostinger usando GitHub ou ZIP, configurar builds e gerenciar tudo pelo hPanel.","rank_math_focus_keyword":"como publicar um app criado com codex","footnotes":""},"categories":[8009],"tags":[],"class_list":["post-56238","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-apps"],"hreflangs":[{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-publicar-app-codex\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-publicar-app-codex\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/56238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/473"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=56238"}],"version-history":[{"count":4,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/56238\/revisions"}],"predecessor-version":[{"id":56545,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/56238\/revisions\/56545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/56218"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=56238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=56238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=56238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}