first commit
This commit is contained in:
commit
ebc5ffdbfb
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.DS_Store
|
4
Chart.yaml
Normal file
4
Chart.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
apiVersion: v2
|
||||
name: typebot
|
||||
version: 0.1.0
|
||||
description: Helm Chart for deploying Typebot with Traefik
|
2
templates/NOTES.txt
Normal file
2
templates/NOTES.txt
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
Thank you for installing {{ .Chart.Name }}!
|
0
templates/_helpers.tpl
Normal file
0
templates/_helpers.tpl
Normal file
172
templates/deployment.yaml
Normal file
172
templates/deployment.yaml
Normal file
@ -0,0 +1,172 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: typebot-builder
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: typebot-builder
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: typebot-builder
|
||||
spec:
|
||||
containers:
|
||||
- name: typebot-builder
|
||||
image: {{ .Values.image.builder.repository }}:{{ .Values.image.builder.tag }}
|
||||
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.domain.builder }}"
|
||||
- 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.extraEnv.disablesignup | quote }}
|
||||
- name: DEBUG
|
||||
value: {{ .Values.extraEnv.debug | quote }}
|
||||
- name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE
|
||||
value: {{ .Values.extraEnv.uploadmaxsize | quote }}
|
||||
- name: CHAT_API_TIMEOUT
|
||||
value: {{ .Values.extraEnv.chatAPItimeout | quote }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: typebot-viewer
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: typebot-viewer
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: typebot-viewer
|
||||
spec:
|
||||
containers:
|
||||
- name: viewer
|
||||
image: {{ .Values.image.viewer.repository }}:{{ .Values.image.viewer.tag }}
|
||||
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.domain.viewer }}"
|
||||
- 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.extraEnv.disablesignup | quote }}
|
||||
- name: DEBUG
|
||||
value: {{ .Values.extraEnv.debug | quote }}
|
||||
- name: NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE
|
||||
value: {{ .Values.extraEnv.uploadmaxsize | quote }}
|
||||
- name: CHAT_API_TIMEOUT
|
||||
value: {{ .Values.extraEnv.chatAPItimeout | quote }}
|
||||
---
|
||||
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
|
39
templates/ingress.yaml
Normal file
39
templates/ingress.yaml
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
{{- if .Values.ingress.enabled }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
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
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
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
|
||||
{{- end }}
|
12
templates/pvc.yaml
Normal file
12
templates/pvc.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: typebot-postgres-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.postgres.persistence.size }}
|
||||
storageClassName: {{ .Values.postgres.persistence.storageClass }}
|
52
templates/svc.yaml
Normal file
52
templates/svc.yaml
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: typebot-builder
|
||||
spec:
|
||||
selector:
|
||||
app: typebot-builder
|
||||
ports:
|
||||
- port: 3000
|
||||
targetPort: 3000
|
||||
protocol: TCP
|
||||
type: ClusterIP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: typebot-viewer
|
||||
spec:
|
||||
selector:
|
||||
app: typebot-viewer
|
||||
ports:
|
||||
- port: 3000
|
||||
targetPort: 3000
|
||||
protocol: TCP
|
||||
type: ClusterIP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: typebot-postgres
|
||||
spec:
|
||||
selector:
|
||||
app: typebot-postgres
|
||||
ports:
|
||||
- port: 5432
|
||||
targetPort: 5432
|
||||
protocol: TCP
|
||||
type: ClusterIP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: typebot-redis
|
||||
spec:
|
||||
selector:
|
||||
app: typebot-redis
|
||||
ports:
|
||||
- port: 6379
|
||||
targetPort: 6379
|
||||
protocol: TCP
|
||||
type: ClusterIP
|
54
values.yaml
Normal file
54
values.yaml
Normal file
@ -0,0 +1,54 @@
|
||||
domain:
|
||||
viewer: typebot.example.com
|
||||
builder: typebot_builder.example.com
|
||||
email: admin@example.com
|
||||
encryption: changeme
|
||||
|
||||
postgres:
|
||||
user: typebot
|
||||
password: changeme
|
||||
db: typebot
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
storageClass: standard
|
||||
|
||||
image:
|
||||
builder:
|
||||
repository: ghcr.io/baptistearno/typebot-builder
|
||||
tag: latest
|
||||
viewer:
|
||||
repository: ghcr.io/baptistearno/typebot-viewer
|
||||
tag: latest
|
||||
postgres:
|
||||
repository: postgres
|
||||
tag: 15
|
||||
|
||||
studio:
|
||||
enabled: true
|
||||
|
||||
s3:
|
||||
enabled: true
|
||||
accessKey: minio
|
||||
secretKey: minio123
|
||||
bucket: typebot
|
||||
port: 9000
|
||||
endpoint: localhost
|
||||
ssl: false
|
||||
region: us-east-1
|
||||
forcePathStyle: true
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
host: typebot-redis
|
||||
port: 6379
|
||||
|
||||
extraEnv:
|
||||
disablesignup: "false"
|
||||
debug: "false"
|
||||
uploadmaxsize: "10000000"
|
||||
chatAPItimeout: "30000"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: traefik
|
Loading…
x
Reference in New Issue
Block a user