Config File Location
MeepaChat searches for a config file in this order:$MEEPA_CONFIG_PATH— if set, only this path is checked~/.meepachat/config.yaml— primary location (written bymeepachat init)/etc/meepa/config.yaml— system-wide location
meepachat init writes the config to ~/.meepachat/config.yaml automatically.
Precedence
Server
integer
default:"8091"
HTTP port the server listens on. Can also be set via
meepachat start --port N.string
default:"(all interfaces)"
Network address to bind to. Can also be set via
meepachat start --bind ADDR.string
Public URL of the server (e.g.
https://chat.example.com). Required for invite links and email links to work correctly. Also controls whether session cookies are set with the Secure flag — set this to an https:// URL in production.string
default:"text"
Log output format.
text for human-readable output, json for structured logs.Database
string
PostgreSQL connection string. MeepaChat runs migrations automatically on startup.
string
default:"redis://redis:6379/0"
Redis connection string. Used for WebSocket pub/sub when running multiple server instances. Optional — omit to run without Redis (single instance only).
Authentication
string
URL of the auth service. Set by
meepachat init.string
Shared secret for the auth service. Must match the value configured in the auth sidecar.
boolean
default:"true"
When
false, new users must have a valid invite link to register. The first user is always exempt and becomes admin.boolean
default:"false"
When
true, users must verify their email address before they can log in. Requires SMTP to be configured.File Storage
MeepaChat stores uploads in S3-compatible storage. If no S3 endpoint is configured, files are stored on the local filesystem.string
S3-compatible endpoint URL. Omit the
https:// scheme — set S3_USE_SSL=true separately.Examples: localhost:9010 (MinIO), your-account.r2.cloudflarestorage.com (Cloudflare R2), s3.amazonaws.com (AWS S3).string
S3 access key ID.
string
S3 secret access key.
string
default:"meepachat"
S3 bucket name. The bucket must already exist.
string
S3 region. Required for AWS S3. Optional for MinIO and Cloudflare R2.
boolean
default:"false"
Enable TLS when connecting to the S3 endpoint. Set to
true for any public S3 service.string
default:"/data/uploads"
Local directory for file uploads when S3 is not configured. Also used as a temporary staging area when S3 is enabled.
integer
default:"20971520"
Maximum file upload size in bytes. Default is 20 MB (20 × 1024 × 1024).
MinIO (default)
meepachat init starts a local MinIO instance. No additional configuration needed for local deployments.
Cloudflare R2
AWS S3
Legacy
MINIO_* environment variables (MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, MINIO_BUCKET, MINIO_USE_SSL) are still accepted as fallbacks when the corresponding S3_* variable is not set.SMTP / Email
Email is used for invite links and email verification. Optional unlessREQUIRE_EMAIL_VERIFICATION=true.
string
SMTP server hostname (e.g.
smtp.mailgun.org, smtp.gmail.com).integer
default:"587"
SMTP port. 587 for STARTTLS (recommended), 465 for TLS, 25 for unencrypted.
string
SMTP username.
string
SMTP password.
string
From address for outgoing email (e.g.
chat@example.com).Push Notifications
Web Push (VAPID)
Browser push notifications use VAPID keys. Generate them once and store them permanently — changing keys will break existing browser subscriptions.string
Base64url-encoded ECDSA P-256 public key.
string
Base64url-encoded ECDSA P-256 private key.
string
Contact URL or
mailto: address identifying the push server (e.g. mailto:admin@example.com).FCM (Firebase Cloud Messaging)
Required for push notifications on iOS and Android mobile apps.string
Path to a Firebase service account JSON file. Download from Firebase Console → Project Settings → Service accounts.
Sessions
duration
default:"720h"
How long login sessions remain valid. Accepts Go duration strings:
720h (30 days), 168h (7 days), 24h (1 day).CORS
string
Comma-separated list of allowed CORS origins. When not set, only same-origin requests are permitted.Example:
https://chat.example.com,https://app.example.comSearch
string
URL of an Apache Tika server for full-text extraction from uploaded files (PDF, Office docs, etc.). Optional — omit to skip content indexing of attachments.Example:
http://localhost:9998Auto-Update
boolean
default:"false"
When
true, the server checks for updates every 6 hours and restarts automatically if a new version is available. Connected clients receive an update_restarting WebSocket event before the restart.MeepaGateway Integration
string
URL of a running MeepaGateway instance. When set, MeepaChat proxies credential action card confirmations to the gateway so agents can store logins, API keys, and passwords through interactive chat forms.Example:
http://localhost:63372Without this setting, credential action cards will render in chat but confirmations will fail with a 404. See the MeepaGateway integration guide for full setup instructions.
