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

VariableDefaultDescription
APP_KEYSecret that encrypts stored account tokens. Required.
APP_URLhttp://localhost:8080Public URL of your instance. Used for OAuth redirects.
APP_ENVproduction (image)production or local.
APP_DEBUGfalseVerbose errors. Keep false in production.
SESSION_SECURE_COOKIEfalseSet true when serving over HTTPS.
Warning

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.

VariableDefaultDescription
TRUSTED_PROXIESTrust forwarded headers. Set * to trust all proxies, or a comma-separated CIDR list.
OCTANE_HTTPSfalseForce 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_PROXIES makes Shoutrrr honour X-Forwarded-Proto / X-Forwarded-Host for per-request scheme, host, and client-IP detection.
  • OCTANE_HTTPS forces the HTTPS scheme so links generated under Octane stay https:// across requests — this is what clears mixed-content errors and the HTTP login-redirect problem.
Note

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.

VariableDefaultDescription
QUEUE_WORKER_ENABLEDtrueRun the in-container queue worker.
SCHEDULER_ENABLEDtrueRun the in-container scheduler.
INERTIA_SSR_ENABLEDfalseEnable server-side rendering.
Note

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.

VariableDefaultDescription
DB_CONNECTIONsqlitesqlite, pgsql, or mysql.
DB_DATABASEdatabase/sqlite/database.sqliteSQLite path, or database name.
DB_HOST / DB_PORT127.0.0.1 / 3306For Postgres/MySQL.
DB_USERNAME / DB_PASSWORDFor Postgres/MySQL.
CACHE_STOREdatabasee.g. database or redis.
QUEUE_CONNECTIONdatabasee.g. database or redis.
SESSION_DRIVERdatabaseWhere 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

Email is used for verification and team invitations.

VariableDefaultDescription
MAIL_MAILERlogsmtp, log, etc.
MAIL_HOST / MAIL_PORT127.0.0.1 / 2525SMTP 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 accountsX_*, LINKEDIN_*, and the optional SOCIALITE_* / GOOGLE_* variables for social sign-in.