|
|
@@ -89,8 +89,8 @@ var flagsServe = append(
|
|
|
altsrc.NewStringFlag(&cli.StringFlag{Name: "visitor-email-limit-replenish", Aliases: []string{"visitor_email_limit_replenish"}, EnvVars: []string{"NTFY_VISITOR_EMAIL_LIMIT_REPLENISH"}, Value: util.FormatDuration(server.DefaultVisitorEmailLimitReplenish), Usage: "interval at which burst limit is replenished (one per x)"}),
|
|
|
altsrc.NewBoolFlag(&cli.BoolFlag{Name: "visitor-subscriber-rate-limiting", Aliases: []string{"visitor_subscriber_rate_limiting"}, EnvVars: []string{"NTFY_VISITOR_SUBSCRIBER_RATE_LIMITING"}, Value: false, Usage: "enables subscriber-based rate limiting"}),
|
|
|
altsrc.NewBoolFlag(&cli.BoolFlag{Name: "behind-proxy", Aliases: []string{"behind_proxy", "P"}, EnvVars: []string{"NTFY_BEHIND_PROXY"}, Value: false, Usage: "if set, use forwarded header (e.g. X-Forwarded-For, X-Client-IP) to determine visitor IP address (for rate limiting)"}),
|
|
|
- altsrc.NewStringFlag(&cli.StringFlag{Name: "proxy-forwarded-header", Aliases: []string{"proxy_forwarded_header"}, EnvVars: []string{"NTFY_PROXY_FORWARDED_HEADER"}, Value: "X-Forwarded-For", Usage: "if set, use specified header to determine visitor IP address instead of XFF (for rate limiting)"}),
|
|
|
- altsrc.NewStringFlag(&cli.StringFlag{Name: "proxy-trusted-addrs", Aliases: []string{"proxy_trusted_addrs"}, EnvVars: []string{"NTFY_PROXY_TRUSTED_ADDRS"}, Value: "", Usage: "comma-separated list of trusted IP addresses to remove from forwarded header"}),
|
|
|
+ altsrc.NewStringFlag(&cli.StringFlag{Name: "proxy-forwarded-header", Aliases: []string{"proxy_forwarded_header"}, EnvVars: []string{"NTFY_PROXY_FORWARDED_HEADER"}, Value: "X-Forwarded-For", Usage: "use specified header to determine visitor IP address (for rate limiting)"}),
|
|
|
+ altsrc.NewStringFlag(&cli.StringFlag{Name: "proxy-trusted-addresses", Aliases: []string{"proxy_trusted_addresses"}, EnvVars: []string{"NTFY_PROXY_TRUSTED_ADDRESSES"}, Value: "", Usage: "comma-separated list of trusted IP addresses to remove from forwarded header"}),
|
|
|
altsrc.NewStringFlag(&cli.StringFlag{Name: "stripe-secret-key", Aliases: []string{"stripe_secret_key"}, EnvVars: []string{"NTFY_STRIPE_SECRET_KEY"}, Value: "", Usage: "key used for the Stripe API communication, this enables payments"}),
|
|
|
altsrc.NewStringFlag(&cli.StringFlag{Name: "stripe-webhook-key", Aliases: []string{"stripe_webhook_key"}, EnvVars: []string{"NTFY_STRIPE_WEBHOOK_KEY"}, Value: "", Usage: "key required to validate the authenticity of incoming webhooks from Stripe"}),
|
|
|
altsrc.NewStringFlag(&cli.StringFlag{Name: "billing-contact", Aliases: []string{"billing_contact"}, EnvVars: []string{"NTFY_BILLING_CONTACT"}, Value: "", Usage: "e-mail or website to display in upgrade dialog (only if payments are enabled)"}),
|
|
|
@@ -193,7 +193,7 @@ func execServe(c *cli.Context) error {
|
|
|
visitorEmailLimitReplenishStr := c.String("visitor-email-limit-replenish")
|
|
|
behindProxy := c.Bool("behind-proxy")
|
|
|
proxyForwardedHeader := c.String("proxy-forwarded-header")
|
|
|
- proxyTrustedAddrs := util.SplitNoEmpty(c.String("proxy-trusted-addrs"), ",")
|
|
|
+ proxyTrustedAddresses := util.SplitNoEmpty(c.String("proxy-trusted-addresses"), ",")
|
|
|
stripeSecretKey := c.String("stripe-secret-key")
|
|
|
stripeWebhookKey := c.String("stripe-webhook-key")
|
|
|
billingContact := c.String("billing-contact")
|
|
|
@@ -322,6 +322,8 @@ func execServe(c *cli.Context) error {
|
|
|
}
|
|
|
} else if webPushExpiryWarningDuration > 0 && webPushExpiryWarningDuration > webPushExpiryDuration {
|
|
|
return errors.New("web push expiry warning duration cannot be higher than web push expiry duration")
|
|
|
+ } else if behindProxy && proxyForwardedHeader == "" {
|
|
|
+ return errors.New("if behind-proxy is set, proxy-forwarded-header must also be set")
|
|
|
}
|
|
|
|
|
|
// Backwards compatibility
|
|
|
@@ -421,7 +423,7 @@ func execServe(c *cli.Context) error {
|
|
|
conf.VisitorSubscriberRateLimiting = visitorSubscriberRateLimiting
|
|
|
conf.BehindProxy = behindProxy
|
|
|
conf.ProxyForwardedHeader = proxyForwardedHeader
|
|
|
- conf.ProxyTrustedAddrs = proxyTrustedAddrs
|
|
|
+ conf.ProxyTrustedAddresses = proxyTrustedAddresses
|
|
|
conf.StripeSecretKey = stripeSecretKey
|
|
|
conf.StripeWebhookKey = stripeWebhookKey
|
|
|
conf.BillingContact = billingContact
|