Skip to content
rply.shDocs

Configuration

The server is configured entirely through environment variables. All of them are optional; a server with none set works for a single person on localhost.

Sizes accept B, KB, MB or GB (e.g. 25MB). Retention periods accept hours or days (e.g. 12h, 30d).

Variable Default Description
PORT 8080 Port to listen on.
RPLY_URL The server’s public address, e.g. https://rply.example.com. Needed for passkeys and email links.
RPLY_WEB_DIR the built web app Folder with the web app to serve. Only needed for custom builds.
Variable Default Description
RPLY_DB rply.db (/data/rply.db in Docker) Path to the SQLite file.
RPLY_DATABASE_URL A postgres://… URL. When set, it’s used instead of SQLite, and file storage is off unless you set RPLY_FILES_DIR or S3.

Migrations run automatically on start. See Upgrades and backups.

Variable Default Description
RPLY_REGISTRATION invite Who can create an account after the first one. open: anyone. invite and closed: nobody, for now; invites are planned.
RPLY_AUTH_SECRET generated Secret for signing sessions. Generated on first start and stored in the database if unset.
RPLY_TRUSTED_ORIGINS Comma-separated extra origins allowed to sign in, e.g. a separately hosted web app.

Email enables verification, password reset and magic links. It’s sent through Resend and needs RPLY_URL.

Variable Description
RPLY_RESEND_API_KEY Resend API key.
RPLY_EMAIL_FROM Sender, e.g. rply <login@example.com>. Required with the API key.

Without email, reset a password from the command line; see Upgrades and backups.

Variable Default Description
RPLY_FILES on Set to off to disable attachments.
RPLY_FILES_DIR files/ next to the database Folder for uploaded files.
RPLY_FILES_MAX_SIZE 25MB Largest allowed file.
RPLY_FILES_TOTAL_LIMIT 5GB Total storage; uploads beyond it are refused.
RPLY_FILES_RETENTION off Delete files older than this, e.g. 30d.

Store files in any S3-compatible bucket (AWS, Cloudflare R2, MinIO, Railway buckets) instead of a folder:

Variable Description
RPLY_S3_BUCKET Bucket name. Setting it switches to S3.
RPLY_S3_ENDPOINT Endpoint URL.
RPLY_S3_ACCESS_KEY_ID Access key.
RPLY_S3_SECRET_ACCESS_KEY Secret key.
RPLY_S3_REGION Region, default auto.

Web push works without configuration: the server generates its keys on first start and stores them in the database.

Variable Default Description
RPLY_PUSH on Set to off to disable push notifications.
RPLY_VAPID_PUBLIC_KEY, RPLY_VAPID_PRIVATE_KEY generated Use your own key pair.
RPLY_VAPID_SUBJECT https://rply.sh Contact for push services, a URL or mailto: address.

Push services require HTTPS, except on localhost.

All of these are off by default. They count per account, across the channels the account owns.

Variable Description
RPLY_LIMIT_CHANNELS Most channels an account can own.
RPLY_LIMIT_MESSAGES_PER_DAY Most new messages per account in 24 hours.
RPLY_LIMIT_STORAGE Most file storage per account, e.g. 1GB.
RPLY_MESSAGE_RETENTION Delete unpinned messages older than this, e.g. 90d.

Some limits are always on to protect the server, whatever you configure: 120 writes a minute per channel, 20 agents per channel, and 20 channels created without an account per IP address per hour.