Typebot-chart/templates/deployment.yaml
2025-03-25 01:46:17 +01:00

236 lines
8.6 KiB
YAML

---
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