Configuração do Servidor¶
Usando a imagem padrão do Docker, toda a configuração necessária pode ser feita a partir do navegador. No entanto, dependendo da implantação, pode ser necessário personalizar a configuração do servidor.
Esta página lista todos os métodos para alterar a configuração e todas as opções de configuração existentes.
Arquivo de configuração vs. variáveis de ambiente¶
Para as configurações, você pode usar um arquivo de configuração ou variáveis de ambiente.
Quando você usa a configuração baseada em Docker Compose, pode incluir um arquivo de configuração adicionando o seguinte item à lista sob a chave volumes: no bloco grampsweb::
- /caminho/para/config.cfg:/app/config/config.cfg
/caminho/para/config.cfg é o caminho para o arquivo de configuração no sistema de arquivos do seu servidor (o lado direito se refere ao caminho no contêiner e não deve ser alterado).
Ao usar variáveis de ambiente,
- prefixe cada nome de configuração com
GRAMPSWEB_para obter o nome da variável de ambiente - Use sublinhados duplos para configurações de dicionário aninhadas, por exemplo,
GRAMPSWEB_THUMBNAIL_CACHE_CONFIG__CACHE_DEFAULT_TIMEOUTdefinirá o valor da opção de configuraçãoTHUMBNAIL_CACHE_CONFIG['CACHE_DEFAULT_TIMEOUT']
Observe que as opções de configuração definidas via ambiente têm precedência sobre as que estão no arquivo de configuração. Se ambas estiverem presentes, a variável de ambiente "vence".
Configurações de configuração existentes¶
As seguintes opções de configuração existem.
Configurações obrigatórias¶
| Chave | Descrição |
|---|---|
TREE |
O nome do banco de dados da árvore genealógica a ser usado. Mostre as árvores disponíveis com gramps -l. Se uma árvore com esse nome não existir, uma nova vazia será criada. |
SECRET_KEY |
A chave secreta para o Flask. A chave secreta não deve ser compartilhada publicamente. Alterá-la invalidará todos os tokens de acesso. |
USER_DB_URI |
A URL do banco de dados do usuário. Qualquer URL compatível com SQLAlchemy é permitida. |
Info
Você pode gerar uma chave secreta segura, por exemplo, com o comando
python3 -c "import secrets;print(secrets.token_urlsafe(32))"
Configurações opcionais¶
| Chave | Descrição |
|---|---|
MEDIA_BASE_DIR |
Caminho a ser usado como diretório base para arquivos de mídia, substituindo o diretório base de mídia definido no Gramps. Ao usar S3, deve ter a forma s3://<bucket_name> |
TREE_ID |
O nome do diretório do banco de dados da árvore genealógica a ser usado no modo de árvore única (quando TREE não está definido como MULTI). Quando definido, o servidor identifica a árvore pelo nome do diretório em vez do nome de exibição, o que é mais robusto em relação a renomeações. Necessário se você quiser renomear a árvore via API. O nome do diretório pode ser encontrado através de GET /api/trees/- (o campo id). |
SEARCH_INDEX_DB_URI |
URL do banco de dados para o índice de busca. Apenas sqlite ou postgresql são permitidos como backends. O padrão é sqlite:///indexdir/search_index.db, criando um arquivo SQLite na pasta indexdir relativa ao caminho onde o script é executado. |
STATIC_PATH |
Caminho para servir arquivos estáticos (por exemplo, um frontend web estático). |
BASE_URL |
URL base onde a API pode ser acessada (por exemplo, https://meugramps.meudominio.com/). Isso é necessário, por exemplo, para construir links corretos de redefinição de senha. |
CORS_ORIGINS |
Origens de onde solicitações CORS são permitidas. Por padrão, todas são negadas. Use "*" para permitir solicitações de qualquer domínio. |
EMAIL_HOST |
Host do servidor SMTP (por exemplo, para enviar e-mails de redefinição de senha). |
EMAIL_PORT |
Porta do servidor SMTP. padrão é 465. |
EMAIL_HOST_USER |
Nome de usuário do servidor SMTP. |
EMAIL_HOST_PASSWORD |
Senha do servidor SMTP. |
EMAIL_USE_TLS |
Depreciado (use EMAIL_USE_SSL ou EMAIL_USE_STARTTLS em vez disso). Booleano, se deve usar TLS para enviar e-mails. O padrão é True. Ao usar STARTTLS, defina isso como False e use uma porta diferente de 25. |
EMAIL_USE_SSL |
Booleano, se deve usar SSL/TLS implícito para SMTP (v3.6.0+). O padrão é True se EMAIL_USE_TLS não estiver explicitamente definido. Geralmente usado com a porta 465. |
EMAIL_USE_STARTTLS |
Booleano, se deve usar STARTTLS explícito para SMTP (v3.6.0+). O padrão é False. Geralmente usado com a porta 587 ou 25. |
DEFAULT_FROM_EMAIL |
Endereço "De" para e-mails automatizados. |
THUMBNAIL_CACHE_CONFIG |
Dicionário com configurações para o cache de miniaturas. Consulte Flask-Caching para possíveis configurações. |
REQUEST_CACHE_CONFIG |
Dicionário com configurações para o cache de requisições. Consulte Flask-Caching para possíveis configurações. |
PERSISTENT_CACHE_CONFIG |
Dicionário com configurações para o cache persistente, usado, por exemplo, para telemetria. Consulte Flask-Caching para possíveis configurações. |
CELERY_CONFIG |
Configurações para a fila de tarefas em segundo plano do Celery. Consulte Celery para possíveis configurações. |
REPORT_DIR |
Diretório temporário onde a saída da execução de relatórios do Gramps será armazenada. |
EXPORT_DIR |
Diretório temporário onde a saída da exportação do banco de dados do Gramps será armazenada. |
REGISTRATION_DISABLED |
Se True, não permite novo registro de usuários (padrão False). |
DISABLE_TELEMETRY |
Se True, desabilita a telemetria de estatísticas (padrão False). Consulte telemetria para detalhes. |
PILLOW_MAX_IMAGE_PIXELS |
Define o parâmetro PIL.Image.MAX_IMAGE_PIXELS, que indica o número de pixels que a imagem processada pode conter. Consulte docs para detalhes. |
Info
Ao usar variáveis de ambiente para configuração, opções booleanas como EMAIL_USE_TLS devem ser a string true ou false (sensível a maiúsculas!).
Configurações apenas para banco de dados backend PostgreSQL¶
Isso é necessário se você configurou seu banco de dados Gramps para trabalhar com o complemento PostgreSQL.
| Chave | Descrição |
|---|---|
POSTGRES_USER |
O nome de usuário para a conexão com o banco de dados. |
POSTGRES_PASSWORD |
A senha para o usuário do banco de dados. |
Configurações relevantes para hospedagem de várias árvores¶
As seguintes configurações são relevantes ao hospedar várias árvores.
| Chave | Descrição |
|---|---|
MEDIA_PREFIX_TREE |
Booleano, se deve ou não usar uma subpasta separada para os arquivos de mídia de cada árvore. O padrão é False, mas é fortemente recomendado usar True em uma configuração de várias árvores. |
NEW_DB_BACKEND |
O backend do banco de dados a ser usado para novas árvores genealógicas criadas. Deve ser um dos sqlite, postgresql ou sharedpostgresql. O padrão é sqlite. |
POSTGRES_HOST |
O nome do host do servidor PostgreSQL usado para criar novas árvores ao usar uma configuração de várias árvores com o backend SharedPostgreSQL. |
POSTGRES_PORT |
A porta do servidor PostgreSQL usada para criar novas árvores ao usar uma configuração de várias árvores com o backend SharedPostgreSQL. |
Configurações para autenticação OIDC¶
Essas configurações são necessárias se você quiser usar autenticação OpenID Connect (OIDC) com provedores externos. Para instruções detalhadas de configuração e exemplos, consulte Autenticação OIDC.
| Chave | Descrição |
|---|---|
OIDC_ENABLED |
Booleano, se deve habilitar a autenticação OIDC. O padrão é False. |
OIDC_ISSUER |
URL do emissor do provedor OIDC (para provedores OIDC personalizados). |
OIDC_CLIENT_ID |
ID do cliente OAuth (para provedores OIDC personalizados). |
OIDC_CLIENT_SECRET |
Segredo do cliente OAuth (para provedores OIDC personalizados). |
OIDC_NAME |
Nome de exibição personalizado para o provedor. O padrão é "OIDC". |
OIDC_SCOPES |
Escopos OAuth. O padrão é "openid email profile". |
OIDC_USERNAME_CLAIM |
A reivindicação a ser usada para o nome de usuário. O padrão é "preferred_username". |
OIDC_OPENID_CONFIG_URL |
Opcional: URL para o endpoint de configuração OpenID Connect (se não estiver usando o padrão /.well-known/openid-configuration). |
OIDC_DISABLE_LOCAL_AUTH |
Booleano, se deve desabilitar a autenticação local por nome de usuário/senha. O padrão é False. |
OIDC_AUTO_REDIRECT |
Booleano, se deve redirecionar automaticamente para OIDC quando apenas um provedor estiver configurado. O padrão é False. |
Provedores OIDC integrados¶
Para provedores integrados (Google, Microsoft, GitHub), use estas configurações:
| Chave | Descrição |
|---|---|
OIDC_GOOGLE_CLIENT_ID |
ID do cliente para Google OAuth. |
OIDC_GOOGLE_CLIENT_SECRET |
Segredo do cliente para Google OAuth. |
OIDC_MICROSOFT_CLIENT_ID |
ID do cliente para Microsoft OAuth. |
OIDC_MICROSOFT_CLIENT_SECRET |
Segredo do cliente para Microsoft OAuth. |
OIDC_GITHUB_CLIENT_ID |
ID do cliente para GitHub OAuth. |
OIDC_GITHUB_CLIENT_SECRET |
Segredo do cliente para GitHub OAuth. |
Mapeamento de Funções OIDC¶
Essas configurações permitem mapear grupos/funções OIDC do seu provedor de identidade para funções de usuário do Gramps Web:
| Chave | Descrição |
|---|---|
OIDC_ROLE_CLAIM |
O nome da reivindicação no token OIDC que contém os grupos/funções do usuário. O padrão é "groups". |
OIDC_GROUP_ADMIN |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Admin" do Gramps. |
OIDC_GROUP_OWNER |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Owner" do Gramps. |
OIDC_GROUP_EDITOR |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Editor" do Gramps. |
OIDC_GROUP_CONTRIBUTOR |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Contributor" do Gramps. |
OIDC_GROUP_MEMBER |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Member" do Gramps. |
OIDC_GROUP_GUEST |
O nome do grupo/função do seu provedor OIDC que mapeia para a função "Guest" do Gramps. |
Configurações apenas para recursos de IA¶
Essas configurações são necessárias se você quiser usar recursos impulsionados por IA, como chat ou busca semântica.
| Chave | Descrição |
|---|---|
LLM_BASE_URL |
URL base para a API de chat compatível com OpenAI. O padrão é None, que usa a API OpenAI. |
LLM_MODEL |
O modelo a ser usado para a API de chat compatível com OpenAI. Se não definido (o padrão), o chat é desabilitado. A partir da versão v3.6.0, o assistente de IA usa Pydantic AI com capacidades de chamada de ferramentas. |
VECTOR_EMBEDDING_MODEL |
O modelo Sentence Transformers a ser usado para embeddings de vetor de busca semântica. Se não definido (o padrão), a busca semântica e o chat são desabilitados. |
LLM_MAX_CONTEXT_LENGTH |
Limite de caracteres para o contexto da árvore genealógica fornecido ao LLM. O padrão é 50000. |
LLM_SYSTEM_PROMPT |
Prompt de sistema personalizado para o assistente de chat LLM (v3.6.0+). Se não definido, usa o prompt otimizado para genealogia padrão. |
Exemplo de arquivo de configuração¶
Um arquivo de configuração mínimo para produção pode parecer assim: ```python TREE="Minha Árvore Genealógica" BASE_URL="https://minhaarvore.exemplo.com" SECRET_KEY="..." # sua chave secreta USER_DB_URI="sqlite:////caminho/para/usuarios.sqlite" EMAIL_HOST="mail.exemplo.com" EMAIL_PORT=465 EMAIL_USE_SSL=True # Usar SSL implícito para a porta 465 EMAIL_HOST_USER="gramps@exemplo.com" EMAIL_HOST_PASSWORD="..." # sua senha SMTP DEFAULT_FROM_EMAIL="gramps@exemplo.com"