Enhancement: Kubernetes Support & Helm Chart #20

Closed
opened 2026-02-16 12:51:08 -05:00 by yindo · 7 comments
Owner

Originally created by @hofq on GitHub (Feb 6, 2022).

It would be cool if you could publish an Helm Chart & add Kubernetes support to allow scalabale self-hosting

Originally created by @hofq on GitHub (Feb 6, 2022). It would be cool if you could publish an Helm Chart & add Kubernetes support to allow scalabale self-hosting
yindo added the enhancement label 2026-02-16 12:51:08 -05:00
yindo closed this issue 2026-02-16 12:51:08 -05:00
Author
Owner

@djpbessems commented on GitHub (Jul 23, 2022):

I have it running in K8s just fine without a helm chart; just look at the docker-compose.yml and write an appropriate manifest...

In fact, I'll leave you my manifest (I edited out specific details for my setup, so you'll have to re-add volumemounts, configmaps and secrets)

apiVersion: v1
kind: Service
metadata:
  name: revolt
spec:
  ports:
    - protocol: TCP
      name: api
      port: 8000
    - protocol: TCP
      name: events
      port: 9000
    - protocol: TCP
      name: web
      port: 5000
    - protocol: TCP
      name: redis
      port: 6379
  selector:
    app: revolt
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: revolt
  name: revolt
spec:
  replicas: 1
  selector:
    matchLabels:
      app: revolt
  template:
    metadata:
      labels:
        app: revolt
    spec:
      containers:
      - image: ghcr.io/revoltchat/server:20220715-1
        name: api
        envFrom:
        - configMapRef:
            name: configmap-revolt-conf
        - secretRef:
            name: secret-revolt-conf
        ports:
        - containerPort: 8000
          name: api
      - image: ghcr.io/revoltchat/bonfire:20220715-1
        name: events
        ports:
        - containerPort: 9000
          name: events
      - image: ghcr.io/revoltchat/client:master
        name: web
        envFrom:
        - configMapRef:
            name: configmap-revolt-conf
        - secretRef:
            name: secret-revolt-conf
        ports:
        - containerPort: 5000
          name: web
      - name: redis
        image: redis:alpine
        ports:
        - name: redis
          containerPort: 6379
      - image: mongo
        name: database
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: strip-prefix-revolt
spec:
  stripPrefix:
    prefixes:
      - /api
      - /ws
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: revolt
spec:
  entryPoints:
    - websecure
  routes:
  - match: Host(`chat.example.org`)
    kind: Rule
    services:
    - name: revolt
      port: 5000
  - match: Host(`chat.example.org`) && PathPrefix(`/api`)
    kind: Rule
    services:
    - name: revolt
      port: 8000
    middlewares:
    - name: strip-prefix-revolt
  - match: Host(`chat.example.org`) && PathPrefix(`/ws`)
    kind: Rule
    services:
    - name: revolt
      port: 9000
    middlewares:
    - name: strip-prefix-revolt
@djpbessems commented on GitHub (Jul 23, 2022): I have it running in K8s just fine without a helm chart; just look at the docker-compose.yml and write an appropriate manifest... In fact, I'll leave you my manifest (I edited out specific details for my setup, so you'll have to re-add volumemounts, configmaps and secrets) ```yaml apiVersion: v1 kind: Service metadata: name: revolt spec: ports: - protocol: TCP name: api port: 8000 - protocol: TCP name: events port: 9000 - protocol: TCP name: web port: 5000 - protocol: TCP name: redis port: 6379 selector: app: revolt --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: revolt name: revolt spec: replicas: 1 selector: matchLabels: app: revolt template: metadata: labels: app: revolt spec: containers: - image: ghcr.io/revoltchat/server:20220715-1 name: api envFrom: - configMapRef: name: configmap-revolt-conf - secretRef: name: secret-revolt-conf ports: - containerPort: 8000 name: api - image: ghcr.io/revoltchat/bonfire:20220715-1 name: events ports: - containerPort: 9000 name: events - image: ghcr.io/revoltchat/client:master name: web envFrom: - configMapRef: name: configmap-revolt-conf - secretRef: name: secret-revolt-conf ports: - containerPort: 5000 name: web - name: redis image: redis:alpine ports: - name: redis containerPort: 6379 - image: mongo name: database --- apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: strip-prefix-revolt spec: stripPrefix: prefixes: - /api - /ws --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: revolt spec: entryPoints: - websecure routes: - match: Host(`chat.example.org`) kind: Rule services: - name: revolt port: 5000 - match: Host(`chat.example.org`) && PathPrefix(`/api`) kind: Rule services: - name: revolt port: 8000 middlewares: - name: strip-prefix-revolt - match: Host(`chat.example.org`) && PathPrefix(`/ws`) kind: Rule services: - name: revolt port: 9000 middlewares: - name: strip-prefix-revolt ```
Author
Owner

@hofq commented on GitHub (Jul 23, 2022):

cool, thank you.

@hofq commented on GitHub (Jul 23, 2022): cool, thank you.
Author
Owner

@gravufo commented on GitHub (Apr 10, 2025):

Having it run in k8s versus having an official helm chart and documentation are two very distinct things.
I think it would make sense to have a helm chart or at least documentation in this day and age where running a cluster is almost easier than installing docker...

@gravufo commented on GitHub (Apr 10, 2025): Having it run in k8s versus having an official helm chart and documentation are two very distinct things. I think it would make sense to have a helm chart or at least documentation in this day and age where running a cluster is almost easier than installing docker...
Author
Owner

@vguttmann commented on GitHub (Aug 12, 2025):

I'm the sysadmin at a student project (Formula Student team), and we wanna move away from teams and onto a platform where we actually own our data.
An official helm chart would be very helpful here, since then we can rely on kubernetes' improved stability (specifically the stability that Infrastructure-as-Code brings) versus just hosting it bare-metal, which is important for something that we'd like to choose as our main communication solution.

@vguttmann commented on GitHub (Aug 12, 2025): I'm the sysadmin at a student project (Formula Student team), and we wanna move away from teams and onto a platform where we actually own our data. An official helm chart would be very helpful here, since then we can rely on kubernetes' improved stability (specifically the stability that Infrastructure-as-Code brings) versus just hosting it bare-metal, which is important for something that we'd like to choose as our main communication solution.
Author
Owner

@insertish commented on GitHub (Aug 12, 2025):

We're also interested in potentially moving our infrastructure to Kubernetes down the line, there was some recent discussion in the development server (invite, message link) where a Kubernetes deployment was shared: https://github.com/tyzbit/fleet-infra/tree/main/clusters/corpus/apps/personal/revolt

I'll just reopen the issue for now and hopefully we can revisit it in the near future.

@insertish commented on GitHub (Aug 12, 2025): We're also interested in potentially moving our infrastructure to Kubernetes down the line, there was some recent discussion in the development server ([invite](https://rvlt.gg/API), [message link](http://localhost:5174/server/01G3PKD1YJ2H484MDX6KP9WRBN/channel/01JAAN6CJBJ8P414F663R9C630/01K1YQVYV6SEK4XJQXE4TTVPK7)) where a Kubernetes deployment was shared: https://github.com/tyzbit/fleet-infra/tree/main/clusters/corpus/apps/personal/revolt I'll just reopen the issue for now and hopefully we can revisit it in the near future.
Author
Owner

@rastaman commented on GitHub (Oct 5, 2025):

I also contributed this PR in case it helps: https://github.com/revoltchat/self-hosted/pull/172 , it is really basic but works in my case, i hope to get time to further improve it, it is only a basis.

Edit: my code is really not good (but started only 1 day ago), i suggest to use https://github.com/cclloyd/helm-revolt instead. I look forward to port GatewayAPI support in it.

@rastaman commented on GitHub (Oct 5, 2025): I also contributed this PR in case it helps: https://github.com/revoltchat/self-hosted/pull/172 , it is really basic but works in my case, i hope to get time to further improve it, it is only a basis. Edit: my code is really not good (but started only 1 day ago), i suggest to use https://github.com/cclloyd/helm-revolt instead. I look forward to port GatewayAPI support in it.
Author
Owner

@hofq commented on GitHub (Oct 8, 2025):

GatewayAPI is still incomplete. I personally don't see the need right now

https://github.com/cclloyd/helm-revolt Works, Thanks!

@hofq commented on GitHub (Oct 8, 2025): GatewayAPI is still incomplete. I personally don't see the need right now https://github.com/cclloyd/helm-revolt Works, Thanks!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: stoatchat/self-hosted#20