Skip to content

Servidor e chaves ​

O ecrã Conta → Servidor e chaves é onde ligas a app aos serviços e vês se tudo está a funcionar. O que mostra depende de onde a app está a correr:

A app corre em…O ecrã mostra
npx estudar no teu computadorEstado + formulários para as chaves + criação das tabelas + publicação
Cloudflare (publicada)Estado, só leitura — as chaves são segredos do Worker e não podem ser lidas
Só ficheiros estáticosAviso de modo local e como ligar um servidor

O painel de estado ​

Painel de estado com um ponto por serviço
Verde: responde. Vermelho: há um problema, com a razão ao lado. Cinzento: ainda não configurado.
PontoO que verificaComo
AppO servidor responde e onde correGET /api/health
SupabaseO projeto responde e a chave pública é aceiteGET <url>/auth/v1/health
Base de dadosAs tabelas existemGET <url>/rest/v1/user_data?limit=1
IAA chave e o modelo são válidosConsulta os metadados do modelo — não gasta tokens
Limite de usoHá chave secreta para limitar gerações por pessoaConfiguração
CloudflareA app está publicada e o endereço respondeGET <url publicado>/api/health

Na folha Conta aparece um resumo com três pontos (Supabase, IA, Cloudflare).

Folha Conta com o resumo do estado
O resumo na folha Conta.

Mensagens comuns ​

MensagemO que fazer
Chave pública (anon/publishable) inválidaVolta a copiar a chave publishable/anon em Project Settings → API Keys
Tabelas ainda não criadasUsa Configurar (com token) ou copiar o SQL
Modelo X não existeCorrige o campo Modelo ou deixa-o vazio para usar o padrão
Chave inválida ou sem acessoConfirma a chave e se tem acesso à API desse fornecedor
Conta Cloudflare não ligadaLigar conta Cloudflare e autoriza no browser
Wrangler não está instaladoCorre de novo com npx estudar@latest; numa cópia do repositório, npm install

Variáveis ​

Localmente ficam em .dev.vars (em ~/.estudar, ou na pasta do projeto numa cópia do repositório); no Cloudflare, como segredos do Worker. O ecrã escreve e envia estas por ti.

VariávelObrigatóriaPara quê
SUPABASE_URLpara conta e syncURL do projeto (público)
SUPABASE_ANON_KEYpara conta e syncChave publishable/anon (pública; as regras RLS protegem os dados)
SUPABASE_SERVICE_KEYnãoChave secret/service_role; ativa o limite diário da IA. Só no servidor
AI_PROVIDERnãogemini (padrão), anthropic ou openai
AI_API_KEYpara IAChave do fornecedor
AI_MODELsó para openaiSubstitui o modelo padrão
AI_BASE_URLnãoPara APIs compatíveis com OpenAI (ex. https://openrouter.ai/api/v1)
MAX_PLANS_PER_DAYnãoPedidos à IA por pessoa por dia (padrão 10)
AUTH_GOOGLEnãotrue para mostrar o login com Google

Segurança do ecrã de configuração ​

As rotas de configuração (/api/setup/*) só existem no servidor local (npx estudar), nunca no Worker publicado. Além disso:

  • o servidor local escuta só em 127.0.0.1;
  • as rotas só aceitam pedidos com o Host e a Origin de localhost e com um cabeçalho próprio da app — outro site aberto no teu browser não as consegue usar;
  • as chaves secretas nunca voltam inteiras ao browser (aparecem como ••••1234);
  • o token pessoal do Supabase (sbp_…) fica só em memória durante a sessão.

Mais em Privacidade e segurança.

Publicado sob a licença MIT.