- Criado DockerSecretsConfigurationProvider para ler secrets de /run/secrets/ - Removidas credenciais sensíveis do appsettings.Production.json - Adicionado indicador visual no rodapé (✓/✗) para verificar se secrets foram carregados - Atualizado deploy.yml para usar Docker Secrets no Swarm - Criado script create-docker-secrets.sh para gerenciar secrets - Criado template secrets.env.template para facilitar configuração - Documentação completa em DOCKER_SECRETS_SETUP.md Secrets gerenciados: - stripe_secret_key - stripe_webhook_secret - mongodb_connection_string - google_client_id / google_client_secret - microsoft_client_id / microsoft_client_secret IMPORTANTE: Após este deploy, é necessário criar os secrets no Swarm e recriar o service. Consulte DOCKER_SECRETS_SETUP.md. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
94 lines
2.3 KiB
JSON
94 lines
2.3 KiB
JSON
{
|
|
"ApplicationName": "QRRapido-Prod",
|
|
"App": {
|
|
"Environment": "Production",
|
|
"SecretsLoaded": false
|
|
},
|
|
"Support": {
|
|
"TelegramUrl": "https://t.me/jobmakerbr",
|
|
"FormspreeUrl": "https://formspree.io/f/xpwynqpj"
|
|
},
|
|
"ConnectionStrings": {
|
|
"MongoDB": "LOADED_FROM_DOCKER_SECRET"
|
|
},
|
|
"Serilog": {
|
|
"SeqUrl": "http://172.17.0.1:5341",
|
|
"ApiKey": "",
|
|
"MinimumLevel": {
|
|
"Default": "Information",
|
|
"Override": {
|
|
"Microsoft": "Warning",
|
|
"Microsoft.AspNetCore": "Warning",
|
|
"Microsoft.Hosting.Lifetime": "Information",
|
|
"System": "Warning",
|
|
"QRRapidoApp": "Information"
|
|
}
|
|
}
|
|
},
|
|
"Authentication": {
|
|
"Google": {
|
|
"ClientId": "LOADED_FROM_DOCKER_SECRET",
|
|
"ClientSecret": "LOADED_FROM_DOCKER_SECRET"
|
|
},
|
|
"Microsoft": {
|
|
"ClientId": "LOADED_FROM_DOCKER_SECRET",
|
|
"ClientSecret": "LOADED_FROM_DOCKER_SECRET"
|
|
}
|
|
},
|
|
"Stripe": {
|
|
"PublishableKey": "pk_live_51Rs42SB6bFjHQirAXIhK2fetsfH7MDYWeTT5jiRGYpIS7g5fCCT0XzLK1tIOdxUYXG4gwN4OEAzuVFw9GTmvq7iM00iJmUSZWB",
|
|
"SecretKey": "LOADED_FROM_DOCKER_SECRET",
|
|
"WebhookSecret": "LOADED_FROM_DOCKER_SECRET"
|
|
},
|
|
"ResourceMonitoring": {
|
|
"Enabled": true,
|
|
"IntervalSeconds": 30,
|
|
"CpuThresholdPercent": 75,
|
|
"MemoryThresholdMB": 512,
|
|
"ConsecutiveAlertsBeforeError": 3,
|
|
"GcCollectionThreshold": 8
|
|
},
|
|
"MongoDbMonitoring": {
|
|
"Enabled": true,
|
|
"IntervalMinutes": 5,
|
|
"DatabaseSizeWarningMB": 1024,
|
|
"DatabaseSizeErrorMB": 5120,
|
|
"GrowthRateWarningMBPerHour": 100,
|
|
"IncludeCollectionStats": true,
|
|
"CollectionsToMonitor": [
|
|
"Users",
|
|
"QRCodeHistory",
|
|
"AdFreeSessions"
|
|
]
|
|
},
|
|
"HealthChecks": {
|
|
"MongoDB": {
|
|
"TimeoutSeconds": 5,
|
|
"IncludeDatabaseSize": true,
|
|
"TestQuery": true
|
|
},
|
|
"Seq": {
|
|
"TimeoutSeconds": 3,
|
|
"TestLogMessage": "QRRapido-Prod health check test"
|
|
},
|
|
"Resources": {
|
|
"CpuThresholdPercent": 80,
|
|
"MemoryThresholdMB": 600,
|
|
"GcPressureThreshold": 12
|
|
},
|
|
"ExternalServices": {
|
|
"TimeoutSeconds": 8,
|
|
"TestStripeConnection": true,
|
|
"TestGoogleAuth": true,
|
|
"TestMicrosoftAuth": true
|
|
}
|
|
},
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning",
|
|
"QRRapidoApp": "Information"
|
|
}
|
|
}
|
|
}
|