--- apiVersion: apps/v1 kind: Deployment metadata: name: typebot-builder spec: replicas: 1 selector: matchLabels: app: typebot-builder template: metadata: labels: app: typebot-builder spec: initContainers: - name: wait-for-postgres image: busybox command: - /bin/sh - -c - > until nc -z typebot-postgres 5432; do echo "Waiting for PostgreSQL..."; sleep 2; done; containers: - name: typebot-builder image: {{ .Values.image.builder.repository }}:{{ .Values.image.builder.tag }} command: ["/bin/sh", "-c", "/app/builder-entrypoint.sh"] ports: - containerPort: 3000 env: - name: DATABASE_URL value: "postgresql://{{ .Values.postgres.user }}:{{ .Values.postgres.password }}@typebot-postgres:5432/{{ .Values.postgres.db }}" - name: ENCRYPTION_SECRET value: "{{ .Values.encryption }}" - name: NEXTAUTH_URL value: "https://{{ .Values.ingress.entrypoint.builder.domain }}{{- if eq .Values.ingress.entrypoint.builder.name "traefik" }}:8080{{ end }}" - name: NEXT_PUBLIC_VIEWER_URL value: "https://{{ .Values.ingress.entrypoint.viewer.domain }}{{- if eq .Values.ingress.entrypoint.viewer.name "traefik" }}:8080{{ end }}" - name: DEFAULT_WORKSPACE_PLAN value: "{{ .Values.configuration.plan }}" - name: ADMIN_EMAIL value: "{{ .Values.email }}" {{- if .Values.redis.enabled }} - name: REDIS_URL value: "redis://{{ .Values.redis.host }}:{{ .Values.redis.port }}" {{- end }} {{- if .Values.s3.enabled }} - name: S3_ACCESS_KEY value: {{ .Values.s3.accessKey | quote }} - name: S3_SECRET_KEY value: {{ .Values.s3.secretKey | quote }} - name: S3_BUCKET value: {{ .Values.s3.bucket | quote }} - name: S3_PORT value: {{ .Values.s3.port | quote }} - name: S3_ENDPOINT value: {{ .Values.s3.endpoint | quote }} - name: S3_SSL value: {{ .Values.s3.ssl | quote }} - name: S3_REGION value: {{ .Values.s3.region | quote }} - name: S3_FORCE_PATH_STYLE value: {{ .Values.s3.forcePathStyle | quote }} {{- end }} - name: DISABLE_SIGNUP value: {{ .Values.configuration.disablesignup | quote }} - name: DEBUG value: {{ .Values.configuration.debug | quote }} - name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE value: {{ .Values.configuration.uploadmaxsize | quote }} - name: CHAT_API_TIMEOUT value: {{ .Values.configuration.chatAPItimeout | quote }} {{- if .Values.smtp.username }} - name: SMTP_USERNAME value: {{ .Values.smtp.username | quote }} - name: SMTP_PASSWORD value: {{ .Values.smtp.password | quote }} - name: SMTP_HOST value: {{ .Values.smtp.host | quote }} - name: SMTP_PORT value: {{ .Values.smtp.port | quote }} - name: SMTP_SECURE value: {{ .Values.smtp.secure | quote }} - name: SMTP_IGNORE_TLS value: {{ .Values.smtp.ignore_tls | quote }} - name: SMTP_AUTH_DISABLED value: {{ .Values.smtp.auth_disabled | quote }} - name: NEXT_PUBLIC_SMTP_FROM value: {{ .Values.smtp.next_public_smtp_from | quote }} {{- end }} --- apiVersion: apps/v1 kind: Deployment metadata: name: typebot-viewer spec: replicas: 1 selector: matchLabels: app: typebot-viewer template: metadata: labels: app: typebot-viewer spec: initContainers: - name: wait-for-postgres image: busybox command: - /bin/sh - -c - > until nc -z typebot-postgres 5432; do echo "Waiting for PostgreSQL..."; sleep 2; done; containers: - name: viewer image: {{ .Values.image.viewer.repository }}:{{ .Values.image.viewer.tag }} command: ["/bin/sh", "-c", "/app/viewer-entrypoint.sh"] ports: - containerPort: 3000 env: - name: DATABASE_URL value: "postgresql://{{ .Values.postgres.user }}:{{ .Values.postgres.password }}@typebot-postgres:5432/{{ .Values.postgres.db }}" - name: ENCRYPTION_SECRET value: "{{ .Values.encryption }}" - name: NEXTAUTH_URL value: "https://{{ .Values.ingress.entrypoint.builder.domain }}{{- if eq .Values.ingress.entrypoint.builder.name "traefik" }}:8080{{ end }}" - name: NEXT_PUBLIC_VIEWER_URL value: "https://{{ .Values.ingress.entrypoint.viewer.domain }}{{- if eq .Values.ingress.entrypoint.viewer.name "traefik" }}:8080{{ end }}" - name: DEFAULT_WORKSPACE_PLAN value: "{{ .Values.configuration.plan }}" - name: ADMIN_EMAIL value: "{{ .Values.email }}" {{- if .Values.redis.enabled }} - name: REDIS_URL value: "redis://{{ .Values.redis.host }}:{{ .Values.redis.port }}" {{- end }} {{- if .Values.s3.enabled }} - name: S3_ACCESS_KEY value: {{ .Values.s3.accessKey | quote }} - name: S3_SECRET_KEY value: {{ .Values.s3.secretKey | quote }} - name: S3_BUCKET value: {{ .Values.s3.bucket | quote }} - name: S3_PORT value: {{ .Values.s3.port | quote }} - name: S3_ENDPOINT value: {{ .Values.s3.endpoint | quote }} - name: S3_SSL value: {{ .Values.s3.ssl | quote }} - name: S3_REGION value: {{ .Values.s3.region | quote }} - name: S3_FORCE_PATH_STYLE value: {{ .Values.s3.forcePathStyle | quote }} {{- end }} - name: DISABLE_SIGNUP value: {{ .Values.configuration.disablesignup | quote }} - name: DEBUG value: {{ .Values.configuration.debug | quote }} - name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE value: {{ .Values.configuration.uploadmaxsize | quote }} - name: CHAT_API_TIMEOUT value: {{ .Values.configuration.chatAPItimeout | quote }} {{- if .Values.smtp.username }} - name: SMTP_USERNAME value: {{ .Values.smtp.username | quote }} - name: SMTP_PASSWORD value: {{ .Values.smtp.password | quote }} - name: SMTP_HOST value: {{ .Values.smtp.host | quote }} - name: SMTP_PORT value: {{ .Values.smtp.port | quote }} - name: SMTP_SECURE value: {{ .Values.smtp.secure | quote }} - name: SMTP_IGNORE_TLS value: {{ .Values.smtp.ignore_tls | quote }} - name: SMTP_AUTH_DISABLED value: {{ .Values.smtp.auth_disabled | quote }} - name: NEXT_PUBLIC_SMTP_FROM value: {{ .Values.smtp.next_public_smtp_from | quote }} {{- end }} --- apiVersion: apps/v1 kind: Deployment metadata: name: typebot-postgres spec: replicas: 1 selector: matchLabels: app: typebot-postgres template: metadata: labels: app: typebot-postgres spec: containers: - name: postgres image: {{ .Values.image.postgres.repository }}:{{ .Values.image.postgres.tag }} ports: - containerPort: 5432 env: - name: POSTGRES_USER value: {{ .Values.postgres.user | quote }} - name: POSTGRES_PASSWORD value: {{ .Values.postgres.password | quote }} - name: POSTGRES_DB value: {{ .Values.postgres.db | quote }} volumeMounts: - name: postgres-storage mountPath: /var/lib/postgresql/data volumes: - name: postgres-storage persistentVolumeClaim: claimName: typebot-postgres-pvc --- apiVersion: apps/v1 kind: Deployment metadata: name: typebot-redis spec: replicas: 1 selector: matchLabels: app: typebot-redis template: metadata: labels: app: typebot-redis spec: containers: - name: redis image: redis:7 ports: - containerPort: 6379