Framework Frankfurt, Alemanha

Faça deploy de Static sites and SPAs na Nodion

A Nodion faz o build de frontends como Vite, Angular, Create React App, Gatsby e Eleventy com o buildpack de Node.js e depois serve a pasta de saída com um servidor web estático. Um repositório com um index.html na raiz e sem package.json é servido tal como está. O seu site é executado em Frankfurt, e o tamanho de aplicação mais pequeno é suficiente.

Fazer deploy na Nodion ›

a partir de 1 EUR / mês

Até 15 € de crédito de boas-vindas no registo

Detetado por
Um framework estático no package.json, um static.toml ou um index.html na raiz
Saída
dist/, build/, public/, _site/ ou o seu static.toml
Servido por
static-web-server com fallback para index.html
Região
EU Central (Frankfurt)

Faça deploy de Static sites and SPAs passo a passo

  1. Faça commit de um lockfile e de um script de build Faça commit do seu lockfile; sem ele, o build falha. A Nodion executa o script build e usa a pasta de saída do seu framework: dist/ no Vite, build/ no Create React App, dist/<projeto>/browser no Angular, public/ no Gatsby e _site/ no Eleventy. package.json
    "scripts": {
      "dev": "vite",
      "build": "vite build"
    }
  2. Defina as variáveis de build O seu bundler escreve variáveis como VITE_*, REACT_APP_* ou GATSBY_* nos ficheiros durante o build, por isso precisam da opção Build no separador Environment. Todo o seu conteúdo é público, por isso nunca coloque segredos nelas.
  3. Indique outras pastas de saída no static.toml Outros geradores também funcionam: a Nodion procura um index.html em dist, build, out, .output/public, public e _site. Se o seu escrever noutro sítio, como faz o VitePress, adicione um static.toml junto ao package.json. Este ficheiro também faz com que a Nodion trate o repositório como site estático quando não o detetaria. fallback indica o ficheiro servido para caminhos que não existem. static.toml
    output-dir = "docs/.vitepress/dist"
    fallback = "index.html"
  4. HTML simples não precisa de build Um repositório com um index.html na raiz e sem package.json é servido tal como está. A Nodion exclui .git, os ficheiros .env e alguns ficheiros de chaves comuns, mas considere público tudo aquilo de que faz commit e mantenha os segredos fora do repositório.
  5. Crie a aplicação e faça push No dashboard, crie uma aplicação a partir do seu repositório GitHub, GitLab, Bitbucket ou Gitea na região EU Central e escolha o tamanho mais pequeno. Cada push faz o build de uma nova release, e o tráfego passa para ela assim que / responde, algo de que o seu index.html se encarrega.

A ter em conta

  • As rotas do lado do cliente funcionamOs caminhos que não correspondem a nenhum ficheiro recebem o seu index.html, por isso as rotas do React Router, do Vue Router e do Angular continuam a funcionar quando a página é recarregada. O fallback não pode ser desativado; fallback no static.toml apenas troca o ficheiro.
  • Sem processos do Procfile, sem código de servidorOs processos do Procfile não têm efeito num site estático, e só a pasta de saída é publicada. Uma linha release: seria executada na mesma, mas numa imagem que só contém os ficheiros gerados, por isso não a inclua. Se o seu repositório for um servidor Node.js com um script de build, leia o guia de Node.js para saber como a Nodion distingue os dois casos.
  • Angular SSRA Nodion faz o build dos projetos Angular como sites estáticos, mesmo com @angular/ssr, por isso a renderização do lado do servidor não é executada. Para SSR, use um Dockerfile.
  • Hugo e JekyllA Nodion não executa builds de Hugo nem de Jekyll. Faça o build do site localmente, faça commit da pasta gerada (public/ ou _site/) e defina-a como Base directory da aplicação: uma pasta com um index.html e sem package.json é servida tal como está. Em alternativa, faça o build do site num Dockerfile.

O que a Nodion gere por si

  • Deploys sem downtime Faça push para o seu branch e a Nodion cria uma nova release. O tráfego só muda quando as novas instâncias passam no health check; se uma release falhar, a que está em execução mantém-se. Em vez disso, as aplicações com um volume local são reiniciadas, porque o disco pertence a uma única instância.
  • Bases de dados junto à aplicação PostgreSQL, pgvector, MySQL, Valkey e ClickHouse geridos, na mesma região. As bases de dados associadas chegam como DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL.
  • Pré-visualizações por pull request Ative as pré-visualizações e cada pull request do seu repositório passa a ter uma aplicação própria, com URL próprio e bases de dados novas e vazias, criada automática ou manualmente. Os forks e os pull requests de bots são ignorados.
  • Workers, cron jobs e escalabilidade Execute workers como processos adicionais da mesma aplicação, agende tarefas no separador Cron e escale cada processo até 16 instâncias.
  • Etapa de release Com buildpacks, uma linha release: do Procfile é executada a cada novo build. As aplicações com Dockerfile, bem como os redeploys ou rollbacks para uma imagem anterior, usam um comando de release definido na própria aplicação, que também tem prioridade sobre a linha do Procfile. Nos sites estáticos, a etapa de release é executada numa imagem que contém apenas os ficheiros gerados pelo build.
  • Logs e métricas Logs de build, release e runtime, além de métricas de CPU, memória, disco e rede de cada instância, no dashboard.
  • Domínios e HTTPS Um hostname atribuído por omissão com HTTPS desde o primeiro deploy; os seus próprios domínios recebem certificados automaticamente.

Para saber mais

Static sites and SPAs na Nodion: perguntas e respostas

Porque é que o meu build falha com «could not determine static output directory»?

Depois do build, a Nodion não encontrou nenhum index.html nas pastas que verifica. Certifique-se de que o seu script de build gera um, ou indique a pasta com output-dir num static.toml.

Um site estático pode ler variáveis de ambiente em runtime?

Não. Não há nenhum servidor em execução que as possa ler, por isso cada valor tem de estar disponível durante o build: ative a opção Build. Depois de alterar um valor, faça deploy de novo para gerar novamente os ficheiros.

Com que versão do Node.js é feito o build do meu site?

Node.js 24, a menos que fixe a 22 ou a 26 em .node-version, .nvmrc ou engines.node. Um intervalo como ">=20" resolve-se para a versão compatível mais recente.

Onde corre a minha aplicação Static sites and SPAs?

Na região EU Central, em Frankfurt (Alemanha). O build, o registry, a aplicação e as respetivas bases de dados, volumes, buckets, logs e métricas ficam nessa região, e a API e o plano de controlo da Nodion estão alojados na Alemanha. A Nodion GmbH tem sede em Stuttgart.

Posso usar Static sites and SPAs em conformidade com o RGPD?

A Nodion cria as condições para isso: a Nodion GmbH tem sede em Stuttgart (Alemanha); na região de Frankfurt, a aplicação, as bases de dados e os volumes são executados na Alemanha. O acordo de tratamento de dados (DPA, art. 28.º do RGPD) é celebrado eletronicamente no dashboard. A conformidade da sua utilização depende também da forma como configura e utiliza a aplicação.

Quanto custa executar Static sites and SPAs na Nodion?

Uma instância da aplicação custa a partir de 1 EUR por mês. A configuração apresentada no quadro de custos custa 1 EUR por mês: Aplicação 1 EUR. Os preços não incluem IVA e a faturação é ao segundo. Pode escolher tamanhos maiores ou mais instâncias sempre que precisar.

Posso usar o meu próprio domínio na minha aplicação Static sites and SPAs?

Sim. Cada aplicação recebe um hostname atribuído por omissão com HTTPS. Adicione o seu próprio domínio no separador Domains da aplicação; o certificado TLS é emitido e renovado automaticamente.

Dê uma cloud ao seu agente.

Ganhe até 15 € de crédito ao registar-se.

Continuar com o GitHub

ou com e-mail

Fique a par das novidades.

Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.