Docs / Primeiros Passos / Sua Primeira Implantação

Sua Primeira Implantação

Implante sua primeira aplicação no sh0 em menos de cinco minutos. Este guia acompanha você em cada etapa, desde a criação de uma stack até ver sua aplicação ativa.

Visão Geral

Implantar uma aplicação no sh0 segue um fluxo simples:

  1. Criar uma Stack -- Uma stack agrupa serviços relacionados (como uma aplicação e seu banco de dados).
  2. Adicionar um App -- Aponte o sh0 para um repositório Git ou escolha um template.
  3. Configurar Domínio -- Atribua um domínio ou use o subdomínio padrão *.sh0.app.
  4. Implantar -- O sh0 constrói e lança sua aplicação automaticamente.
  5. Verificar -- Visite sua aplicação e confirme que tudo funciona.
Tip
Neste guia, vamos implantar uma aplicação Node.js simples a partir de um repositório Git público. Você pode acompanhar com seu próprio projeto ou usar nosso repositório de exemplo.

Passo 1: Criar uma Stack

Stacks são a unidade organizacional de nível superior no sh0. Pense em uma stack como uma pasta de projeto que agrupa uma aplicação com seus serviços relacionados (bancos de dados, caches, workers).

  1. No painel, clique no botão Nova Stack no canto superior direito.
  2. Insira um nome para sua stack (ex.: my-first-app).
  3. Opcionalmente adicione uma descrição para ajudar a identificar a stack depois.
  4. Clique em Criar Stack.
New Stack dialog with a name field showing 'my-first-app', a description field, and a Create Stack button
Creating a new stack

Sua nova stack aparece na lista de stacks. Clique nela para abrir a visualização detalhada da stack, onde você adicionará sua primeira aplicação.

Empty stack detail view with an 'Add App' button prominently displayed in the center, plus tabs for Apps, Environment, Settings
A fresh stack ready for its first app

Passo 2: Adicionar um App

Dentro da sua stack, clique em Adicionar App. Você pode implantar a partir de um repositório Git, uma imagem Docker ou um template pré-construído.

A Partir de Repositório Git

A forma mais comum de implantar. Forneça uma URL Git e o sh0 cuida do resto:

  1. Selecione Repositório Git como fonte.
  2. Insira a URL do repositório. Para este exemplo, use nosso app de demonstração:
    Repository URL
    https://github.com/sh0-dev/demo-node-app
  3. Escolha a branch para implantar (padrão: main).
  4. O sh0 detecta automaticamente a stack do projeto (Node.js, Python, Go, etc.) e seleciona a configuração de build apropriada.
  5. Clique em Adicionar App.
Add App form showing Git Repository selected, with a URL field containing a GitHub URL, branch selector set to 'main', and auto-detected stack showing 'Node.js'
Adding an app from a Git repository
Repositórios Privados
Para repositórios privados, você precisa conectar um provedor Git primeiro. Vá em Configurações > Provedores Git para vincular sua conta GitHub, GitLab ou Bitbucket. Alternativamente, você pode adicionar uma chave SSH de deploy.

A Partir de Template

Se você quer implantar uma aplicação popular sem escrever nenhum código, use um template:

  1. Selecione Template como fonte.
  2. Navegue ou pesquise na biblioteca de templates (mais de 170 opções incluindo WordPress, Ghost, Plausible, Uptime Kuma e muito mais).
  3. Clique em um template para ver seus detalhes -- recursos necessários, serviços incluídos e configuração padrão.
  4. Clique em Implantar Template.
Template gallery showing a grid of application templates with icons, names, and descriptions -- WordPress, PostgreSQL, Redis, Ghost, Plausible, Uptime Kuma visible
Browse over 170 one-click deploy templates

Passo 3: Configurar Domínio

Toda aplicação precisa de um domínio para ser acessível. O sh0 oferece duas opções:

Subdomínio Padrão

O sh0 atribui automaticamente um subdomínio como my-first-app.sh0.app. Nenhuma configuração de DNS necessária -- perfeito para testes.

Domínio Personalizado

Use seu próprio domínio (ex.: app.yourdomain.com). Requer adicionar um registro A apontando para o IP do seu servidor. SSL é automático.

Para configurar um domínio para sua aplicação:

  1. Nas configurações da sua aplicação, vá para a aba Domínios.
  2. Clique em Adicionar Domínio.
  3. Insira o nome do seu domínio (ou mantenha o subdomínio padrão .sh0.app).
  4. Se estiver usando um domínio personalizado, adicione um registro A no seu provedor DNS apontando para o endereço IP do seu servidor.
  5. Clique em Salvar. O sh0 provisionará automaticamente um certificado SSL.
Domain configuration tab showing a domain input field, DNS instructions with the server IP, and an SSL status indicator showing 'Certificate Active'
Adding a custom domain with automatic SSL

Passo 4: Implantar

Com sua aplicação configurada, é hora de implantar. Clique no botão Implantar. O sh0 irá:

  1. Clonar o repositório Git (ou puxar a imagem Docker)
  2. Detectar a stack do projeto e gerar um Dockerfile
  3. Construir a imagem do contêiner
  4. Iniciar o novo contêiner e executar health checks
  5. Configurar o proxy reverso para rotear o tráfego
  6. Marcar a implantação como ativa
Deployment progress view showing a real-time build log with steps: Cloning repository, Detecting stack (Node.js 20), Building image, Starting container, Running health check, Configuring proxy -- each with a green checkmark
Real-time deployment progress with build logs

Você pode acompanhar os logs de build em tempo real. Uma implantação típica para uma aplicação Node.js leva de 30 a 90 segundos, dependendo do tamanho das suas dependências.

Cache de Build
O sh0 faz cache de camadas Docker entre builds. Implantações subsequentes são significativamente mais rápidas porque apenas camadas alteradas precisam ser reconstruídas. Um build Node.js com cache normalmente é concluído em menos de 15 segundos.
Build log showing detailed output: npm install progress, dependency tree, build output, and final container start confirmation
Detailed build output during deployment

Passo 5: Verificar

Assim que a implantação for concluída, sua aplicação está ativa. Verifique se está funcionando:

  1. Clique no link do domínio mostrado na visão geral da aplicação para abri-la em uma nova aba.
  2. Verifique o indicador de status da aplicação -- deve mostrar um badge verde Em Execução.
  3. Revise a entrada de implantação na aba Implantações para ver o histórico completo.
App overview page showing status 'Running' with a green badge, the domain link, resource usage (CPU, memory), uptime, and deployment history below
Your app is live and running

Você também pode verificar pela linha de comando:

Terminal
curl -I https://my-first-app.sh0.app
Response
HTTP/2 200
content-type: text/html; charset=utf-8
server: Caddy
x-powered-by: sh0
Propagação de DNS
Se você usou um domínio personalizado, pode levar até 24 horas para as mudanças de DNS se propagarem globalmente, embora a maioria das atualizações seja concluída em minutos. Use o subdomínio padrão .sh0.app para acesso imediato enquanto espera.

Próximos Passos

Parabéns -- sua primeira aplicação está implantada. Aqui estão alguns próximos passos recomendados: