first commit
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
# TankStopp Production Configuration
|
||||
# This file contains production-specific settings with security and performance optimizations
|
||||
|
||||
# Server Configuration
|
||||
server:
|
||||
host: "0.0.0.0"
|
||||
port: 8080
|
||||
read_timeout: 10s
|
||||
write_timeout: 10s
|
||||
idle_timeout: 60s
|
||||
shutdown_timeout: 30s
|
||||
|
||||
# Database Configuration
|
||||
database:
|
||||
# Production database file
|
||||
path: "/var/lib/tankstopp/fuel_stops.db"
|
||||
|
||||
# Connection Pool Settings (optimized for production load)
|
||||
connection_pool:
|
||||
max_idle_connections: 25
|
||||
max_open_connections: 200
|
||||
connection_max_lifetime: "2h"
|
||||
connection_max_idle_time: "1h"
|
||||
|
||||
# Logging Settings (minimal for production)
|
||||
logging:
|
||||
# Only log errors and warnings in production
|
||||
level: "error"
|
||||
# Higher threshold for production
|
||||
slow_query_threshold: "500ms"
|
||||
# Disable debug mode
|
||||
debug: false
|
||||
|
||||
# Migration Settings
|
||||
migration:
|
||||
# Disable auto-migration in production for safety
|
||||
auto_migrate: false
|
||||
# Never drop tables in production
|
||||
drop_tables_first: false
|
||||
# Larger batch size for production efficiency
|
||||
create_batch_size: 5000
|
||||
|
||||
# Performance Settings (optimized for production)
|
||||
performance:
|
||||
# Enable prepared statements for performance
|
||||
prepare_statements: true
|
||||
# Don't disable foreign key checks in production
|
||||
disable_foreign_key_check: false
|
||||
# Don't ignore relationships in production
|
||||
ignore_relationships_when_migrating: false
|
||||
# Enable field querying for efficiency
|
||||
query_fields: true
|
||||
# Never enable dry run in production
|
||||
dry_run: false
|
||||
# Larger batch size for production
|
||||
create_in_batches: 500
|
||||
|
||||
# Application Settings
|
||||
app:
|
||||
name: "TankStopp"
|
||||
version: "1.0.0"
|
||||
environment: "production"
|
||||
# Disable debug mode in production
|
||||
debug: false
|
||||
|
||||
# Security Settings (strict for production)
|
||||
security:
|
||||
session:
|
||||
# Longer timeout for production users
|
||||
timeout: "24h"
|
||||
cookie_name: "tankstopp_session"
|
||||
# Require HTTPS in production
|
||||
secure_cookies: true
|
||||
# Keep HTTP only for security
|
||||
http_only: true
|
||||
|
||||
# Strong password requirements for production
|
||||
password:
|
||||
min_length: 12
|
||||
require_uppercase: true
|
||||
require_lowercase: true
|
||||
require_numbers: true
|
||||
require_special_chars: true
|
||||
|
||||
# Logging Configuration (structured for production)
|
||||
logging:
|
||||
# Info level for production monitoring
|
||||
level: "info"
|
||||
# JSON format for log aggregation
|
||||
format: "json"
|
||||
# Output to file for persistence
|
||||
output: "file"
|
||||
# Production log file path
|
||||
file_path: "/var/log/tankstopp/application.log"
|
||||
# Enable log rotation for production
|
||||
rotation:
|
||||
enabled: true
|
||||
max_size: "500MB"
|
||||
max_age: "90d"
|
||||
max_backups: 10
|
||||
|
||||
# External Services (production-optimized timeouts)
|
||||
external_services:
|
||||
overpass_api:
|
||||
url: "https://overpass-api.de/api/interpreter"
|
||||
# Conservative timeout for production
|
||||
timeout: "30s"
|
||||
max_retries: 3
|
||||
# Standard search radius
|
||||
search_radius: 5000
|
||||
|
||||
# Production-specific settings
|
||||
production:
|
||||
# Disable hot reload in production
|
||||
hot_reload: false
|
||||
# Disable request logging for performance
|
||||
request_logging: false
|
||||
# Disable profiling endpoints for security
|
||||
profiling: false
|
||||
# Static file serving with long cache
|
||||
static_files:
|
||||
directory: "/var/www/tankstopp/static"
|
||||
cache_duration: "24h"
|
||||
# Enable compression for better performance
|
||||
compression:
|
||||
enabled: true
|
||||
level: 6
|
||||
|
||||
# Feature Flags (selectively enabled for production)
|
||||
features:
|
||||
fuel_station_search: true
|
||||
vehicle_management: true
|
||||
statistics_dashboard: true
|
||||
data_export: true
|
||||
api_endpoints: true
|
||||
|
||||
# Default User Settings
|
||||
defaults:
|
||||
currency: "EUR"
|
||||
fuel_type: "Super E5"
|
||||
distance_unit: "km"
|
||||
volume_unit: "liters"
|
||||
|
||||
# Production-specific overrides
|
||||
prod_overrides:
|
||||
# Disable CORS in production (handle via reverse proxy)
|
||||
enable_cors: false
|
||||
# Require secure connections
|
||||
require_https: true
|
||||
# Disable detailed error messages for security
|
||||
detailed_errors: false
|
||||
# Disable request/response logging for performance
|
||||
log_requests: false
|
||||
# Disable SQL query logging for performance
|
||||
log_sql_queries: false
|
||||
# Enable rate limiting
|
||||
rate_limiting:
|
||||
enabled: true
|
||||
requests_per_minute: 60
|
||||
burst_size: 10
|
||||
# Enable security headers
|
||||
security_headers:
|
||||
enabled: true
|
||||
hsts_max_age: "31536000"
|
||||
content_type_nosniff: true
|
||||
frame_deny: true
|
||||
xss_protection: true
|
||||
# Health check settings
|
||||
health_check:
|
||||
enabled: true
|
||||
endpoint: "/health"
|
||||
timeout: "5s"
|
||||
# Monitoring settings
|
||||
monitoring:
|
||||
enabled: true
|
||||
metrics_endpoint: "/metrics"
|
||||
enable_pprof: false
|
||||
Reference in New Issue
Block a user