mirror of
https://github.com/rubenhensen/k8scd.git
synced 2026-09-17 02:12:55 +02:00
Delete old sogo and stalwart
This commit is contained in:
@@ -1,23 +0,0 @@
|
|||||||
|
|
||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: sogo-postgres-credentials
|
|
||||||
spec:
|
|
||||||
secretStoreRef:
|
|
||||||
name: vault-backend
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
refreshInterval: 15m
|
|
||||||
target:
|
|
||||||
name: sogo-postgres-credentials
|
|
||||||
creationPolicy: Owner
|
|
||||||
data:
|
|
||||||
- secretKey: username
|
|
||||||
remoteRef:
|
|
||||||
key: kv/sogo
|
|
||||||
property: postgres_user
|
|
||||||
- secretKey: password
|
|
||||||
remoteRef:
|
|
||||||
key: kv/sogo
|
|
||||||
property: postgres_pw
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: Cluster
|
|
||||||
metadata:
|
|
||||||
name: sogo-postgres
|
|
||||||
spec:
|
|
||||||
instances: 1
|
|
||||||
|
|
||||||
primaryUpdateStrategy: unsupervised
|
|
||||||
|
|
||||||
bootstrap:
|
|
||||||
initdb:
|
|
||||||
database: sogo
|
|
||||||
owner: sogo
|
|
||||||
secret:
|
|
||||||
name: sogo-postgres-credentials
|
|
||||||
|
|
||||||
storage:
|
|
||||||
storageClass: longhorn
|
|
||||||
size: 20Gi
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: sogo-secrets
|
|
||||||
spec:
|
|
||||||
secretStoreRef:
|
|
||||||
name: vault-backend
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
refreshInterval: 15m
|
|
||||||
target:
|
|
||||||
name: sogo-secrets
|
|
||||||
creationPolicy: Owner
|
|
||||||
template:
|
|
||||||
engineVersion: v2
|
|
||||||
data:
|
|
||||||
SOGoProfileURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_user_profile"
|
|
||||||
OCSFolderInfoURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_folder_info"
|
|
||||||
OCSSessionsFolderURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_sessions_folder"
|
|
||||||
OCSCacheFolderURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_cache_folder"
|
|
||||||
OCSStoreURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_store"
|
|
||||||
OCSAclURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_acl"
|
|
||||||
SOGoUserSources__yaml: |
|
|
||||||
- type: sql
|
|
||||||
id: directory
|
|
||||||
viewURL: "postgresql://{{ .postgres_user }}:{{ .postgres_pw }}@sogo-postgres-rw:5432/sogo/sogo_users"
|
|
||||||
canAuthenticate: NO
|
|
||||||
isAddressBook: NO
|
|
||||||
userPasswordAlgorithm: none
|
|
||||||
SOGoIMAPServer: "imaps://stalwart.stalwart.svc.cluster.local:993"
|
|
||||||
SOGoSieveServer: "sieve://stalwart.stalwart.svc.cluster.local:4190"
|
|
||||||
SOGoSMTPServer: "stalwart.stalwart.svc.cluster.local"
|
|
||||||
SOGoMailDomain: "hensen.io"
|
|
||||||
SOGoForceExternalLoginWithEmail: "YES"
|
|
||||||
dataFrom:
|
|
||||||
- extract:
|
|
||||||
key: kv/sogo
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: stalwart
|
|
||||||
description: Helm chart for Stalwart
|
|
||||||
version: 0.1.0
|
|
||||||
appVersion: "latest"
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
{{- define "stalwart.name" -}}
|
|
||||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create a default fully qualified app name.
|
|
||||||
*/}}
|
|
||||||
{{- define "stalwart.fullname" -}}
|
|
||||||
{{- if .Values.fullnameOverride }}
|
|
||||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
||||||
{{- if contains $name .Release.Name }}
|
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "stalwart.chart" -}}
|
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "stalwart.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "stalwart.chart" . }}
|
|
||||||
{{ include "stalwart.selectorLabels" . }}
|
|
||||||
{{- if .Chart.AppVersion }}
|
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
||||||
{{- end }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "stalwart.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "stalwart.name" . }}
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-config
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
config.toml: |
|
|
||||||
[server]
|
|
||||||
hostname = "{{ .Values.config.hostname }}"
|
|
||||||
max-connections = 8192
|
|
||||||
allowed-ip = {{ .Values.config.allowedIPs | toJson }}
|
|
||||||
|
|
||||||
[server.socket]
|
|
||||||
backlog = 1024
|
|
||||||
nodelay = true
|
|
||||||
reuse-addr = true
|
|
||||||
reuse-port = true
|
|
||||||
|
|
||||||
[server.listener.http]
|
|
||||||
bind = "[::]:8080"
|
|
||||||
protocol = "http"
|
|
||||||
|
|
||||||
[server.listener.https]
|
|
||||||
bind = "[::]:443"
|
|
||||||
protocol = "http"
|
|
||||||
tls.implicit = true
|
|
||||||
|
|
||||||
[server.listener.smtp]
|
|
||||||
bind = "[::]:25"
|
|
||||||
protocol = "smtp"
|
|
||||||
|
|
||||||
[server.listener.submission]
|
|
||||||
bind = "[::]:587"
|
|
||||||
protocol = "smtp"
|
|
||||||
|
|
||||||
[server.listener.submissions]
|
|
||||||
bind = "[::]:465"
|
|
||||||
protocol = "smtp"
|
|
||||||
tls.implicit = true
|
|
||||||
|
|
||||||
[server.listener.imap]
|
|
||||||
bind = "[::]:143"
|
|
||||||
protocol = "imap"
|
|
||||||
|
|
||||||
[server.listener.imaptls]
|
|
||||||
bind = "[::]:993"
|
|
||||||
protocol = "imap"
|
|
||||||
tls.implicit = true
|
|
||||||
|
|
||||||
[server.listener.pop3]
|
|
||||||
bind = "[::]:110"
|
|
||||||
protocol = "pop3"
|
|
||||||
|
|
||||||
[server.listener.pop3s]
|
|
||||||
bind = "[::]:995"
|
|
||||||
protocol = "pop3"
|
|
||||||
tls.implicit = true
|
|
||||||
|
|
||||||
[server.listener.sieve]
|
|
||||||
bind = "[::]:4190"
|
|
||||||
protocol = "managesieve"
|
|
||||||
|
|
||||||
[http]
|
|
||||||
use-x-forwarded = {{ .Values.config.useXForwarded }}
|
|
||||||
|
|
||||||
[storage]
|
|
||||||
data = "rocksdb"
|
|
||||||
blob = "rocksdb"
|
|
||||||
fts = "rocksdb"
|
|
||||||
lookup = "rocksdb"
|
|
||||||
directory = "internal"
|
|
||||||
|
|
||||||
[store.rocksdb]
|
|
||||||
type = "rocksdb"
|
|
||||||
path = "/opt/stalwart/data"
|
|
||||||
compression = "lz4"
|
|
||||||
|
|
||||||
[directory.internal]
|
|
||||||
type = "internal"
|
|
||||||
store = "rocksdb"
|
|
||||||
|
|
||||||
[authentication.fallback-admin]
|
|
||||||
user = "%{env:STALWART_ADMIN_USER}%"
|
|
||||||
secret = "%{env:STALWART_ADMIN_PASSWORD}%"
|
|
||||||
|
|
||||||
[queue.strategy]
|
|
||||||
route = [ { if = "is_local_domain('', rcpt_domain)", then = "'local'" },
|
|
||||||
{ else = "'smtp2go'" } ]
|
|
||||||
|
|
||||||
[queue.route."smtp2go"]
|
|
||||||
type = "relay"
|
|
||||||
address = "mail-eu.smtp2go.com"
|
|
||||||
port = 2525
|
|
||||||
protocol = "smtp"
|
|
||||||
|
|
||||||
[queue.route."smtp2go".tls]
|
|
||||||
implicit = false
|
|
||||||
allow-invalid-certs = false
|
|
||||||
|
|
||||||
[queue.route."smtp2go".auth]
|
|
||||||
username = "%{env:SMTP2GO_USER}%"
|
|
||||||
secret = "%{env:SMTP2GO_PASSWORD}%"
|
|
||||||
|
|
||||||
[certificate."default"]
|
|
||||||
cert = "%{file:/opt/stalwart/certs/tls.crt}%"
|
|
||||||
private-key = "%{file:/opt/stalwart/certs/tls.key}%"
|
|
||||||
default = true
|
|
||||||
|
|
||||||
[tracer.log]
|
|
||||||
type = "log"
|
|
||||||
enable = true
|
|
||||||
level = "info"
|
|
||||||
path = "/opt/stalwart/logs"
|
|
||||||
prefix = "stalwart.log"
|
|
||||||
rotate = "daily"
|
|
||||||
ansi = false
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
replicas: {{ .Values.replicaCount }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "stalwart.selectorLabels" . | nindent 6 }}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.selectorLabels" . | nindent 8 }}
|
|
||||||
spec:
|
|
||||||
hostname: mail
|
|
||||||
subdomain: hensen-io
|
|
||||||
containers:
|
|
||||||
- name: stalwart
|
|
||||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
||||||
env:
|
|
||||||
- name: STALWART_ADMIN_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-admin
|
|
||||||
key: user
|
|
||||||
- name: STALWART_ADMIN_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-admin
|
|
||||||
key: pw
|
|
||||||
- name: SMTP2GO_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-smtp2go
|
|
||||||
key: user
|
|
||||||
- name: SMTP2GO_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-smtp2go
|
|
||||||
key: pw
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /healthz/live
|
|
||||||
port: 8080
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /healthz/ready
|
|
||||||
port: 8080
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
- containerPort: 443
|
|
||||||
- containerPort: 25
|
|
||||||
hostPort: 25
|
|
||||||
- containerPort: 587
|
|
||||||
hostPort: 587
|
|
||||||
- containerPort: 465
|
|
||||||
hostPort: 465
|
|
||||||
- containerPort: 143
|
|
||||||
hostPort: 143
|
|
||||||
- containerPort: 993
|
|
||||||
hostPort: 993
|
|
||||||
- containerPort: 4190
|
|
||||||
hostPort: 4190
|
|
||||||
volumeMounts:
|
|
||||||
- name: stalwart-volume
|
|
||||||
mountPath: {{ .Values.persistence.mountPath }}
|
|
||||||
- name: config
|
|
||||||
mountPath: /opt/stalwart/etc/config.toml
|
|
||||||
subPath: config.toml
|
|
||||||
- name: tls-certs
|
|
||||||
mountPath: /opt/stalwart/certs
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: stalwart-volume
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: {{ include "stalwart.fullname" . }}
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-config
|
|
||||||
- name: tls-certs
|
|
||||||
secret:
|
|
||||||
secretName: {{ .Values.tls.secretName }}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-admin
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
refreshInterval: "15m"
|
|
||||||
secretStoreRef:
|
|
||||||
name: vault-backend
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
target:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-admin
|
|
||||||
creationPolicy: Owner
|
|
||||||
data:
|
|
||||||
- secretKey: user
|
|
||||||
remoteRef:
|
|
||||||
key: kv/stalwartadmin
|
|
||||||
property: user
|
|
||||||
- secretKey: pw
|
|
||||||
remoteRef:
|
|
||||||
key: kv/stalwartadmin
|
|
||||||
property: pw
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
|
||||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: mail.hensen.io
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- host: autoconfig.hensen.io
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- host: autodiscover.hensen.io
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
tls:
|
|
||||||
- secretName: letsencrypt-prod
|
|
||||||
hosts:
|
|
||||||
- mail.hensen.io
|
|
||||||
- autoconfig.hensen.io
|
|
||||||
- autodiscover.hensen.io
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{{- if .Values.persistence.enabled }}
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- {{ .Values.persistence.accessMode }}
|
|
||||||
storageClassName: {{ .Values.persistence.storageClass }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: {{ .Values.persistence.size }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: {{ .Values.service.type }}
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
- name: https
|
|
||||||
port: 443
|
|
||||||
targetPort: 443
|
|
||||||
- name: smtp
|
|
||||||
port: 25
|
|
||||||
targetPort: 25
|
|
||||||
- name: submission
|
|
||||||
port: 587
|
|
||||||
targetPort: 587
|
|
||||||
- name: smtps
|
|
||||||
port: 465
|
|
||||||
targetPort: 465
|
|
||||||
- name: imap
|
|
||||||
port: 143
|
|
||||||
targetPort: 143
|
|
||||||
- name: imaps
|
|
||||||
port: 993
|
|
||||||
targetPort: 993
|
|
||||||
- name: sieve
|
|
||||||
port: 4190
|
|
||||||
targetPort: 4190
|
|
||||||
selector:
|
|
||||||
{{- include "stalwart.selectorLabels" . | nindent 4 }}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-smtp2go
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "stalwart.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
refreshInterval: "15m"
|
|
||||||
secretStoreRef:
|
|
||||||
name: vault-backend
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
target:
|
|
||||||
name: {{ include "stalwart.fullname" . }}-smtp2go
|
|
||||||
creationPolicy: Owner
|
|
||||||
data:
|
|
||||||
- secretKey: user
|
|
||||||
remoteRef:
|
|
||||||
key: kv/smtp2go
|
|
||||||
property: user
|
|
||||||
- secretKey: pw
|
|
||||||
remoteRef:
|
|
||||||
key: kv/smtp2go
|
|
||||||
property: pw
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
image:
|
|
||||||
repository: stalwartlabs/stalwart
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
tag: "latest"
|
|
||||||
|
|
||||||
service:
|
|
||||||
type: NodePort
|
|
||||||
ports:
|
|
||||||
http: 8080
|
|
||||||
https: 443
|
|
||||||
smtp: 25
|
|
||||||
submission: 587
|
|
||||||
smtps: 465
|
|
||||||
imap: 143
|
|
||||||
imaps: 993
|
|
||||||
sieve: 4190
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
storageClass: longhorn
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 10Gi
|
|
||||||
mountPath: /opt/stalwart
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
tls:
|
|
||||||
secretName: letsencrypt-prod
|
|
||||||
|
|
||||||
config:
|
|
||||||
hostname: "mail.hensen.io"
|
|
||||||
# Whitelist cluster IPs to prevent ingress from being banned
|
|
||||||
allowedIPs:
|
|
||||||
- "127.0.0.1"
|
|
||||||
- "::1"
|
|
||||||
- "10.0.0.0/8"
|
|
||||||
# Trust X-Forwarded-For header from reverse proxy for real client IP
|
|
||||||
useXForwarded: true
|
|
||||||
Reference in New Issue
Block a user