From d088e396dccf4433402a4de9bea99c121bf23cca Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 1 Aug 2025 07:52:32 -0400 Subject: [PATCH] Libredesk config. --- ansible/app-configs/libredesk/config.toml.j2 | 124 +++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 ansible/app-configs/libredesk/config.toml.j2 diff --git a/ansible/app-configs/libredesk/config.toml.j2 b/ansible/app-configs/libredesk/config.toml.j2 new file mode 100644 index 00000000..462cad92 --- /dev/null +++ b/ansible/app-configs/libredesk/config.toml.j2 @@ -0,0 +1,124 @@ +[app] +# Log level: info, debug, warn, error, fatal +log_level = "debug" +# Environment: dev, prod. +# Setting to "dev" will enable color logging in terminal. +env = "dev" +# Whether to automatically check for application updates on start up, app updates are shown as a banner in the admin panel. +check_updates = true + +# HTTP server. +[app.server] +# Address to bind the HTTP server to. +address = "0.0.0.0:9000" +# Unix socket path (leave empty to use TCP address instead) +socket = "" +# Do NOT disable secure cookies in production environment if you don't know exactly what you're doing! +disable_secure_cookies = false +# Request read and write timeouts. +read_timeout = "5s" +write_timeout = "5s" +# Maximum request body size in bytes (100MB) +# If you are using proxy, you may need to configure them to allow larger request bodies. +max_body_size = 104857600 +# Size of the read buffer for incoming requests +read_buffer_size = 4096 +# Keepalive settings. +keepalive_timeout = "10s" + +# File upload provider to use, either `fs` or `s3`. +[upload] +provider = "s3" + +# Filesystem provider. +[upload.fs] +# Directory where uploaded files are stored, make sure this directory exists and is writable by the application. +upload_path = 'uploads' + +# S3 provider. +[upload.s3] +# S3 endpoint URL (required only for non-AWS S3-compatible providers like MinIO). +# Leave empty to use default AWS endpoints. +url = "http://minio:9000" + +# AWS S3 credentials, keep empty to use attached IAM roles. +access_key = "{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['LIBREDESK_S3_ACCESS_KEY'] }}" +secret_key = "{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['LIBREDESK_S3_SECRET_KEY'] }}" + +# AWS region, e.g., "us-east-1", "eu-west-1", etc. +region = "us-east-fh-pln" +# S3 bucket name where files will be stored. +bucket = "libredesk" +# Optional prefix path within the S3 bucket where files will be stored. +# Example, if set to "uploads/media", files will be stored under that path. +# Useful for organizing files inside a shared bucket. +bucket_path = "" +# S3 signed URL expiry duration (e.g., "30m", "1h") +expiry = "30m" + +# Postgres. +[db] +# If running locally, use `localhost`. +host = "libredesk-pg-db" +# Database port, default is 5432. +port = 5432 +# Update the following values with your database credentials. +user = "libredesk" +password = "{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['LIBREDESK_PG_DB_PASSWD'] }}" +database = "libredesk" +ssl_mode = "disable" +# Maximum number of open database connections +max_open = 30 +# Maximum number of idle connections in the pool +max_idle = 30 +# Maximum time a connection can be reused before being closed +max_lifetime = "300s" + +# Redis. +[redis] +# If running locally, use `localhost:6379`. +address = "libredesk-valkey:6379" +password = "" +db = 0 + +[message] +# Number of workers processing outgoing message queue +outgoing_queue_workers = 10 +# Number of workers processing incoming message queue +incoming_queue_workers = 10 +# How often to scan for outgoing messages to process, keep it low to process messages quickly. +message_outgoing_scan_interval = "50ms" +# Maximum number of messages that can be queued for incoming processing +incoming_queue_size = 5000 +# Maximum number of messages that can be queued for outgoing processing +outgoing_queue_size = 5000 + +[notification] +# Number of concurrent notification workers +concurrency = 2 +# Maximum number of notifications that can be queued +queue_size = 2000 + +[automation] +# Number of workers processing automation rules +worker_count = 10 + +[autoassigner] +# How often to run automatic conversation assignment +autoassign_interval = "5m" + +[webhook] +# Number of webhook delivery workers +workers = 5 +# Maximum number of webhook deliveries that can be queued +queue_size = 10000 +# HTTP timeout for webhook requests +timeout = "15s" + +[conversation] +# How often to check for conversations to unsnooze +unsnooze_interval = "5m" + +[sla] +# How often to evaluate SLA compliance for conversations +evaluation_interval = "5m" -- 2.52.0