Framework Frankfurt, Alemanha

Faça deploy de SvelteKit na Nodion

A Nodion faz o build do SvelteKit com o buildpack de Node.js e lê o adapter do package.json: com @sveltejs/adapter-node, inicia a sua aplicação com node build; com @sveltejs/adapter-static, serve build/ como site estático. O adapter predefinido do template, adapter-auto, não funciona na Nodion, por isso mude primeiro de adapter. A sua aplicação é executada em Frankfurt.

Fazer deploy na Nodion ›

a partir de 1 EUR / mês

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

Detetado por
@sveltejs/kit e o adapter no package.json
Arranque
node build (adapter-node) ou ficheiros estáticos (adapter-static)
Node.js
22, 24 (por omissão), 26
Região
EU Central (Frankfurt)

Faça deploy de SvelteKit passo a passo

  1. Mude de adapter-auto para adapter-node Execute npm i -D @sveltejs/adapter-node, remova @sveltejs/adapter-auto e use o novo adapter na sua configuração. A Nodion lê o adapter do package.json, e a configuração decide o que o build gera, por isso altere ambos. No SvelteKit 3, a configuração fica nas opções de sveltekit() em vite.config.js; no SvelteKit 2, é kit.adapter em svelte.config.js. vite.config.js (SvelteKit 3)
    import adapter from "@sveltejs/adapter-node";
    import { sveltekit } from "@sveltejs/kit/vite";
    import { defineConfig } from "vite";
    
    export default defineConfig({
      plugins: [
        sveltekit({
          adapter: adapter(),
          paths: { origin: "https://shop.example.com" },
        }),
      ],
    });
  2. Faça commit do lockfile, dispense o script start Faça commit do seu lockfile; sem ele, o build falha. A Nodion executa o seu script build e inicia node build, e o adapter-node escuta na porta PORT definida pela Nodion. Um script start, se o adicionar, substitui esse comando.
  3. Defina a origem pública A Nodion termina o HTTPS à frente da sua aplicação, por isso o SvelteKit não consegue saber, a partir do pedido, que URL os seus visitantes usam, e sem ele os envios de formulários são rejeitados como cross-site. No SvelteKit 3, defina paths.origin com o seu URL público, como na configuração acima; substitui a variável ORIGIN do adapter-node. No SvelteKit 2, defina antes ORIGIN no separador Environment, por exemplo https://shop.example.com.
  4. Variáveis de build e de runtime Os valores de $env/static/private e $env/static/public são inseridos no código durante o build, por isso precisam da opção Build no separador Environment. $env/dynamic/private e $env/dynamic/public são lidos enquanto o servidor está em execução e funcionam com variáveis normais.
  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. Cada push faz o build de uma nova release, e o tráfego passa para ela assim que / responde com um estado 2xx ou 3xx. Se / responder 401 ou 404, adicione uma rota como src/routes/health/+server.js que devolva 200 e defina /health como caminho do health check.

A ter em conta

  • Sites estáticos com adapter-staticCom @sveltejs/adapter-static, a Nodion serve build/ com um servidor web estático e fallback para index.html. Faça o prerender das páginas com export const prerender = true no +layout.js da raiz. Para uma single-page app, desative aí o SSR e defina fallback: 'index.html' nas opções do adapter, porque a Nodion precisa de um index.html em build/. Não há nenhum servidor Node.js em execução, por isso o tamanho mais pequeno é suficiente.
  • Um só adapter no package.jsonA Nodion procura primeiro adapter-static e depois adapter-node. Se ambos estiverem instalados, a aplicação é construída como site estático, por isso remova o adapter que não usa.

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

SvelteKit na Nodion: perguntas e respostas

Porque é que o deploy da minha aplicação SvelteKit falha com adapter-auto?

O adapter-auto só conhece uma lista fixa de fornecedores de alojamento, e a Nodion não está nela, por isso o build não gera nada que a Nodion possa usar. Instale @sveltejs/adapter-node ou @sveltejs/adapter-static e use-o na sua configuração: vite.config.js no SvelteKit 3, svelte.config.js no SvelteKit 2.

As form actions, as funções load do servidor e as rotas de API funcionam?

Sim, com adapter-node. A Nodion executa a sua aplicação como um servidor Node.js sempre ativo, por isso +page.server.js, +server.js e as form actions funcionam como com node build na sua máquina. Defina a origem pública (paths.origin no SvelteKit 3, ORIGIN no SvelteKit 2) para que as form actions não sejam rejeitadas como cross-site.

Preciso de um Dockerfile para SvelteKit?

Não. Com adapter-node ou adapter-static, o buildpack de Node.js faz o build da aplicação a partir do package.json. Se o seu repositório tiver um Dockerfile, o formulário de criação escolhe em vez disso a estratégia Dockerfile.

Onde corre a minha aplicação SvelteKit?

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 SvelteKit 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 SvelteKit 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 2 EUR por mês: Aplicação 2 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 SvelteKit?

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.