You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DISCLAIMER: This is a 3rd party project and has no affiliation with the Stoat.chat team.
This chart provides a means of deploying Stoat to kubernetes.
Minimal Setup
To use the minimal setup, you will require
A working kubernetes cluster
Persistent storage for MongoDB, Redis, MinIO, and RabbitMQ
A valid hostname and the ability to access it via HTTPS (such as cert-manager)
Generate required config keys. We provide a script to run in docker to generate it in this repo. (This is a
simplified version of the script provided by the self-hosted repo)
docker run --entrypoint /bin/ash -v ./:/data alpine/openssl /data/generate_config.sh
Fill out required config
global:
namespace: 'stoat'domain: 'stoat.example.com'ingress:
enabled: trueclassName: nginxannotations:
# Annotations may differ for other ingress controllers. Consult your documentation.nginx.ingress.kubernetes.io/rewrite-target: /$2nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'nginx.ingress.kubernetes.io/proxy-body-size: '0'# Or GatewayAPI Routesroute:
enabled: trueparentRefs:
- <Your parent ref here>secret:
vapid_key: ''vapid_public_key: ''encryption_key: ''
Fill out any other credentials you may need, such as RabbitMQ or other external charts.
Run helm install ./ stoat -f my_values.yaml
Once it's done setting itself, up, access it at your external URL. It may take a few minutes to spin up from scratch.
Congrats, you have a minimal working setup. A slightly more complete setup can be seen
at docs/example_values.yaml
However, you should not consider this setup production ready until the services provided by the external charts are
supplied elsewhere and with proper authentication.
Persistence
Persistence is handled by the subcharts. Consult the subcharts for more information.
The subcharts all support external connections, with the option to disable the built-in chart.
global:
subcharts:
# All but rabbitmq are full connection+auth strings.mongo: # mongodbenabled: true # Set to false to use external MongoDBconnection_url: ''redis:
enabled: true # Set to false to use external Redisconnection_url: ''minio:
enabled: true # Set to false to use external MinIOconnection_url: ''rabbitmq:
enabled: true # Set to false to use external RabbitMQhost: ''port: 5672username: 'rabbituser'password: 'rabbitpass'
Full Configuration
Global Settings
Chart Option
Description
Default
global.namespace
Namespace for the chart services
'stoat'
global.domainREQUIRED
Domain name used for access (e.g. ) stoat.example.com
''
global.secret.vapid_keyREQUIRED
VAPID private key for push notifications
''
global.secret.vapid_public_keyREQUIRED
VAPID public key for push notifications
''
global.secret.encryption_keyREQUIRED
Encryption key for sensitive data
''
global.web.port
Port for the web frontend
5000
global.api.port
Port for the API server
14702
global.bonfire.port
Port for the bonfire events service
14703
global.autumn.port
Port for the autumn file server
14704
global.january.port
Port for the january metadata proxy
14705
global.gifbox.port
Port for the gifbox proxy
14706
global.crond.port
Port for the crond scheduler
80
global.pushd.port
Port for the pushd notification service
80
global.ingress.enabled
Enable Kubernetes Ingress
false
global.ingress.className
Ingress class name (e.g., ) nginx
''
global.ingress.annotations
Additional Ingress annotations (map)
{}
global.ingress.extra_hosts
Additional hosts for Ingress (list)
[]
global.route.enabled
Enable GatewayAPI Routes
false
global.route.parentRefs
Parent references for route (required)
[]
global.route.annotations
Additional annotations for routes
{}
global.serviceAccount.create
Whether to create a Kubernetes service account
true
global.serviceAccount.automount
Automount service account tokens
true
global.serviceAccount.annotations
Additional annotations for ServiceAccount
{}
global.serviceAccount.name
ServiceAccount name override
''
global.subcharts.mongo.enabled
Enable built-in MongoDB subchart
true
global.subcharts.mongo.connection_url
MongoDB connection string (if using external)
''
global.subcharts.redis.enabled
Enable built-in Redis subchart
true
global.subcharts.redis.connection_url
Redis connection string (if using external)
''
global.subcharts.minio.enabled
Enable built-in MinIO subchart
true
global.subcharts.minio.connection_url
MinIO connection string (if using external)
''
global.subcharts.rabbitmq.enabled
Enable built-in RabbitMQ subhcart
true
global.subcharts.rabbitmq.host
RabbitMQ hostname (if using external)
''
global.subcharts.rabbitmq.port
RabbitMQ port (if using external)
5672
global.subcharts.rabbitmq.username
RabbitMQ username
'rabbituser'
global.subcharts.rabbitmq.password
RabbitMQ password
'rabbitpass'
Component Specific Settings
Subcharts
MongoDB, Redis, MinIO, and RabbitMQ are all subcharts. Consult their respective documentation for more information.