# Snikket — XMPP server (Prosody-based) # Unpinned — scheduler places freely, local-path PVC # TLS terminated externally by Caddy at venture ingress VPS # NodePorts: 32381 (web/admin), 32382 (XMPP client), 32383 (XMPP federation), 32384 (file transfer proxy) # # Deploy: # kubectl apply -f snikket.yaml -n # # Caddy must proxy port 80 traffic (invites/admin portal) via NodePort 32381 # XMPP client connections on 32382 must be reachable directly (not HTTP — raw TCP) # XMPP federation on 32383 must be reachable directly (raw TCP) --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: snikket-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: snikket-web spec: replicas: 1 selector: matchLabels: app: snikket-web template: metadata: labels: app: snikket-web spec: containers: - name: snikket-web image: snikket/snikket-server:latest command: ["web"] ports: - containerPort: 80 volumeMounts: - name: snikket-data mountPath: /snikket volumes: - name: snikket-data persistentVolumeClaim: claimName: snikket-pvc --- apiVersion: apps/v1 kind: Deployment metadata: name: snikket-server spec: replicas: 1 selector: matchLabels: app: snikket-server template: metadata: labels: app: snikket-server spec: containers: - name: snikket-server image: snikket/snikket-server:latest command: ["server"] ports: - containerPort: 5222 - containerPort: 5269 - containerPort: 5000 volumeMounts: - name: snikket-data mountPath: /snikket volumes: - name: snikket-data persistentVolumeClaim: claimName: snikket-pvc --- apiVersion: v1 kind: Service metadata: name: snikket-web spec: selector: app: snikket-web ports: - port: 80 targetPort: 80 nodePort: 32381 type: NodePort --- apiVersion: v1 kind: Service metadata: name: snikket spec: selector: app: snikket-server ports: - name: xmpp-client port: 5222 targetPort: 5222 nodePort: 32382 - name: xmpp-federation port: 5269 targetPort: 5269 nodePort: 32383 - name: file-transfer port: 5000 targetPort: 5000 nodePort: 32384 type: NodePort