Configuration Reference
pyserve uses YAML configuration files. By default, it looks for
config.yaml in the current directory.
http
HTTP-related paths configuration.
- static_dir
- Path to static files directory. Default:
./static - templates_dir
- Path to templates directory. Default:
./templates
server
Core server settings.
- host
- Bind address. Default:
0.0.0.0 - port
- Listen port. Default:
8080 - backlog
- Connection queue size. Default:
5 - default_root
- Enable default root handler. Default:
false - proxy_timeout
- Default timeout for proxy requests in seconds. Default:
30.0 - redirect_instructions
- Dictionary of redirect rules. Format:
"/from": "/to"
ssl
SSL/TLS configuration for HTTPS.
- enabled
- Enable HTTPS. Default:
false - cert_file
- Path to SSL certificate file. Default:
./ssl/cert.pem - key_file
- Path to SSL private key file. Default:
./ssl/key.pem
logging
Logging configuration with structlog support.
- level
- Log level:
DEBUG,INFO,WARNING,ERROR. Default:INFO - console_output
- Output to console. Default:
true - format
- Format configuration object (see below)
- console
- Console handler configuration
- files
- List of file handlers for logging to files
logging.format
- type
- Format type:
standardorjson. Default:standard - use_colors
- Enable colored output in console. Default:
true - show_module
- Show module name in logs. Default:
true - timestamp_format
- Timestamp format string. Default:
%Y-%m-%d %H:%M:%S
logging.files[]
- path
- Path to log file
- level
- Log level for this file handler
- format
- Format configuration for this file
- loggers
- List of logger names to include (empty = all loggers)
- max_bytes
- Maximum file size before rotation. Default:
10485760(10MB) - backup_count
- Number of backup files to keep. Default:
5
extensions
List of extension modules to load. See Extensions Reference.
Complete Example
http: static_dir: ./static templates_dir: ./templates server: host: 0.0.0.0 port: 8080 backlog: 5 default_root: false proxy_timeout: 30.0 ssl: enabled: false cert_file: ./ssl/cert.pem key_file: ./ssl/key.pem logging: level: INFO console_output: true format: type: standard use_colors: true timestamp_format: "%Y-%m-%d %H:%M:%S" files: - path: ./logs/pyserve.log level: DEBUG max_bytes: 10485760 backup_count: 5 extensions: - type: routing config: regex_locations: "__default__": root: "./static" index_file: "index.html"
Warning: When running in production, always use SSL
and restrict the bind address appropriately.