v0.2.8
RustBox CI / rustbox (push) Canceled after 0s

This commit is contained in:
Mateusz Gruszczyński committed 2026-11-01 20:40:40 +01:00
1 parent cfc74d9db6
commit dacdf9c27d
76 files changed
+5209 -741

No files matched your search

+50 -7
View File
@@ -1,4 +1,4 @@
# RustBox 0.2.6
# RustBox 0.2.8
host = "127.0.0.1"
port = 3001
environment = "production"
@@ -59,7 +59,7 @@ max_message_size_mb = 50
sieve_enabled = true
diagnostics_enabled = true
about_enabled = true
# Adds browser-facing security headers (CSP, frame/referrer/permissions policies).
# Adds content-type-aware browser security headers: document policies on HTML, private no-store/framing/CORP policy on /api, Referrer-Policy on HTML/CSS, and nosniff broadly.
security_headers_enabled = false
# ManageSieve. If sieve_host is omitted, imap_host from the authenticated
@@ -72,7 +72,6 @@ sieve_allow_insecure_auth = false
sieve_timeout_secs = 10
trusted_proxies = "127.0.0.1,::1"
# Optional server-wide defaults for special IMAP folders. These are used when
# a mailbox has no per-account override and the named folder exists.
# default_sent_folder = "Sent"
@@ -96,10 +95,6 @@ pgp_max_key_bytes = 1048576
# Private-key export is deliberately disabled unless the administrator opts in.
pgp_allow_private_export = false
# RustBox 0.2 blob/search backends
# Blob storage is independent from the SQL database. PostgreSQL/MySQL can still use
# local filesystem storage in single-node mode. In cluster mode use S3-compatible
# storage or a genuinely shared POSIX filesystem (NFS/CephFS/GlusterFS).
[storage]
backend = "filesystem" # filesystem | s3
# path = "/var/lib/rustbox/blobs" # defaults to data_dir for filesystem
@@ -120,6 +115,17 @@ retry_timeout_secs = 60
# server_side_encryption = "AES256" # or "aws:kms"
# kms_key_id = "..."
# Periodic IMAP reconciliation. Active folders still use IMAP IDLE; this is the
# background/fallback cadence for folder counters, flags, new headers in other
# folders, and the automatic deep-index pass. Lower values improve convergence but
# increase IMAP traffic and mail-server load.
[sync]
interval_secs = 30
# Maximum full message bodies downloaded from IMAP per periodic pass when deep index
# is effective. Larger batches catch up faster at the cost of network traffic,
# application-database/search-storage usage and indexing CPU/I/O.
deep_index_batch_size = 10
# Search is independent from blob storage. Local Tantivy is single-node only.
[search]
backend = "local_tantivy" # disabled | local_tantivy | opensearch
@@ -129,8 +135,45 @@ index_prefix = "rustbox"
required = false
allow_insecure_http = false
request_timeout_secs = 10
# Server-wide automatic full-body cache/index switch. When true, RustBox proactively
# downloads message bodies from IMAP and indexes them for every account, up to
# sync.deep_index_batch_size per sync pass. This increases IMAP traffic,
# application-database/search-storage usage and indexing load. Production default
# is false. When false,
# the existing per-account deep_index preference may still opt an account in.
deep_index = false
# Search outbox worker cadence/batch; these do NOT control IMAP body downloads.
worker_interval_secs = 2
worker_batch_size = 100
worker_max_attempts = 8
# username = "rustbox"
# password = "..."
# RustBox 0.2 blob/search backends
# Blob storage is independent from the SQL database. PostgreSQL/MySQL can still use
# local filesystem storage in single-node mode. In cluster mode use S3-compatible
# storage or a genuinely shared POSIX filesystem (NFS/CephFS/GlusterFS).
# Administrator-only system diagnostics endpoint. Disabled by default.
# When enabled it exposes a redacted runtime/configuration report plus live probes
# for SQL, session persistence (database/Redis), blob storage (filesystem/S3),
# search (Tantivy/OpenSearch), IMAP IDLE counters and security telemetry.
# Access requires BOTH an allowed source network and the configured auth method.
# Secrets (passwords, tokens, S3 keys, session keys and URL credentials) are never returned.
[diagnostics_endpoint]
enabled = false
path = "/api/system/diagnostics"
# Default/fail-safe allowlist: only this host. Add trusted LAN/pod/monitoring CIDRs explicitly.
allowed_networks = ["127.0.0.1/32", "::1/128"]
# token | basic. Credentials should normally come from .env / secret manager, not TOML.
auth = "token"
# token = "replace-with-at-least-24-random-characters"
# basic_username = "rustbox-monitor"
# basic_password = "replace-with-a-long-random-password"
# E-mail addresses and stable user hashes are omitted by default; aggregate counts remain available.
include_user_identifiers = false
# Timeout applied independently to database/session/storage/search probes.
probe_timeout_secs = 5
# Rolling in-memory window used for login failures, 403, 429 and 5xx attack/problem signals.
security_window_secs = 900