151 lines
5.4 KiB
YAML
151 lines
5.4 KiB
YAML
# Loco configuration file documentation
|
|
|
|
# Application logging configuration
|
|
logger:
|
|
# Enable or disable logging.
|
|
enable: true
|
|
# Enable pretty backtrace (sets RUST_BACKTRACE=1)
|
|
pretty_backtrace: true
|
|
# Log level, options: trace, debug, info, warn or error.
|
|
level: debug
|
|
# Define the logging format. options: compact, pretty or json
|
|
format: compact
|
|
# By default the logger has filtering only logs that came from your code or logs that came from `loco` framework. to see all third party libraries
|
|
# Uncomment the line below to override to see all third party libraries you can enable this config and override the logger filters.
|
|
# override_filter: trace
|
|
|
|
# Web server configuration
|
|
server:
|
|
# Port on which the server will listen. the server binding is 0.0.0.0:{PORT}
|
|
port: 5150
|
|
# The UI hostname or IP address that mailers will point to.
|
|
host: http://localhost
|
|
# Out of the box middleware configuration. to disable middleware you can changed the `enable` field to `false` of comment the middleware block
|
|
middlewares:
|
|
# #############################################
|
|
# Full stack SaaS asset serving
|
|
# #############################################
|
|
#
|
|
# You can choose from:
|
|
#
|
|
# (1) Server-side rendered templates (like erb in Ruby, ejs in nodejs) based on the Tera templating engine.
|
|
# (2) Client-side frontend set up
|
|
#
|
|
# You can also choose both.
|
|
#
|
|
# Uncomment the relevant sections below:
|
|
|
|
#
|
|
# (1) Server-side static assets config
|
|
# ====================================
|
|
#
|
|
# for use with the view_engine in initializers/view_engine.rs
|
|
static:
|
|
enable: true
|
|
must_exist: true
|
|
precompressed: false
|
|
folder:
|
|
uri: "/static"
|
|
path: "assets/static"
|
|
fallback: "assets/static/404.html"
|
|
|
|
#
|
|
# (2) Client side app static config
|
|
# =================================
|
|
#
|
|
# Note that you need to go in `frontend` and run your frontend build first,
|
|
# e.g.: $ npm install & npm build
|
|
#
|
|
# (client-block-start)
|
|
# static:
|
|
# enable: true
|
|
# must_exist: true
|
|
# precompressed: false
|
|
# folder:
|
|
# uri: "/"
|
|
# path: "frontend/dist"
|
|
# fallback: "frontend/dist/index.html"
|
|
# (client-block-end)
|
|
#
|
|
|
|
# #############################################
|
|
# Secure headers middleware
|
|
# #############################################
|
|
secure_headers:
|
|
preset: github
|
|
overrides:
|
|
# this allows you to use HTMX, and has unsafe-inline. Remove or consider in production
|
|
"Content-Security-Policy": "default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'unsafe-inline' 'self' https:; style-src 'self' https: 'unsafe-inline'"
|
|
|
|
|
|
# Worker Configuration
|
|
workers:
|
|
# specifies the worker mode. Options:
|
|
# - BackgroundQueue - Workers operate asynchronously in the background, processing queued.
|
|
# - ForegroundBlocking - Workers operate in the foreground and block until tasks are completed.
|
|
# - BackgroundAsync - Workers operate asynchronously in the background, processing tasks with async capabilities.
|
|
mode: BackgroundAsync
|
|
|
|
# Mailer Configuration.
|
|
mailer:
|
|
# SMTP mailer configuration.
|
|
smtp:
|
|
# Enable/Disable smtp mailer.
|
|
enable: true
|
|
# SMTP server host. e.x localhost, smtp.gmail.com
|
|
host: {{ get_env(name="MAILER_HOST", default="localhost") }}
|
|
# SMTP server port
|
|
port: 1025
|
|
# Use secure connection (SSL/TLS).
|
|
secure: false
|
|
# auth:
|
|
# user:
|
|
# password:
|
|
|
|
# Initializers Configuration
|
|
# initializers:
|
|
# oauth2:
|
|
# authorization_code: # Authorization code grant type
|
|
# - client_identifier: google # Identifier for the OAuth2 provider. Replace 'google' with your provider's name if different, must be unique within the oauth2 config.
|
|
# ... other fields
|
|
|
|
# Database Configuration
|
|
database:
|
|
# Database connection URI
|
|
uri: {{ get_env(name="DATABASE_URL", default="sqlite://nixin_farm_ssr_development.sqlite?mode=rwc") }}
|
|
# When enabled, the sql query will be logged.
|
|
enable_logging: false
|
|
# Set the timeout duration when acquiring a connection.
|
|
connect_timeout: {{ get_env(name="DB_CONNECT_TIMEOUT", default="500") }}
|
|
# Set the idle duration before closing a connection.
|
|
idle_timeout: 500
|
|
# Minimum number of connections for a pool.
|
|
min_connections: 1
|
|
# Maximum number of connections for a pool.
|
|
max_connections: 1
|
|
# Run migration up when application loaded
|
|
auto_migrate: true
|
|
# Truncate database when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode
|
|
dangerously_truncate: false
|
|
# Recreating schema when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode
|
|
dangerously_recreate: false
|
|
|
|
# Queue Configuration
|
|
queue:
|
|
kind: Redis
|
|
# Redis connection URI
|
|
uri: {{ get_env(name="REDIS_URL", default="redis://127.0.0.1") }}
|
|
# Dangerously flush all data in Redis on startup. dangerous operation, make sure that you using this flag only on dev environments or test mode
|
|
dangerously_flush: false
|
|
|
|
# Authentication Configuration
|
|
auth:
|
|
# JWT authentication
|
|
jwt:
|
|
# Secret key for token generation and verification
|
|
secret: jECGaGSsMtQmKyYyGuk7
|
|
# Token expiration time in seconds
|
|
expiration: 604800 # 7 days
|
|
location:
|
|
from: Cookie
|
|
name: token
|