apiVersion: apps/v1 kind: Deployment metadata: name: element-web-docs namespace: matrix spec: replicas: 1 selector: matchLabels: app: element-web-docs template: metadata: labels: app: element-web-docs spec: containers: - name: nginx image: nginx:1.26-alpine ports: - containerPort: 8080 volumeMounts: - name: config mountPath: /config - name: nginx-conf mountPath: /etc/nginx/conf.d/default.conf subPath: nginx.conf - name: html mountPath: /usr/share/nginx/html lifecycle: postStart: exec: command: ["/bin/sh", "-c"] args: - | mkdir -p /usr/share/nginx/html/docs/setup cp /config/README-Element-Setup.md /usr/share/nginx/html/docs/setup/ cp /config/element-setup-windows.cmd /usr/share/nginx/html/docs/setup/ cp /config/element-setup-macos.command /usr/share/nginx/html/docs/setup/ cp /config/element-setup-linux.sh /usr/share/nginx/html/docs/setup/ chmod 644 /usr/share/nginx/html/docs/setup/* volumes: - name: config configMap: name: ess-element-web-docs - name: nginx-conf configMap: name: element-web-docs-nginx - name: html emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: element-web-docs namespace: matrix spec: selector: app: element-web-docs ports: - protocol: TCP port: 80 targetPort: 8080 type: ClusterIP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: element-web-docs namespace: matrix spec: ingressClassName: nginx rules: - host: axion1337.chat http: paths: - path: /docs/setup pathType: Prefix backend: service: name: element-web-docs port: number: 80 --- apiVersion: v1 kind: ConfigMap metadata: name: element-web-docs-nginx namespace: matrix data: nginx.conf: | server { listen 8080; server_name _; root /usr/share/nginx/html; location /docs/setup/ { autoindex on; add_header Content-Type application/octet-stream; } location / { return 404; } }