Repository navigation
Configuration
A aplicação lê configurações do ambiente. O arquivo .env.example é uma referência de nomes; não contém credenciais válidas. O processo não depende de instalar bibliotecas Python externas para a API básica.
| Variável | Finalidade | Observações |
|---|---|---|
PRODUCT_MANAGER_DB |
Caminho do banco SQLite | Padrão de desenvolvimento: db/product_manager.db; container: /data/product_manager.db
|
PRODUCT_MANAGER_HOST |
Interface de escuta | Desktop: 127.0.0.1; container define `0.0.0.0) dentro do container |
PRODUCT_MANAGER_PORT |
Porta HTTP | Padrão: 8000; launcher desktop aceita 0 para porta livre |
PRODUCT_MANAGER_SETUP_TOKEN |
Token temporário para criar primeiro administrador | Gere aleatoriamente; use apenas durante bootstrap |
PRODUCT_MANAGER_COOKIE_SECURE |
Configura atributo Secure do cookie | Defina 1 atrás de HTTPS |
PRODUCT_MANAGER_LOW_STOCK_DEFAULT |
Limite padrão para alerta de estoque baixo | O exemplo de configuração usa 5
|
PRODUCT_MANAGER_DEMO_DATA |
Insere registros demonstrativos para avaliação local | Desativado por padrão; use 1 somente para teste |
PRODUCT_MANAGER_TELEMETRY_URL |
Endpoint opcional de diagnóstico técnico | Deve ser HTTPS e controlado pela organização |
PRODUCT_MANAGER_GOOGLE_SHEETS_SPREADSHEET_ID |
ID da planilha de destino | Opcional |
PRODUCT_MANAGER_GOOGLE_SHEETS_ACCESS_TOKEN |
Token OAuth de curta duração | Opcional; não versionar nem registrar em logs |
PRODUCT_MANAGER_GOOGLE_SHEETS_RANGE |
Intervalo de destino | Exemplo: Export!A1
|
Exemplo para iniciar uma instância com banco alternativo:
export PRODUCT_MANAGER_DB="$HOME/product-manager.db"
export PRODUCT_MANAGER_HOST=127.0.0.1
export PRODUCT_MANAGER_PORT=8000
python3 api/app.pyNão exponha o servidor desktop à rede local sem arquitetura de implantação e controles de segurança apropriados.
Gere o segredo apenas no ambiente do processo:
export PRODUCT_MANAGER_SETUP_TOKEN="$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')"
python3 api/app.pyApós criar o primeiro administrador, o fluxo de bootstrap é bloqueado pelo estado do banco. Não reutilize o token, não o coloque no repositório e não o compartilhe em canais públicos.
O desktop local pode operar em HTTP no loopback. Para implantação HTTPS, configure PRODUCT_MANAGER_COOKIE_SECURE=1. O servidor Python não termina TLS; use um proxy/servidor HTTPS e mantenha a UI e a API na mesma origem.
O Compose do repositório é voltado a teste local e define PRODUCT_MANAGER_COOKIE_SECURE=0; ajuste a arquitetura e a configuração antes de uso público.
Configure ID, token de acesso e intervalo no ambiente do servidor. Ative a API Google Sheets, conceda à identidade configurada acesso apenas à planilha necessária e mantenha o token em um gerenciador de segredos. O app usa a operação de atualização de valores e não executa renovação OAuth automática. O envio exporta agregados do dashboard e campos de produto; não exporta os cadastros pessoais dos clientes.
A telemetria é desativada por padrão. Só há envio quando o usuário consente e o administrador configura um endpoint HTTPS. Não configure endpoint de terceiros sem revisar destino, dados e política de retenção.