apiVersion: v1 kind: Service metadata: name: syncthing spec: ports: - protocol: TCP name: web port: 8384 - protocol: TCP name: tcp-file-xfer port: 22000 - protocol: UDP name: quic-file-xfer port: 22000 - protocol: UDP name: discovery port: 21027 selector: app: syncthing --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: syncthing name: syncthing spec: replicas: 1 selector: matchLabels: app: syncthing template: metadata: labels: app: syncthing spec: hostname: syncthing containers: - image: bv11-cr01.bessems.eu/proxy/syncthing/syncthing name: syncthing args: - --no-browser - --no-default-folder - --no-restart ports: - containerPort: 8384 name: web - containerPort: 22000 name: tcp-file-xfer protocol: TCP - containerPort: 22000 name: quic-file-xfer protocol: UDP - containerPort: 21027 name: discovery protocol: UDP volumeMounts: - mountPath: /var/syncthing name: longhorn-syncthing-data volumes: - name: longhorn-syncthing-data persistentVolumeClaim: claimName: longhorn-syncthing-data --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: syncthing spec: entryPoints: - websecure routes: - match: Host(`sync.spamasaurus.com`) kind: Rule services: - name: syncthing port: 8384 middlewares: - name: 2fa-authentication@file - name: security-headers@file - name: compression@file --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: longhorn-syncthing-data namespace: default spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 5Gi