Saltar para o conteúdo principal

Referência de configuração

Todas as definições vivem em deploy/.env, copiado de .env.example. Só POSTGRES_PASSWORD e CAMPBOOKS_PUBLIC_URL são obrigatórias. Tudo o resto é opcional, e aplicam-se os valores por omissão abaixo quando uma definição não está definida. Depois de alterar o .env, execute docker compose up -d outra vez.

Base​

VariávelValor por omissãoO que faz
POSTGRES_PASSWORDchange-me (exemplo)Palavra-passe da conta proprietária do Postgres incluído. Obrigatória. Apenas caracteres seguros para URL.
CAMPBOOKS_PUBLIC_URLhttps://campbooks.example.com (exemplo)O endereço que as pessoas usam para aceder a esta instância. Obrigatório. As ligações de convite são construídas a partir dele.
CAMPBOOKS_PORT8080Porta do anfitrião para a aplicação web e a API.
CAMPBOOKS_LOG_FORMATjsonjson ou pretty.
CAMPBOOKS_RUN_MIGRATIONStrueAplica as migrações da base de dados ao arrancar.
RUST_LOGnão definidoFiltro do nível de registo, por exemplo info.
CAMPBOOKS_ENVnão definidodevelopment regista as ligações de convite. Nunca o defina num servidor usado por outras pessoas.

Contas da base de dados​

O ficheiro compose incluído trata disto por si. Só interessam se usar o seu próprio Postgres. Veja Armazenamento e base de dados.

VariávelValor por omissãoO que faz
CAMPBOOKS_DATABASE_URLdefinido pelo composeConta de execução, sem privilégios de superutilizador.
CAMPBOOKS_DATABASE_PASSWORD_FILEdefinido pelo composeFicheiro com a palavra-passe da conta de execução (opcional).
CAMPBOOKS_DATABASE_MIGRATION_URLdefinido pelo composeConta proprietária, usada apenas para executar migrações.
CAMPBOOKS_DATABASE_ROLEcampbooks_appCom um único URL privilegiado, o papel para o qual cada ligação muda. Mantenha o valor por omissão, a menos que o seu administrador de base de dados tenha criado outro.
CAMPBOOKS_DATABASE_ALLOW_RLS_BYPASSfalseArranca mesmo que a conta contorne a segurança ao nível da linha. O isolamento dos espaços de trabalho passa a depender só das consultas.
CAMPBOOKS_DATABASE_MAX_CONNECTIONS10Tamanho do pool da base de dados. Mantenha-o acima de CAMPBOOKS_JOBS__CONCURRENCY.

Início de sessão​

O Campbooks é o seu próprio início de sessão. Deixe CAMPBOOKS_AUTH__ISSUER por definir. Veja Início de sessão para o quadro completo. Cada segredo de cliente é um ficheiro em deploy/secrets/, montado no servidor em /run/secrets/campbooks.

VariávelValor por omissãoO que faz
CAMPBOOKS_GOOGLE__CLIENT_IDnão definidoAtiva o início de sessão com Google e a ligação do Gmail. A Gmail API tem de estar ativa no mesmo projeto Google. URI de redirecionamento: ${CAMPBOOKS_PUBLIC_URL}/auth/callback/google.
CAMPBOOKS_GOOGLE__CLIENT_SECRET_FILEnão definidoPor exemplo /run/secrets/campbooks/google-client-secret.
CAMPBOOKS_MICROSOFT__CLIENT_IDnão definidoAtiva o início de sessão com Microsoft. URI de redirecionamento: ${CAMPBOOKS_PUBLIC_URL}/auth/callback/microsoft.
CAMPBOOKS_MICROSOFT__CLIENT_SECRET_FILEnão definidoPor exemplo /run/secrets/campbooks/microsoft-client-secret.
CAMPBOOKS_MICROSOFT__TENANTcommoncommon, organizations, consumers, ou o ID de um tenant.
CAMPBOOKS_ZOHO__CLIENT_IDnão definidoAtiva o início de sessão com Zoho e a ligação do Zoho Mail. URI de redirecionamento: ${CAMPBOOKS_PUBLIC_URL}/auth/callback/zoho.
CAMPBOOKS_ZOHO__CLIENT_SECRET_FILEnão definidoPor exemplo /run/secrets/campbooks/zoho-client-secret.
CAMPBOOKS_ZOHO__ACCOUNTS_SERVERhttps://accounts.zoho.comO servidor de contas do centro de dados em que a sua aplicação Zoho está registada, por exemplo https://accounts.zoho.eu. Deixe o valor por omissão só se a aplicação tiver o Multi-DC ativo.
CAMPBOOKS_<PROVIDER>__REDIRECT_PATH/auth/callback/<provider>Só se a sua aplicação OAuth registou outro caminho de retorno que o seu proxy inverso reescreve.
CAMPBOOKS_TRUSTED_PROXIESnão definidoEndereços ou blocos CIDR dos proxies inversos cujo X-Forwarded-For indica o cliente. Sem isto, os limites de pedidos do início de sessão contam todos os clientes como um só.
CAMPBOOKS_AUTH__AUDIENCEcampbooks-apiSó com um emissor externo: a audiência que a API tem de encontrar no aud do token.
CAMPBOOKS_AUTH__LEEWAY_SECONDS60Só com um emissor externo: desvio de relógio tolerado.
CAMPBOOKS_BFF__IDLE_TIMEOUT_MINUTES2880As sessões web terminam após este tempo sem uso.
CAMPBOOKS_BFF__ABSOLUTE_TIMEOUT_HOURS720As sessões web terminam, no máximo, este tempo após o início de sessão.
CAMPBOOKS_BFF__ROTATE_MINUTES60Com que frequência o valor do cookie de uma sessão é substituído.
CAMPBOOKS_BFF__LOGIN_TIMEOUT_SECONDS600Quanto tempo pode demorar um início de sessão no fornecedor.
CAMPBOOKS_BFF__SCOPESopenid profile email offline_access mais todos os âmbitos da APIÂmbitos a pedir.

Caixas de correio​

Todas opcionais. Veja Ligar caixas de correio. As definições dos clientes Google e Zoho estão na tabela de Início de sessão acima. As definições do IMAP (CAMPBOOKS_CONNECTORS__IMAP__*) estão listadas em Caixas de correio IMAP.

VariávelValor por omissãoO que faz
CAMPBOOKS_CONNECTORS__GMAIL__BACKFILL_DAYS90Até onde lê uma ligação Gmail nova, em dias. De 1 a 3650.
CAMPBOOKS_CONNECTORS__GMAIL__MAX_MESSAGE_BYTES52428800 (50 MiB)As mensagens maiores são ignoradas e registadas como demasiado grandes.
CAMPBOOKS_CONNECTORS__GMAIL__RUN_BUDGET_BYTES67108864 (64 MiB)Uma execução de sincronização não inicia mais transferências depois deste número de bytes e continua na execução seguinte. Mantém a memória limitada.
CAMPBOOKS_CONNECTORS__POLL__MIN_SECONDS60Intervalo após uma sincronização que encontrou alterações.
CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDS14400 (4 horas)Intervalo mais longo de uma caixa de correio parada.
CAMPBOOKS_CONNECTORS__GOOGLE__UNITS_PER_SECOND5000Unidades de quota da API Google por segundo, partilhadas por todos os processos do servidor. Um valor baixo só abranda envios grandes.
CAMPBOOKS_CONNECTORS__ZOHO__BACKFILL_DAYS90Até onde lê uma caixa Zoho nova, em dias. De 1 a 3650.
CAMPBOOKS_CONNECTORS__ZOHO__MAX_MESSAGE_BYTES52428800 (50 MiB)As mensagens maiores são ignoradas e registadas como demasiado grandes.
CAMPBOOKS_CONNECTORS__ZOHO__RUN_BUDGET_BYTES67108864 (64 MiB)Como no Gmail.
CAMPBOOKS_CONNECTORS__ZOHO__REQUESTS_PER_MINUTE60Pedidos que cada início de sessão do Zoho pode fazer por minuto, partilhados por todos os processos.
CAMPBOOKS_CONNECTORS__ZOHO__SWEEP_MINUTES360Minutos entre releituras completas da janela de uma caixa Zoho.
CAMPBOOKS_CONNECTORS__FAILING_AFTER5Execuções falhadas seguidas antes de uma caixa de correio aparecer com falhas.
CAMPBOOKS_CONNECTORS__BATCH_RETENTION_DAYS7Dias em que um lote de alterações produzido é guardado para repetição.

Política de registo​

VariávelValor por omissãoO que faz
CAMPBOOKS_SIGNUP__POLICYopenQuem pode criar um espaço de trabalho: open, invite_only, approval ou code. O primeiro utilizador da instância pode sempre criar um.
CAMPBOOKS_SIGNUP__CODESnão definidoCódigos separados por vírgulas aceites em code. Cada um é reutilizável. Trate-os como segredo.

Tarefas e worker​

O servidor executa o worker de tarefas junto à API. Cada tarefa em execução pode ocupar uma ligação à base de dados.

VariávelValor por omissãoO que faz
CAMPBOOKS_JOBS__CONCURRENCY4Tarefas que um processo executa em simultâneo.
CAMPBOOKS_JOBS__PER_WORKSPACE2Tarefas de um espaço de trabalho que podem correr em simultâneo por fila.
CAMPBOOKS_JOBS__POLL_INTERVAL_MS5000Verificação em repouso. Tarefas novas acordam o worker de imediato de qualquer forma.
CAMPBOOKS_JOBS__RETENTION_HOURS168Quanto tempo se guardam as tarefas concluídas. As falhadas ficam até as eliminar.
CAMPBOOKS_JOBS__SHUTDOWN_GRACE_SECONDS8Quanto tempo um worker a parar espera pelas tarefas em execução. Mantenha abaixo do tempo limite de paragem.
CAMPBOOKS_JOBS__LEASE_SECONDS60Tempo de concessão de uma tarefa.
CAMPBOOKS_JOBS__RETRY_BASE_MS1000Atraso base de nova tentativa.
CAMPBOOKS_JOBS__RETRY_MAX_SECONDS3600Atraso máximo de nova tentativa.

Armazenamento de blobs​

Veja Armazenamento e base de dados.

VariávelValor por omissãoO que faz
CAMPBOOKS_BLOBS__BACKENDfsfs (disco local) ou s3.
CAMPBOOKS_BLOBS__PATH/data/blobsDiretório do backend fs (o volume blobs-data).
CAMPBOOKS_BLOBS__MAX_OBJECT_BYTES52428800 (50 MiB)Maior ficheiro aceite.
CAMPBOOKS_BLOBS__SWEEP_GRACE_HOURS24Quanto tempo um ficheiro que ninguém usa é mantido antes de ser eliminado.
CAMPBOOKS_BLOBS__S3__BUCKETnão definidoNome do bucket.
CAMPBOOKS_BLOBS__S3__ENDPOINTnão definido (AWS)URL do armazenamento. http:// é aceite numa rede privada.
CAMPBOOKS_BLOBS__S3__REGIONnão definidoRegião que o seu armazenamento espera.
CAMPBOOKS_BLOBS__S3__ACCESS_KEY_IDnão definidoChave de acesso.
CAMPBOOKS_BLOBS__S3__SECRET_ACCESS_KEYnão definidoChave secreta.
CAMPBOOKS_BLOBS__S3__PATH_STYLEfalsetrue para URLs <endpoint>/<bucket> (a maioria dos armazenamentos próprios).

Papéis de IA​

Veja IA local. Um papel não definido fica simplesmente indisponível.

VariávelValor por omissãoO que faz
CAMPBOOKS_AI__DECIDE__PROTOCOLlayalaya ou openai.
CAMPBOOKS_AI__DECIDE__BASE_URLhttp://laya:8000/v1Onde o modelo decide é servido.
CAMPBOOKS_AI__DECIDE__MODELconvaiinnovations/laya-multilingualO modelo decide.
CAMPBOOKS_AI__DECIDE__API_KEYvazioObrigatória para o Laya. Gere com openssl rand -hex 32.
CAMPBOOKS_AI__DECIDE__LOGPROBStrueDefina como false para servidores que rejeitam o parâmetro logprobs (protocolo openai).
CAMPBOOKS_AI__DECIDE__CALIBRATION__*1.0Uma temperatura por tipo de pergunta (NOUL, CHOICE, CHOICE_2, SCORE). Acima de 1 torna as probabilidades menos seguras.
CAMPBOOKS_CONVERSATIONS__DECIDE_BACKFILL_DAYS14O correio com mais de tantos dias não recebe chamada a decide.
CAMPBOOKS_AI__COMPLETE__BASE_URLhttp://ollama:11434/v1Onde o modelo complete é servido.
CAMPBOOKS_AI__COMPLETE__MODELqwen3:8bO modelo complete.
CAMPBOOKS_AI__EMBED__BASE_URLhttp://embeddings:80/v1Onde o modelo embed é servido.
CAMPBOOKS_AI__EMBED__MODELBAAI/bge-m3O modelo embed (1024 dimensões).
CAMPBOOKS_AI__VISION__BASE_URLnão definidoPapel vision opcional, por exemplo http://ollama:11434/v1.
CAMPBOOKS_AI__VISION__MODELnão definidoOpcional, por exemplo qwen2.5vl:7b.

Qualquer papel aceita também CAMPBOOKS_AI__<ROLE>__API_KEY para um fornecedor alojado.

Outras definições no .env.example​

O .env.example documenta ainda estas áreas. Os valores por omissão estão lá indicados.

  • Atualizações em direto (feed de alterações): o bloco CAMPBOOKS_CHANGES__*. Um proxy inverso à frente do servidor não pode colocar em buffer as respostas text/event-stream.
  • Monitorização: CAMPBOOKS_TELEMETRY__METRICS_ADDR, CAMPBOOKS_TELEMETRY__OTLP_ENDPOINT, CAMPBOOKS_TELEMETRY__OTLP_HEADERS e CAMPBOOKS_TELEMETRY__SAMPLE_RATIO. Desativada por omissão.