| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 | ---kind: DeploymentapiVersion: apps/v1metadata:  name: matrix  labels:    app: matrixspec:  replicas: 1  selector:    matchLabels:      app: matrix  template:    metadata:      labels:        app: matrix    spec:      containers:      - name: matrix        image: ghcr.io/element-hq/synapse        command: ["/bin/bash", "-c", "--"]        args: ["while true; do sleep 3; done;"]         env:        - name: SYNAPSE_SERVER_NAME          value: "matrix.dezendorf.net"        - name: SYNAPSE_CONFIG_PATH          value: "/data/homeserver.yaml"        ports:        - name: web          containerPort: 8008        volumeMounts:          - name: "matrix-homeserver-yaml"            mountPath: "/data/homeserver.yaml"            subPath: "homeserver-yaml"            readOnly: no          - name: "matrix-homeserver-yaml"            mountPath: "/homeserver.log"            subPath: "homeserver-log"            readOnly: no          - name: "matrix-homeserver-yaml"            mountPath: "/data/matrix.dezendorf.net.log.config"            subPath: "homeserver-log-config"            readOnly: no          - name: "matrix-data-volume"            mountPath: "/data"            readOnly: no          - name: "matrix-media-volume"            mountPath: "/data/media_store"      volumes:        - name: "matrix-media-volume"          persistentVolumeClaim:            claimName: "matrix-media-pvc"        - name: "matrix-data-volume"          persistentVolumeClaim:            claimName: "matrix-data-pvc"        - name: "matrix-homeserver-yaml"          configMap:            defaultMode: 0777            name: "matrix-homeserver-yaml"---apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: matrix-data-pvcspec:  accessModes:    - ReadWriteOnce  storageClassName: longhorn  resources:    requests:      storage: 50G---apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: matrix-media-pvcspec:  accessModes:    - ReadWriteOnce  storageClassName: nfs  resources:    requests:      storage: 100G---apiVersion: v1kind: Servicemetadata:  name: matrixspec:  type: ClusterIP  ports:    - name: web      port: 8008  selector:    app: matrix---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: matrix-ingress-route  namespace: defaultspec:  entryPoints:    - web  routes:  - match: ((Host(`matrix`)||Host(`matrix.dezendorf.net`)))    kind: Rule    priority: 1    services:    - name: matrix      port: 8008---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: matrix-websecure-route  namespace: defaultspec:  entryPoints:    - websecure  routes:  - match: Host(`matrix.dezendorf.net`)    kind: Rule    services:    - name: matrix      port: 8008  tls:    certResolver: myresolver---apiVersion: v1kind: ConfigMapmetadata:  name: matrix-homeserver-yaml  namespace: defaultdata:  homeserver-log: |  homeserver-yaml: |    # Configuration file for Synapse.    #    # This is a YAML file: see [1] for a quick introduction. Note in particular    # that *indentation is important*: all the elements of a list or dictionary    # should have the same indentation.    #    # [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html    #    # For more information on how to configure Synapse, including a complete accounting of    # each option, go to docs/usage/configuration/config_documentation.md or    # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html    server_name: "matrix.dezendorf.net"    pid_file: /data/homeserver.pid    listeners:      - port: 8008        tls: false        type: http        x_forwarded: true          #bind_addresses: ['::1', '127.0.0.1']        resources:          - names: [client, federation]            compress: false    database:      name: sqlite3      args:        database: /data/homeserver.db    log_config: "/data/matrix.dezendorf.net.log.config"    media_store_path: /data/media_store    registration_shared_secret: "9.^i#+7YXwrC^bzKMqkenOZb;9ra6jV0zgZMvO:EBQ.CipL47k"    report_stats: false    macaroon_secret_key: ".ughvXa0Or.Xv7o5y550cXnTlv.J8*Mq@JAA^1QXuu2bpR@Lpd"    form_secret: "iESBV0d@Tg;4~:v5KT3-UX.Kva@.cbJZ9SNU:nWKubPo:X^*Y-"    signing_key_path: "/data/matrix.dezendorf.net.signing.key"    enable_registration: true    enable_registration_captcha: true    public_baseurl: "https://matrix.dezendorf.net"    recaptcha_public_key: "6LddQ7EqAAAAACWLD1ZKUBKrLHoFvGWhFiNmrgPh"    recaptcha_private_key: "6LddQ7EqAAAAAOX7Qrn2PL-s2r5Zo4c_aTi4uzkh"    trusted_key_servers:      - server_name: "matrix.org"  homeserver-log-config: |    version: 1    formatters:      precise:        format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s'        handlers:      console:        class: logging.StreamHandler        formatter: precise    loggers:      # This is just here so we can leave `loggers` in the config regardless of whether      # we configure other loggers below (avoid empty yaml dict error).      _placeholder:        level: "INFO"        handlers: [console]          synapse.storage.SQL:        # beware: increasing this to DEBUG will make synapse log sensitive        # information such as access tokens.        level: INFO        handlers: [console]    root:      level: INFO      handlers: [console]    disable_existing_loggers: false
 |