# Environment NODE_ENV=development PORT=4000 # Database DB_HOST=localhost DB_PORT=5432 DB_USERNAME=cloudhost DB_PASSWORD=cloudhost_secret DB_DATABASE=cloudhost # JWT JWT_SECRET=your-super-secret-jwt-key-change-in-production JWT_EXPIRES_IN=1h JWT_REFRESH_SECRET=your-refresh-secret-key-change-in-production JWT_REFRESH_EXPIRES_IN=7d # Redis REDIS_HOST=localhost REDIS_PORT=6379 # Container Registry (same Docker Registry v2, two hostnames) # Internal — Kaniko/build pods push here (ClusterIP, HTTP, fast) REGISTRY_URL=registry.cloudhost-builds.svc.cluster.local:5000 # External — kubelet pulls app images; also use for manual "docker push" (Ingress or NodePort) REGISTRY_PULL_URL=repo.3fase.ir # REGISTRY_PULL_URL=10.0.0.50:30500 REGISTRY_USERNAME=admin REGISTRY_PASSWORD=registry_secret # Central logging (Elasticsearch + Kibana) # In-cluster backend: leave ELASTICSEARCH_HOST unset (uses elasticsearch.logging.svc.cluster.local). # Local backend (npm run dev): API auto-runs kubectl port-forward when host is loopback # ELASTICSEARCH_HOST=127.0.0.1 # ELASTICSEARCH_PORT=9200 # ELASTICSEARCH_AUTO_PORT_FORWARD=false # ELASTIC_PASSWORD=CloudHost2024!Secure # KIBANA_SYSTEM_PASSWORD=Kibana2024!System # LOGGING_ELASTICSEARCH_IMAGE=localhost:30500/elasticsearch:8.12.0 # LOGGING_KIBANA_IMAGE=localhost:30500/kibana:8.12.0 # Build BUILD_NAMESPACE=cloudhost-builds BUILD_SERVICE_ACCOUNT=kaniko-builder # Platform PLATFORM_DOMAIN=apps.cloudhost.local UPLOAD_DIR=./uploads # PVC resize: use a dynamic StorageClass with allowVolumeExpansion (k3s: rancher.io/local-path) PLATFORM_STORAGE_CLASS=cloudhost-expandable PLATFORM_CREATE_STORAGE_CLASS=true PLATFORM_STORAGE_PROVISIONER=rancher.io/local-path