160 lines
8.0 KiB
YAML
160 lines
8.0 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
|
|
# Binding for the server (which interface to bind to)
|
|
binding: localhost
|
|
# 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:
|
|
static:
|
|
enable: true
|
|
must_exist: true
|
|
precompressed: false
|
|
folder:
|
|
uri: "/static"
|
|
path: "assets/static"
|
|
fallback: "assets/static/404.html"
|
|
|
|
# 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. Defaults target a local catcher (MailHog/Mailpit
|
|
# on localhost:1025); set the SMTP_* env vars to point at a real server. The
|
|
# auth block is only emitted when SMTP_PASSWORD is provided, so the secret is
|
|
# never stored here — pass it in at launch (e.g. from `pass`).
|
|
smtp:
|
|
# Enable/Disable smtp mailer.
|
|
enable: {{ get_env(name="SMTP_ENABLE", default="true") }}
|
|
# SMTP server host. e.x localhost, smtp.gmail.com
|
|
host: "{{ get_env(name="SMTP_HOST", default="localhost") }}"
|
|
# SMTP server port
|
|
port: {{ get_env(name="SMTP_PORT", default="1025") }}
|
|
# Use secure connection (SSL/TLS).
|
|
secure: {{ get_env(name="SMTP_SECURE", default="false") }}
|
|
{% if get_env(name="SMTP_PASSWORD", default="") != "" %}
|
|
auth:
|
|
user: "{{ get_env(name="SMTP_USER", default="") }}"
|
|
password: "{{ get_env(name="SMTP_PASSWORD", default="") }}"
|
|
{% endif %}
|
|
# Override the SMTP hello name (default is the machine's hostname)
|
|
# hello_name:
|
|
|
|
# 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="postgres://uni_loco_web_user:3@localhost:5432/kompress_eshop_development") }}
|
|
# 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: {{ get_env(name="DB_IDLE_TIMEOUT", default="500") }}
|
|
# Minimum number of connections for a pool.
|
|
min_connections: {{ get_env(name="DB_MIN_CONNECTIONS", default="1") }}
|
|
# Maximum number of connections for a pool.
|
|
max_connections: {{ get_env(name="DB_MAX_CONNECTIONS", default="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
|
|
|
|
# Authentication Configuration
|
|
auth:
|
|
# JWT authentication
|
|
jwt:
|
|
location:
|
|
- from: Cookie
|
|
name: auth_token
|
|
- from: Bearer
|
|
# Secret key for token generation and verification
|
|
secret: A6ECni63rt2Jb00tX9Hf
|
|
# Token expiration time in seconds
|
|
expiration: 604800 # 7 days
|
|
|
|
settings:
|
|
admin_email: {{ get_env(name="ADMIN_EMAIL", default="admin@example.com") }}
|
|
uploads_root: {{ get_env(name="UPLOADS_ROOT", default="uploads") }}
|
|
# Packeta (Zásilkovna) web API key for the pickup-point picker widget.
|
|
# Empty falls back to a plain text field for the pickup point.
|
|
packeta_api_key: {{ get_env(name="PACKETA_API_KEY", default="") }}
|
|
# Packeta REST API secret + sender label, used by admin "Send to carrier"
|
|
# (manual shipment creation). See docs/integrations/packeta.md.
|
|
packeta_api_password: {{ get_env(name="PACKETA_API_PASSWORD", default="") }}
|
|
packeta_sender_label: {{ get_env(name="PACKETA_SENDER_LABEL", default="") }}
|
|
# DPD shipment API (see docs/integrations/dpd.md). Empty = not configured.
|
|
dpd_api_base: {{ get_env(name="DPD_API_BASE", default="") }}
|
|
dpd_login: {{ get_env(name="DPD_LOGIN", default="") }}
|
|
dpd_password: {{ get_env(name="DPD_PASSWORD", default="") }}
|
|
dpd_customer_number: {{ get_env(name="DPD_CUSTOMER_NUMBER", default="") }}
|
|
# DHL shipment API (see docs/integrations/dhl.md). Empty = not configured.
|
|
dhl_api_base: {{ get_env(name="DHL_API_BASE", default="") }}
|
|
dhl_api_key: {{ get_env(name="DHL_API_KEY", default="") }}
|
|
dhl_api_secret: {{ get_env(name="DHL_API_SECRET", default="") }}
|
|
dhl_account_number: {{ get_env(name="DHL_ACCOUNT_NUMBER", default="") }}
|
|
# Bank-transfer payment details shown on the order confirmation.
|
|
bank_iban: {{ get_env(name="BANK_IBAN", default="SK00 0000 0000 0000 0000 0000") }}
|
|
bank_account_name: {{ get_env(name="BANK_ACCOUNT_NAME", default="Kompress s.r.o.") }}
|
|
|
|
# loco-oauth2: social login. Credentials come from .env (create them in the
|
|
# Google Cloud console and register the redirect_url below as an authorized
|
|
# redirect URI). Until OAUTH_CLIENT_ID/SECRET are set, the "Continue with
|
|
# Google" button will fail at the consent screen — the rest of auth is unaffected.
|
|
initializers:
|
|
oauth2:
|
|
# Key for the loco-oauth2 private cookie jar (>= 64 bytes). Override in prod.
|
|
secret_key: {{ get_env(name="OAUTH_PRIVATE_KEY", default="144, 76, 183, 1, 15, 184, 233, 174, 214, 251, 190, 186, 122, 61, 74, 84, 225, 110, 189, 115, 10, 251, 133, 128, 52, 46, 15, 66, 85, 1, 245, 73, 27, 113, 189, 15, 209, 205, 61, 100, 73, 31, 18, 58, 235, 105, 141, 36, 70, 92, 231, 151, 27, 32, 243, 117, 30, 244, 110, 89, 233, 196, 137, 130") }}
|
|
authorization_code:
|
|
- client_identifier: google
|
|
client_credentials:
|
|
client_id: {{ get_env(name="OAUTH_CLIENT_ID", default="oauth_client_id") }}
|
|
client_secret: {{ get_env(name="OAUTH_CLIENT_SECRET", default="oauth_client_secret") }}
|
|
url_config:
|
|
auth_url: {{ get_env(name="OAUTH_AUTH_URL", default="https://accounts.google.com/o/oauth2/auth") }}
|
|
token_url: {{ get_env(name="OAUTH_TOKEN_URL", default="https://www.googleapis.com/oauth2/v3/token") }}
|
|
redirect_url: {{ get_env(name="OAUTH_REDIRECT_URL", default="http://localhost:5150/api/oauth2/google/callback/cookie") }}
|
|
profile_url: {{ get_env(name="OAUTH_PROFILE_URL", default="https://openidconnect.googleapis.com/v1/userinfo") }}
|
|
scopes:
|
|
- "https://www.googleapis.com/auth/userinfo.email"
|
|
- "https://www.googleapis.com/auth/userinfo.profile"
|
|
cookie_config:
|
|
# After loco-oauth2 sets its session cookie it redirects here, where we
|
|
# mint our own auth_token cookie (see controllers/oauth2.rs::complete).
|
|
protected_url: {{ get_env(name="OAUTH_PROTECTED_URL", default="http://localhost:5150/api/oauth2/protected") }}
|
|
timeout_seconds: 600
|