feat: smtp and traefik ingresses

This commit is contained in:
NicolasHorde 2025-03-24 20:28:18 +01:00
parent cffe69cbd2
commit dda4c7c54f
3 changed files with 100 additions and 45 deletions

View File

@ -24,7 +24,11 @@ spec:
- name: ENCRYPTION_SECRET
value: "{{ .Values.encryption }}"
- name: NEXTAUTH_URL
value: "https://{{ .Values.domain.builder }}"
value: "https://{{ .Values.ingress.entrypoint.builder.name }}"
- name: NEXT_PUBLIC_VIEWER_URL
value: "https://{{ .Values.ingress.entrypoint.viewer.name }}"
- name: DEFAULT_WORKSPACE_PLAN
value: "{{ .Values.configuration.plan }}""
- name: ADMIN_EMAIL
value: "{{ .Values.email }}"
{{- if .Values.redis.enabled }}
@ -50,13 +54,31 @@ spec:
value: {{ .Values.s3.forcePathStyle | quote }}
{{- end }}
- name: DISABLE_SIGNUP
value: {{ .Values.extraEnv.disablesignup | quote }}
value: {{ .Values.configuration.disablesignup | quote }}
- name: DEBUG
value: {{ .Values.extraEnv.debug | quote }}
value: {{ .Values.configuration.debug | quote }}
- name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE
value: {{ .Values.extraEnv.uploadmaxsize | quote }}
value: {{ .Values.configuration.uploadmaxsize | quote }}
- name: CHAT_API_TIMEOUT
value: {{ .Values.extraEnv.chatAPItimeout | quote }}
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
@ -83,7 +105,11 @@ spec:
- name: ENCRYPTION_SECRET
value: "{{ .Values.encryption }}"
- name: NEXTAUTH_URL
value: "https://{{ .Values.domain.viewer }}"
value: "https://{{ .Values.ingress.entrypoint.builder.name }}"
- name: NEXT_PUBLIC_VIEWER_URL
value: "https://{{ .Values.ingress.entrypoint.viewer.name }}"
- name: DEFAULT_WORKSPACE_PLAN
value: "{{ .Values.configuration.plan }}""
- name: ADMIN_EMAIL
value: "{{ .Values.email }}"
{{- if .Values.redis.enabled }}
@ -109,13 +135,31 @@ spec:
value: {{ .Values.s3.forcePathStyle | quote }}
{{- end }}
- name: DISABLE_SIGNUP
value: {{ .Values.extraEnv.disablesignup | quote }}
value: {{ .Values.configuration.disablesignup | quote }}
- name: DEBUG
value: {{ .Values.extraEnv.debug | quote }}
value: {{ .Values.configuration.debug | quote }}
- name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE
value: {{ .Values.extraEnv.uploadmaxsize | quote }}
value: {{ .Values.configuration.uploadmaxsize | quote }}
- name: CHAT_API_TIMEOUT
value: {{ .Values.extraEnv.chatAPItimeout | quote }}
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

View File

@ -1,39 +1,35 @@
---
{{- if .Values.ingress.enabled }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: typebot-builder
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ .Values.domain.builder }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: typebot-builder
port:
number: 3000
entryPoints:
- {{ entrypoint }}
routes:
- match: Host(` {{ .Values.ingress.entrypoint.builder.name }}`)
kind: Rule
services:
- name: typebot-builder
port: 3000
tls:
certResolver: {{ ingress_tls_resolver }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: typebot-viewer
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ .Values.domain.viewer }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: typebot-viewer
port:
number: 3000
entryPoints:
- {{ entrypoint }}
routes:
- match: Host(`{{ .Values.ingress.entrypoint.viewer.name }}`)
kind: Rule
services:
- name: typebot-viewer
port: 3000
tls:
certResolver: {{ .Values.ingress.tlsresolver }}
{{- end }}

View File

@ -1,6 +1,3 @@
domain:
viewer: typebot.example.com
builder: typebot_builder.example.com
email: admin@example.com
encryption: changeme
@ -15,10 +12,10 @@ postgres:
image:
builder:
repository: ghcr.io/baptistearno/typebot-builder
repository: baptistearno/typebot-builder
tag: latest
viewer:
repository: ghcr.io/baptistearno/typebot-viewer
repository: baptistearno/typebot-viewer
tag: latest
postgres:
repository: postgres
@ -43,12 +40,30 @@ redis:
host: typebot-redis
port: 6379
extraEnv:
configuration:
disablesignup: "false"
debug: "false"
uploadmaxsize: "10000000"
chatAPItimeout: "30000"
plan: "FREE"
ingress:
enabled: true
className: traefik
tlsresolver: hetzner
entrypoint:
viewer:
domain: typebot.kube.ia86.cc
name: websecure
builder:
domain: botbuilder.kube.ia86.cc
name: traefik
smtp:
username: ""
password: ""
host: ""
port: 25
secure: false
ignore_tls: false
auth_disabled: false
next_public_smtp_from: "'Typebot Notifications' <notifications@host.com>"