# 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