Configuração
O processo abaixo é orientado para ambientes de desenvolvimento Linux.
1. Nome da app
Renomeia a pasta do projeto (o nome da app) usando apenas letras minúsculas, números e underscore.
2. Ficheiro de configuração
Copia o ficheiro de configuração de amostra, a partir da raiz da app:
cp config/sample.json config/_development.json
Para um ambiente de produção, usa em vez disso:
cp config/sample.json config/_production.json
Depois, altera a propriedade name na raiz do JSON para o nome da app escolhido no passo 1.
Os ficheiros
config/_development.jseconfig/_production.jsjá existem no projeto e servem para configurações dinâmicas/programáticas — normalmente não precisas de os tocar; quem se edita é o.jsoncorrespondente.
3. Base de dados
O CLUAR precisa de uma ligação a uma base de dados PostgreSQL. Aprende a configurar aqui.
No config/_development.json (ou _production.json), localiza db.default e substitui pelos dados da tua base de dados:
"db": {"default": {
"password": "Your-DB-SeCr3t-Her3",
"engine": "pg",
"port": "5432",
"host": "localhost",
"name": "cluar",
"username": "cluar"
}}
4. Segredo JWT
Em auth.jwt.secret, define um segredo aleatório com 32 caracteres, usado para garantir a segurança da autenticação:
"auth": {
"jwt": {
"enabled": true,
"secret": "ThisSecretMustContains32Chars!!!",
"expires": {
"access": 1440,
"refresh": 1440
}
}
}
Recomenda-se gerar o segredo com uma ferramenta de geração de código aleatório.
5. Altcha (alternativa ao reCAPTCHA)
O CLUAR suporta o Altcha — uma alternativa ao Google reCAPTCHA baseada em prova de trabalho (proof-of-work), sem depender de serviços externos nem recolher dados do visitante. É usado no login e no registo de utilizadores.
Existem dois interruptores, em locais diferentes do .json:
"auth": {
"altcha": {
"enabled": false,
"admin": {
"enabled": false
}
}
}
auth.altcha.enabled— ativa a verificação do Altcha no lado do servidor (Netuno). Sem isto atrue, o Altcha não é validado, mesmo que apareça no website.auth.altcha.admin.enabled— ativa o Altcha também no login do backoffice do Netuno (porta9000), separado do login do website.
"settings": {
"cluar": {
"website": {
"auth": {
"altcha": {
"enabled": false,
"admin": {
"enabled": false
}
}
}
}
}
}
settings.cluar.website.auth.altcha— espelha a mesma opção do lado do website: controla se o widget do Altcha é mostrado no formulário de login/registo do site.
Para o Altcha funcionar, ativa
enabled: truenos dois lados — o servidor precisa de validar, e o website precisa de mostrar o widget.
6. Definições do CLUAR
Em settings.cluar, ajusta a configuração do website:
"settings": {
"cluar": {
"website": {
"url": "http://localhost:3000",
"name": "Website Name",
"analytics": null,
"mapbox": {
"dark": false,
"accessToken": null
},
"services": {
"api": "http://localhost:9000/services/"
},
"auth": {"providers": {
"discord": false,
"facebook": false,
"github": false,
"google": false
}}
},
"uglifyjs": false
}
}
website.url— URL onde o website vai correr.website.name— nome do website.website.services.api— URL da API de serviços do Netuno, consumida pelo website.website.auth.providers— ativa/desativa métodos de login social (Discord, Facebook, GitHub, Google).uglifyjs— controla se o código do website é minificado.
7. Arranque automático do website (opcional)
O website pode arrancar automaticamente junto com o servidor Netuno, através da lista commands:
"commands": [
{
"path": "website",
"command": "bun run dev",
"install": "bun install",
"enabled": true
}
]
Basta colocar enabled como true na entrada com "path": "website". Assim, ao correr ./netuno server app=cluar, o website arranca junto sem precisares de o iniciar manualmente noutro terminal.
Próximo passo
Com a app configurada, segue para Execução.