apiVersion: v1 kind: Namespace metadata: name: doormile Read 1 file Found the critical issue — INTERNAL_API_KEY not set in the manifest means all /internal/* endpoode explicitly rejects empty keys). That plus the NATS_URL duplicate. Here's the corrected miletruth.yaml with all missing env vars added. Run this on the server: cat > /root/kuberneteh.yaml << 'EOF' apiVersion: v1 kind: Namespace metadata: name: doormile --- apiVersion: apps/v1 kind: StatefulSet metadata: name: doormile namespace: doormile spec: serviceName: "doormile-service" replicas: 3 selector: matchLabels: app: doormile app-group: doormile-api template: metadata: labels: app: doormile app-group: do spec: containers: - name: doormile image: doormi imagePullPolicy: Always env: - name: ENV value: "production" - name: APP_PORT value: "8081" - name: DB_HO value: "31.97.228.132" - name: DB_PO value: "5433" - name: DB_NA value: "logistics" - name: DB_US value: "admin" - name: DB_PASSWORD value: "Pac - name: REDIS_HOST value: "31.97.228.132" - name: REDIS value: "6379" - name: REDIS_USER value: "adm - name: REDIS_PASSWORD value: "Package@321#" - name: JWT_S value: "DoormileSuperSecretJWTKey2026!" - name: NATS_ value: "nats://66.116.226.161:4223" - name: NATS_ value: "doormile" - name: NATS_PASSWORD value: "Pac - name: INTERNAL_API_KEY value: "doormile-internal-2024" --- apiVersion: v1 kind: Service metadata: name: doormile-service namespace: doormile spec: type: NodePort selector: app-group: doormile-api ports: - protocol: TCP port: 8081 targetPort: 808 nodePort: 30830