Documentation menu
Configuration
Environment variables for tuning your Shoutrrr instance.
Shoutrrr is configured through environment variables in your .env file (or
--env-file / Compose environment). The defaults run a self-contained instance
on SQLite with no external services. This page covers the variables you’re most
likely to change.
Application
| Variable | Default | Description |
|---|---|---|
APP_KEY | — | Secret that encrypts stored account tokens. Required. |
APP_URL | http://localhost:8080 | Public URL of your instance. Used for OAuth redirects. |
APP_ENV | production (image) | production or local. |
APP_DEBUG | false | Verbose errors. Keep false in production. |
SESSION_SECURE_COOKIE | false | Set true when serving over HTTPS. |
Generate APP_KEY once and keep it stable — changing it invalidates every
encrypted account token, forcing all accounts to be re-linked.
Reverse proxies & HTTPS
If you run Shoutrrr behind a TLS-terminating proxy — Coolify/Traefik, Nginx,
Caddy, a Cloudflare Tunnel, etc. — the container receives plain HTTP and only
learns the request was really HTTPS from forwarded headers. Without the
variables below, Shoutrrr generates http:// links: OAuth callbacks fail with
redirect-URI mismatches (e.g. LinkedIn), post-login redirects break, and the
browser blocks assets as mixed content.
| Variable | Default | Description |
|---|---|---|
TRUSTED_PROXIES | — | Trust forwarded headers. Set * to trust all proxies, or a comma-separated CIDR list. |
OCTANE_HTTPS | false | Force HTTPS scheme generation for redirects and asset URLs. Set true behind an HTTPS proxy. |
For a typical HTTPS deployment behind a proxy:
APP_URL=https://your-domain.example.com
SESSION_SECURE_COOKIE=true
TRUSTED_PROXIES=*
OCTANE_HTTPS=true
TRUSTED_PROXIESmakes Shoutrrr honourX-Forwarded-Proto/X-Forwarded-Hostfor per-request scheme, host, and client-IP detection.OCTANE_HTTPSforces the HTTPS scheme so links generated under Octane stayhttps://across requests — this is what clears mixed-content errors and the HTTP login-redirect problem.
Only set TRUSTED_PROXIES=* when Shoutrrr is genuinely reachable solely through
your proxy. If the container is exposed directly, restrict it to the proxy’s IP
range so clients can’t spoof forwarded headers.
Workers
Publishing and scheduling require a queue worker and the scheduler. The Docker image runs both inside the container by default.
| Variable | Default | Description |
|---|---|---|
QUEUE_WORKER_ENABLED | true | Run the in-container queue worker. |
SCHEDULER_ENABLED | true | Run the in-container scheduler. |
INERTIA_SSR_ENABLED | false | Enable server-side rendering. |
To run the worker and scheduler as separate services (e.g. in the cloud), set
QUEUE_WORKER_ENABLED=false / SCHEDULER_ENABLED=false and start them with
php artisan queue:work and php artisan schedule:work in their own containers.
Database, cache & queue
By default everything is database-backed on SQLite — no extra services to run.
| Variable | Default | Description |
|---|---|---|
DB_CONNECTION | sqlite | sqlite, pgsql, or mysql. |
DB_DATABASE | database/sqlite/database.sqlite | SQLite path, or database name. |
DB_HOST / DB_PORT | 127.0.0.1 / 3306 | For Postgres/MySQL. |
DB_USERNAME / DB_PASSWORD | — | For Postgres/MySQL. |
CACHE_STORE | database | e.g. database or redis. |
QUEUE_CONNECTION | database | e.g. database or redis. |
SESSION_DRIVER | database | Where sessions are stored. |
To scale out, point DB_* / REDIS_* at managed services and switch
DB_CONNECTION, CACHE_STORE, and QUEUE_CONNECTION to use them.
Email is used for verification and team invitations.
| Variable | Default | Description |
|---|---|---|
MAIL_MAILER | log | smtp, log, etc. |
MAIL_HOST / MAIL_PORT | 127.0.0.1 / 2525 | SMTP server. |
MAIL_FROM_ADDRESS | [email protected] | Sender address for outgoing mail. |
Accounts & social login
Credentials for connecting and publishing to networks are documented in
Connecting accounts — X_*, LINKEDIN_*, and the
optional SOCIALITE_* / GOOGLE_* variables for social sign-in.