e285b23534
Docker Compose with Traefik routing, auth-enabled server config, and local cache volume. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.0 KiB
YAML
34 lines
1.0 KiB
YAML
# ntfy.schwenk.online — personal push server (TLS terminated by Traefik)
|
|
|
|
base-url: "https://ntfy.schwenk.online"
|
|
listen-http: ":80"
|
|
behind-proxy: true
|
|
|
|
# Message cache (survives restarts, supports since= polling)
|
|
cache-file: "/var/cache/ntfy/cache.db"
|
|
cache-duration: "12h"
|
|
cache-startup-queries: |
|
|
pragma journal_mode = WAL;
|
|
pragma synchronous = normal;
|
|
pragma temp_store = memory;
|
|
pragma busy_timeout = 15000;
|
|
|
|
# Access control — create your first admin user after start:
|
|
# docker exec -it ntfy.schwenk.online ntfy user add frank --role=admin
|
|
auth-file: "/var/cache/ntfy/auth.db"
|
|
auth-default-access: "deny-all"
|
|
enable-login: true
|
|
require-login: true
|
|
enable-signup: false
|
|
|
|
# Attachments (e.g. Grafana alerts, backup reports)
|
|
attachment-cache-dir: "/var/cache/ntfy/attachments"
|
|
attachment-total-size-limit: "500M"
|
|
attachment-file-size-limit: "5M"
|
|
attachment-expiry-duration: "24h"
|
|
|
|
# iOS app: uses ntfy.sh only for poll_request signaling; message content stays here
|
|
upstream-base-url: "https://ntfy.sh"
|
|
|
|
keepalive-interval: "45s"
|