server: host: "0.0.0.0" port: 8080 timeout: 30s read_timeout: 10s write_timeout: 10s database: mongodb: uri: "mongodb://localhost:27017" name: "tender_management" timeout: 10s max_pool_size: 100 cache: redis: host: "localhost" port: 6379 password: "" db: 0 pool_size: 10 queue: rabbitmq: url: "amqp://guest:guest@localhost:5672/" exchange: "tender_exchange" queues: scraping: "scraping_queue" processing: "processing_queue" notifications: "notifications_queue" search: elasticsearch: urls: ["http://localhost:9200"] username: "" password: "" index_prefix: "tender_" auth: jwt: secret: "your-super-secret-key-change-in-production" access_token_duration: "24h" refresh_token_duration: "168h" # 7 days ai: openai: api_key: "your-openai-api-key" model: "gpt-3.5-turbo" max_tokens: 1000 scraping: user_agent: "TenderBot/1.0" timeout: 30s max_retries: 3 delay_between_requests: 1s logging: level: "info" # debug, info, warn, error, fatal format: "json" # json, console, text output: "file" # stdout, stderr, file file: path: "./logs/app.log" # Path to log file max_size: 100 # Max size in MB before rotation max_backups: 5 # Number of backup files to keep max_age: 30 # Max age in days to keep log files compress: true # Compress rotated files rate_limiting: requests_per_minute: 100 burst: 20