Módulos e execução
Um projeto de blog recebe módulos: peças que acrescentam recursos ao painel, como os posts, as tags ou a newsletter. Esta página mostra como escolhê-los e como rodar o projeto no computador e em produção.
Escolher os módulos
Seção intitulada “Escolher os módulos”Sem --modules, o projeto recebe os nove módulos oficiais. Com --modules, recebe só os ids pedidos, separados por
vírgula, e os módulos de que eles dependem. A opção só vale com --template blog.
| Módulo | Requer |
|---|---|
posts | nenhum |
categorias | posts |
paginas | nenhum |
tags | posts |
seo | posts e paginas |
redirecionamentos | nenhum |
metricas | posts |
comentarios | posts |
newsletter | nenhum |
Um id fora da lista é recusado, com os ids disponíveis. Um id vazio, como posts,,tags, também é recusado.
Por exemplo, slash create meu-blog --template blog --modules tags instala posts e tags. O posts entra porque
tags depende dele, e vem primeiro na lista do projeto. O arquivo que lista os módulos fica assim:
// Generated by `slash create`: the installed modules, dependencies first.import type { ModuleDef } from "../panel/contract/index";import { module as postsModule } from "./posts/module";import { module as tagsModule } from "./tags/module";
export const modules: readonly ModuleDef[] = [postsModule, tagsModule];Para um projeto só com posts, use --modules posts. A saída de slash create é a mesma do padrão, que você vê em
Modelos e rotas:
Projeto criado em <projeto>.
Próximos passos, dentro da pasta:
bun run build gera o site em dist/
bun run start sobe o painel em /painel/ e o site em /
[saída: 0]
Adicionar um módulo depois
Seção intitulada “Adicionar um módulo depois”Dentro da pasta do projeto, slash module list mostra o que está instalado e o que ainda pode entrar:
Instalados:
posts 1.0.0 v1.1.0
Disponíveis:
categorias 1.0.0 depende de: posts
comentarios 1.0.0 depende de: posts
metricas 1.0.0 depende de: posts
newsletter 1.0.0 sem dependências
paginas 1.0.0 sem dependências
redirecionamentos 1.0.0 sem dependências
seo 1.0.0 depende de: posts, paginas
tags 1.0.0 depende de: posts
[saída: 0]
slash module add <id> instala o módulo e as dependências que faltam. Um módulo já instalado é recusado. O comando
grava a instalação no slash.lock e avisa para reiniciar o servidor. Se você editou src/modules/index.ts à mão, o comando acrescenta o módulo quando reconhece o formato do arquivo. Quando não reconhece, ele recusa e não copia nada: acrescente o módulo ao arquivo você mesmo. As regras estão em slash module.
Instalado: tags 1.0.0.
Reinicie o servidor (bun run start) para o painel carregar o que entrou.
[saída: 0]
Rodar no computador e em produção
Seção intitulada “Rodar no computador e em produção”O projeto traz três scripts para rodar. Eles fazem coisas diferentes:
| Comando | O que faz | Painel | Dados |
|---|---|---|---|
bun run dev | Gera o site em dist/ e gera de novo quando src/ ou public/ mudam. Serve dist/ na porta PORT, ou na 4000. | Não | content/snapshot.json |
bun run build | Gera o site em dist/, com o feed, o mapa do site e o robots.txt. | Não | content/snapshot.json |
bun run start | Sobe em modo de produção: o painel em /painel/ e o site em /. | Sim | Banco SQLite em storage/ |
bun run dev mostra só o site. No computador, o painel só roda com bun run start e as seis variáveis de produção
descritas abaixo. O PUBLIC_URL pode ser http://localhost:<porta>.
bun run start define NODE_ENV=production, serve o que está em dist/ e exige variáveis de ambiente. Antes do
primeiro bun run start, rode bun run build: sem dist/, / não tem site. Sem as variáveis, o comando para e lista
tudo que falta de uma vez:
PORT: a porta do painel, um número de 1 a 65535.PUBLIC_URL: o endereço público, comohttps://seu-dominio.com.br. Sem caminho.httpsó paralocalhost.PANEL_SECRET: pelo menos 32 caracteres. Gere comopenssl rand -hex 32.TRUST_PROXY:1atrás do Caddy, ou0sem proxy na frente.RESEND_API_KEYeMAIL_FROM: a chave do Resend e o remetente, comoPainel <painel@exemplo.com>.
HOST (padrão 127.0.0.1) e DATABASE_URL (padrão storage/db.sqlite) são opcionais. Em produção, o Caddy na frente recebe as conexões de fora.
O passo a passo completo de produção está em Implantar em VPS. Para criar o primeiro administrador, veja Primeiro administrador.
Começar sem conteúdo
Seção intitulada “Começar sem conteúdo”O projeto sai sem conteúdo. O content/snapshot.json traz listas vazias de artigos, autores, categorias, tags, séries e
páginas. Por isso, a busca do site mostra Ainda não há artigos até o primeiro artigo ser publicado.
Crie os primeiros artigos no painel, como descrito em Lista e editor.
Depois, publique em Publicação. Sem dist/ (build ou publicação), / não tem site.
Para entrar no painel pela primeira vez, veja Acesso.