Update self-hosted repo to use latest images and web interface #124

Open
opened 2026-02-16 12:51:31 -05:00 by yindo · 76 comments
Owner

Originally created by @insertish on GitHub (Nov 7, 2025).

The repository is slightly out of date currently, it's still usable but it needs updating.
One big blocker is the lack of Docker images for Stoat for Web which needs to be solved first.
All images are being published under the stoatchat on ghcr now though.

I would usually refactor this repo but I am working full time, help appreciated!

Edit: Just added replacing Minio as a sub-issue

Originally created by @insertish on GitHub (Nov 7, 2025). The repository is slightly out of date currently, it's still usable but it needs updating. One big blocker is the lack of Docker images for Stoat for Web which needs to be solved first. All images are being published under the stoatchat on ghcr now though. I would usually refactor this repo but I am working full time, help appreciated! Edit: Just added replacing Minio as a sub-issue
yindo added the help wanted label 2026-02-16 12:51:31 -05:00
Author
Owner

@Flash1232 commented on GitHub (Nov 16, 2025):

Currently looking into dockerizing the Stoat for Web frontend, will update with any progress

@Flash1232 commented on GitHub (Nov 16, 2025): Currently looking into dockerizing the Stoat for Web frontend, will update with any progress
Author
Owner

@Giggitybyte commented on GitHub (Dec 3, 2025):

Following this with great interest!

@Giggitybyte commented on GitHub (Dec 3, 2025): Following this with great interest!
Author
Owner

@fambosyt commented on GitHub (Dec 9, 2025):

Does this mean that this repository will be updated soon?

@fambosyt commented on GitHub (Dec 9, 2025): Does this mean that this repository will be updated soon?
Author
Owner

@Flash1232 commented on GitHub (Dec 14, 2025):

https://github.com/stoatchat/for-web/pull/522 is now ready for review (note this is the pre-dependency for updating this repo).

As soon as someone from the team gets around to review and test maybe Santa has something up his sleeve to update this repo so that everything is rounded up. Keep in mind that progress can sometimes be slow and that's totally fine, we're volunteers after all.

Happy Holidays to everyone🎄🎁

@Flash1232 commented on GitHub (Dec 14, 2025): https://github.com/stoatchat/for-web/pull/522 is now ready for review (note this is the pre-dependency for updating this repo). As soon as someone from the team gets around to review and test maybe Santa has something up his sleeve to update this repo so that everything is rounded up. Keep in mind that progress can sometimes be slow and that's totally fine, we're volunteers after all. Happy Holidays to everyone🎄🎁
Author
Owner

@Giggitybyte commented on GitHub (Dec 14, 2025):

Very happy to hear!

@Giggitybyte commented on GitHub (Dec 14, 2025): Very happy to hear!
Author
Owner

@KloWhrhyde commented on GitHub (Dec 17, 2025):

Okay i just finished to tinker and deploy it on my unraid server. So if help needed to help update the stack, would gladly help whenever i can if you point me in the right direction. Can't wait for the Voice chat rework ...

@KloWhrhyde commented on GitHub (Dec 17, 2025): Okay i just finished to tinker and deploy it on my unraid server. So if help needed to help update the stack, would gladly help whenever i can if you point me in the right direction. Can't wait for the Voice chat rework ...
Author
Owner

@edememinov commented on GitHub (Dec 18, 2025):

Any chance you got video chat and screen sharing to work? Since the V2 Voice API is live, I thought maybe there's a branch with those features enabled.

@edememinov commented on GitHub (Dec 18, 2025): Any chance you got video chat and screen sharing to work? Since the V2 Voice API is live, I thought maybe there's a branch with those features enabled.
Author
Owner

@Giggitybyte commented on GitHub (Jan 8, 2026):

Hope this hasn't been forgotten!

@Giggitybyte commented on GitHub (Jan 8, 2026): Hope this hasn't been forgotten!
Author
Owner

@remusjohn1 commented on GitHub (Jan 8, 2026):

Hope this hasn't been forgotten!

I'm sure the amount of free time he's putting into it it's as much as he can/is willing to spend on it.

Thanks for the good work, Luke!

@remusjohn1 commented on GitHub (Jan 8, 2026): > Hope this hasn't been forgotten! I'm sure the amount of free time he's putting into it it's as much as he can/is willing to spend on it. Thanks for the good work, Luke!
Author
Owner

@baptisterajaut commented on GitHub (Feb 9, 2026):

Hi

Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster instead of docker/docker-compose? Helmfile is way more flexible and let you manage both a local one-click deployment and a remote more complex deployment

I made this to deploy lasuitenumerique in that regard => https://github.com/baptisterajaut/lasuite-platform , I can easily port most of the "code" to create a stoatchat-platform that will install everything thats required, or letting admins use their existing infrastructure. (Also by funny coincidence I already deploy livekit with lasuite)

Do tell me if that would be something someone would be looking for.

Cheers

@baptisterajaut commented on GitHub (Feb 9, 2026): Hi Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster instead of docker/docker-compose? Helmfile is way more flexible and let you manage both a local one-click deployment and a remote more complex deployment I made this to deploy lasuitenumerique in that regard => https://github.com/baptisterajaut/lasuite-platform , I can easily port most of the "code" to create a stoatchat-platform that will install everything thats required, or letting admins use their existing infrastructure. (Also by funny coincidence I already deploy livekit with lasuite) Do tell me if that would be something someone would be looking for. Cheers
Author
Owner

@mdiluz commented on GitHub (Feb 9, 2026):

+1 to a helm file. It might be good to include a quick guide to installing k3s and helm?

@mdiluz commented on GitHub (Feb 9, 2026): +1 to a helm file. It might be good to include a quick guide to installing k3s and helm?
Author
Owner

@kawazoe commented on GitHub (Feb 9, 2026):

Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster

My vote goes against this. While k8s is much more capable for large, complex applications at the scale of hundreds of micro-services with dozens of teams needing granular permissions, this is not necessary for ordinary people self-hosting this project in a closet. Tons of people really just want an easy way to add StoatChat to their TrueNAS machine like they do for immich, plex, or maybe forgo, as a way to take back control of their messaging infrastructure. Setting up a k8s cluster correctly is beyond the expertise I would expect from this audience and would adversely impact adoption.

If the project goes this way, I hope it also continues to support a simpler compose-based deployment workflow.

@kawazoe commented on GitHub (Feb 9, 2026): > Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster My vote goes against this. While k8s is much more capable for large, complex applications at the scale of hundreds of micro-services with dozens of teams needing granular permissions, this is not necessary for *ordinary people* self-hosting this project in a closet. Tons of people really just want an easy way to add StoatChat to their TrueNAS machine like they do for immich, plex, or *maybe* forgo, as a way to take back control of their messaging infrastructure. Setting up a k8s cluster correctly is beyond the expertise I would expect from this audience and would adversely impact adoption. If the project goes this way, I hope it also continues to support a simpler compose-based deployment workflow.
Author
Owner

@baptisterajaut commented on GitHub (Feb 9, 2026):

Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster

My vote goes against this. While k8s is much more capable for large, complex applications at the scale of hundreds of micro-services with dozens of teams needing granular permissions, this is not necessary for ordinary people self-hosting this project in a closet. Tons of people really just want an easy way to add StoatChat to their TrueNAS machine like they do for immich, plex, or maybe forgo, as a way to take back control of their messaging infrastructure. Setting up a k8s cluster correctly is beyond the expertise I would expect from this audience and would adversely impact adoption.

If the project goes this way, I hope it also continues to support a simpler compose-based deployment workflow.

Sorry I have been unclear, my goal is not to replace this repo bit re-write it somewhere else with a different technology stack. I do understand the point of having docker compose, but I find it really annoying to deal with next to helm and helmfile

@baptisterajaut commented on GitHub (Feb 9, 2026): > > Would it be of interest if I were to basically re-write this repo to use helmfile for a kubernetes cluster > > My vote goes against this. While k8s is much more capable for large, complex applications at the scale of hundreds of micro-services with dozens of teams needing granular permissions, this is not necessary for _ordinary people_ self-hosting this project in a closet. Tons of people really just want an easy way to add StoatChat to their TrueNAS machine like they do for immich, plex, or _maybe_ forgo, as a way to take back control of their messaging infrastructure. Setting up a k8s cluster correctly is beyond the expertise I would expect from this audience and would adversely impact adoption. > > If the project goes this way, I hope it also continues to support a simpler compose-based deployment workflow. Sorry I have been unclear, my goal is not to replace this repo bit re-write it somewhere else with a different technology stack. I do understand the point of having docker compose, but I find it really annoying to deal with next to helm and helmfile
Author
Owner

@MichaelCDormann commented on GitHub (Feb 10, 2026):

I would definitely be interested in a helmfile version on top of the docker version

@MichaelCDormann commented on GitHub (Feb 10, 2026): I would definitely be interested in a helmfile version on top of the docker version
Author
Owner

@baptisterajaut commented on GitHub (Feb 10, 2026):

https://github.com/baptisterajaut/stoatchat-platform here you have.

Again, i don't intend to replace any official method. However, i can try to backport my changes in this docker-compose, if any of you found my way of doing things worthwhile.

Please note that i had to build and publish the new web-client on my own on the dockerhub, as https://github.com/stoatchat/for-web/pull/522 is not merged yet.

I haven't tested much of it, but voice calls in particular seems to be working.

Have a great day.

@baptisterajaut commented on GitHub (Feb 10, 2026): https://github.com/baptisterajaut/stoatchat-platform here you have. Again, i don't intend to replace any official method. However, i can try to backport my changes in this docker-compose, if any of you found my way of doing things worthwhile. Please note that i had to build and publish the new web-client on my own on the dockerhub, as https://github.com/stoatchat/for-web/pull/522 is not merged yet. I haven't tested much of it, but voice calls in particular seems to be working. Have a great day.
Author
Owner

@Logan7432 commented on GitHub (Feb 10, 2026):

Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice….

@Logan7432 commented on GitHub (Feb 10, 2026): Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice….
Author
Owner

@NocFA commented on GitHub (Feb 10, 2026):

Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice….

Just to add to this, I'm more than happy to help fund/pool and pay with I'm sure many others to get the self-hosted variant on par and ready to plug and play replace discord for people.
I'm not exactly rolling in money but I understand it's a lot of work and gratitude doesn't pay the bills.

@NocFA commented on GitHub (Feb 10, 2026): > Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice…. Just to add to this, I'm more than happy to help fund/pool and pay with I'm sure many others to get the self-hosted variant on par and ready to plug and play replace discord for people. I'm not exactly rolling in money but I understand it's a lot of work and gratitude doesn't pay the bills.
Author
Owner

@Blasto33 commented on GitHub (Feb 10, 2026):

Once we get this update, I'm definitely selfhosting and switching to Stoat. Discord has become unbearable.

@Blasto33 commented on GitHub (Feb 10, 2026): Once we get this update, I'm definitely selfhosting and switching to Stoat. Discord has become unbearable.
Author
Owner

@baptisterajaut commented on GitHub (Feb 10, 2026):

Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice….

Heres a (untested) drop-in replacement for the official compose.yml. Keep in mind it will use my own-built docker image, so i would suggest to reuse the script from my repo to publish it yourself if you do not trust me (and you shouldn't by default)

compose.yml (edited too)

Voice is disabled by default (livekit is a ressource hog) , enable it with docker compose --profile voice up -d

I will wait for an official docker image on the web client to do a proper PR for this repo

EDIT : adding voice require some more config that cannot be done with a drop-in replacement of just docker-compose (need to add some config in the toml + add a route in caddy) so here is a dirty script that you have to run after using generate_config.sh (i shouldve done a fork at this point) :

enable_voice.sh

EDIT 2 : all of this was missing so many pieces, nothing wouldve worked

@baptisterajaut commented on GitHub (Feb 10, 2026): > Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice…. ~~Heres a (untested) drop-in replacement for the official compose.yml. Keep in mind it will use my own-built docker image, so i would suggest to reuse the script from my repo to publish it yourself if you do not trust me (and you shouldn't by default)~~ ~~[compose.yml](https://github.com/user-attachments/files/25214459/compose.yml) (edited too)~~ ~~Voice is disabled by default (livekit is a ressource hog) , enable it with `docker compose --profile voice up -d`~~ ~~I will wait for an official docker image on the web client to do a proper PR for this repo~~ ~~EDIT : adding voice require some more config that cannot be done with a drop-in replacement of just docker-compose (need to add some config in the toml + add a route in caddy) so here is a dirty script that you have to run after using generate_config.sh (i shouldve done a fork at this point) :~~ ~~[enable_voice.sh](https://github.com/user-attachments/files/25214462/enable_voice.sh)~~ EDIT 2 : all of this was missing so many pieces, nothing wouldve worked
Author
Owner

@Logan7432 commented on GitHub (Feb 10, 2026):

Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice….

Heres a (untested) drop-in replacement for the official compose.yml. Keep in mind it will use my own-built docker image, so i would suggest to reuse the script from my repo to publish it yourself if you do not trust me (and you shouldn't by default)

compose.yml

Voice is disabled by default (livekit is a ressource hog) , enable it with docker compose --profile voice up -d

I will wait for an official docker image on the web client to do a proper PR for this repo

Thank you for providing this I’ll check it out. It would be really nice though to get an official release of this though. I wouldn’t also mind dropping a donation as if this gets good I won’t be paying for nitro anymore.

@Logan7432 commented on GitHub (Feb 10, 2026): > > Can we please get this long awaited update before the discord face/id requirements set in…. Me and my server want to make the switch but cannot due to it missing voice…. > > Heres a (untested) drop-in replacement for the official compose.yml. Keep in mind it will use my own-built docker image, so i would suggest to reuse the script from my repo to publish it yourself if you do not trust me (and you shouldn't by default) > > [compose.yml](https://github.com/user-attachments/files/25213336/compose.yml) > > Voice is disabled by default (livekit is a ressource hog) , enable it with `docker compose --profile voice up -d` > > I will wait for an official docker image on the web client to do a proper PR for this repo Thank you for providing this I’ll check it out. It would be really nice though to get an official release of this though. I wouldn’t also mind dropping a donation as if this gets good I won’t be paying for nitro anymore.
Author
Owner

@Logan7432 commented on GitHub (Feb 10, 2026):

Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on.

@Logan7432 commented on GitHub (Feb 10, 2026): Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on.
Author
Owner

@baptisterajaut commented on GitHub (Feb 10, 2026):

Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on.

Developing (and more precisely publishing) an iOS app is beyond annoying. I think the web client is already a pwa so it could be added as a safari app shortcut afaik (dont quote me on that)

@baptisterajaut commented on GitHub (Feb 10, 2026): > Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on. Developing (and more precisely publishing) an iOS app is beyond annoying. I think the web client is already a pwa so it could be added as a safari app shortcut afaik (dont quote me on that)
Author
Owner

@Logan7432 commented on GitHub (Feb 10, 2026):

Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on.

Developing (and more precisely publishing) an iOS app is beyond annoying. I think the web client is already a pwa so it could be added as a safari app shortcut afaik (dont quote me on that)

In PWA login fails (says Load Failed) for me but normal safari works fine. Also no notifications in PWA…. I like getting notified when I’m tagged or someone says something.

@Logan7432 commented on GitHub (Feb 10, 2026): > > Also seperate issue but related and sucks is the fact there’s no mobile app for IOS… not sure if this is going to work for people without app and it don’t seem like it’s being worked on. > > Developing (and more precisely publishing) an iOS app is beyond annoying. I think the web client is already a pwa so it could be added as a safari app shortcut afaik (dont quote me on that) In PWA login fails (says Load Failed) for me but normal safari works fine. Also no notifications in PWA…. I like getting notified when I’m tagged or someone says something.
Author
Owner

@kawazoe commented on GitHub (Feb 10, 2026):

Hi everyone,

Can we keep the conversation on topic? The PWA/iOS stuff is very interesting, but they really deserves their own tickets and we shouldn't be spamming all watchers for the docker compose release with these comments.

Thx

@kawazoe commented on GitHub (Feb 10, 2026): Hi everyone, Can we keep the conversation on topic? The PWA/iOS stuff is very interesting, but they really deserves their own tickets and we shouldn't be spamming all watchers for the docker compose release with these comments. Thx
Author
Owner

@Nemirtingas commented on GitHub (Feb 10, 2026):

Use better code like https://github.com/stoatchat/self-hosted/issues/176#issuecomment-3884569333

@Nemirtingas commented on GitHub (Feb 10, 2026): Use better code like https://github.com/stoatchat/self-hosted/issues/176#issuecomment-3884569333
Author
Owner

@fambosyt commented on GitHub (Feb 10, 2026):

Hier ist mein Docker-Compose-Container mit einem voll funktionsfähigen Stoat-Stack inklusive Voice-Chat v2 (LiveKit). Da er meine eigene Infrastruktur nutzt, müssen Sie ihn eventuell anpassen, aber die Einrichtung sollte nicht allzu schwierig sein.

Ich habe Caddy entfernt, weil ich einen anderen Proxy verwende (nginx Proxy Manager).

Stoat.zip

Sie müssen das Backend herunterladen, um es zu erstellen:

git clone https://github.com/revoltchat/backend revolt-backend

Danndocker compose up -d --build

how i self host it can you give me a full tutorial?

@fambosyt commented on GitHub (Feb 10, 2026): > Hier ist mein Docker-Compose-Container mit einem voll funktionsfähigen Stoat-Stack inklusive Voice-Chat v2 (LiveKit). Da er meine eigene Infrastruktur nutzt, müssen Sie ihn eventuell anpassen, aber die Einrichtung sollte nicht allzu schwierig sein. > > Ich habe Caddy entfernt, weil ich einen anderen Proxy verwende (nginx Proxy Manager). > > [Stoat.zip](https://github.com/user-attachments/files/25221121/Stoat.zip) > > Sie müssen das Backend herunterladen, um es zu erstellen: > > ``` > git clone https://github.com/revoltchat/backend revolt-backend > ``` > > Dann`docker compose up -d --build` how i self host it can you give me a full tutorial?
Author
Owner

@XorOwl commented on GitHub (Feb 10, 2026):

Here is my docker-compose with a fully working Stoat stack with voice chat v2 (livekit). You might need to adapt it because it uses my own infra, but shouldn't be too hard to make it work.

I removed caddy because I use another proxy (nginx proxy manager).

Stoat.zip

You need to download the backend to build it:

git clone https://github.com/revoltchat/backend revolt-backend

Then docker compose up -d --build

i tried building this, but javascript runs out of heap really fast. Watching it, it gets to about 4g and dies, making me think something in the chain is building in 32 bit? it's not a matter of host memory, unless it's suddenly needing more than 4gb in one call.

Has anyone else gotten this running?

@XorOwl commented on GitHub (Feb 10, 2026): > Here is my docker-compose with a fully working Stoat stack with voice chat v2 (livekit). You might need to adapt it because it uses my own infra, but shouldn't be too hard to make it work. > > I removed caddy because I use another proxy (nginx proxy manager). > > [Stoat.zip](https://github.com/user-attachments/files/25221121/Stoat.zip) > > You need to download the backend to build it: > > ``` > git clone https://github.com/revoltchat/backend revolt-backend > ``` > > Then `docker compose up -d --build` i tried building this, but javascript runs out of heap really fast. Watching it, it gets to about 4g and dies, making me think something in the chain is building in 32 bit? it's not a matter of host memory, unless it's suddenly needing more than 4gb in one call. Has anyone else gotten this running?
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

Here is my docker-compose with a fully working Stoat stack with voice chat v2 (livekit). You might need to adapt it because it uses my own infra, but shouldn't be too hard to make it work.

I removed caddy because I use another proxy (nginx proxy manager).

Stoat.zip

You need to download the backend to build it:

git clone https://github.com/revoltchat/backend revolt-backend

Then docker compose up -d --build

I'm confused as why you'd need to build the backend given the docker images are provided through ghcr

@baptisterajaut commented on GitHub (Feb 11, 2026): > Here is my docker-compose with a fully working Stoat stack with voice chat v2 (livekit). You might need to adapt it because it uses my own infra, but shouldn't be too hard to make it work. > > I removed caddy because I use another proxy (nginx proxy manager). > > [Stoat.zip](https://github.com/user-attachments/files/25221121/Stoat.zip) > > You need to download the backend to build it: > > ``` > git clone https://github.com/revoltchat/backend revolt-backend > ``` > > Then `docker compose up -d --build` I'm confused as why you'd need to build the backend given the docker images are provided through ghcr
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

Ok so sorry for everyone who lost time with my prior messages about "drop in replacement" that didnt work, i remade it from scratch and now you just run ./generate_config.sh domain or (./generate_config.sh domain --voice to enable voice support) , and that will generate all the required files in the folder to be able to run docker compose up -d . And i tested it (quickly), this time it will work. (i had to reduce the port range on livekit because it was killing the docker vm, sorry for everyone who had to endure my stupidty)

I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client )

Here are the files, enjoy :

stoat-compose.zip

Note : video support is not yet present in the new web-client, but i didnt want to use the deprecated one

Important

If you want to use custom credentials (and you should, especially because RabbitMQ management interface exposes its port directly):
Set env vars for generate_config.sh (writes them into Revolt.toml) and create a .env file with the same values (read by docker compose at runtime):

REDIS_PASSWORD=xxx RABBITMQ_PASS=yyy ./generate_config.sh domain.com
# .env
REDIS_PASSWORD=xxx
RABBITMQ_PASS=yyy

Available: REDIS_PASSWORD, RABBITMQ_USER, RABBITMQ_PASS, MINIO_ROOT_USER, MINIO_ROOT_PASSWORD.

After setup : edit Revolt.toml directly (search for the password/key you want to change), then create/update .env with the matching value so the infrastructure container picks it up too. Restart affected services with docker compose restart. No need to re-run generate_config.sh (which would regenerate VAPID keys and file encryption key).

@baptisterajaut commented on GitHub (Feb 11, 2026): Ok so sorry for everyone who lost time with my prior messages about "drop in replacement" that didnt work, i remade it from scratch and now you just run `./generate_config.sh domain` or (`./generate_config.sh domain --voice` to enable voice support) , and that will generate all the required files in the folder to be able to run `docker compose up -d` . And i tested it (quickly), this time it will work. (i had to reduce the port range on livekit because it was killing the docker vm, sorry for everyone who had to endure my stupidty) I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client ) Here are the files, enjoy : [stoat-compose.zip](https://github.com/user-attachments/files/25235788/stoat-compose.zip) Note : video support is not yet present in the new web-client, but i didnt want to use the deprecated one ## Important If you want to use custom credentials (and you should, especially because RabbitMQ management interface exposes its port directly): Set env vars for `generate_config.sh` (writes them into `Revolt.toml`) **and** create a `.env` file with the same values (read by `docker compose` at runtime): ```bash REDIS_PASSWORD=xxx RABBITMQ_PASS=yyy ./generate_config.sh domain.com ``` ``` # .env REDIS_PASSWORD=xxx RABBITMQ_PASS=yyy ``` Available: `REDIS_PASSWORD`, `RABBITMQ_USER`, `RABBITMQ_PASS`, `MINIO_ROOT_USER`, `MINIO_ROOT_PASSWORD`. After setup : edit `Revolt.toml` directly (search for the password/key you want to change), then create/update `.env` with the matching value so the infrastructure container picks it up too. Restart affected services with `docker compose restart`. No need to re-run `generate_config.sh` (which would regenerate VAPID keys and file encryption key).
Author
Owner

@XorOwl commented on GitHub (Feb 11, 2026):

I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client )

what's needed to point this back at the modern stoatchat interface? simple repo swap, or is it more complicated than that?

@XorOwl commented on GitHub (Feb 11, 2026): > I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client ) what's needed to point this back at the modern stoatchat interface? simple repo swap, or is it more complicated than that?
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client )

what's needed to point this back at the modern stoatchat interface? simple repo swap, or is it more complicated than that?

I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables).

If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section

@baptisterajaut commented on GitHub (Feb 11, 2026): > > I'm repeating my disclaimer from earlier : this will use my own-built webclient , not the one from stoat directly. If you want to build it and publish it yourself, look here : https://github.com/baptisterajaut/stoatchat-platform/tree/main/docker/client ) > > what's needed to point this back at the modern stoatchat interface? simple repo swap, or is it more complicated than that? I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables). If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section
Author
Owner

@XorOwl commented on GitHub (Feb 11, 2026):

Ah that explains it. your phrasing made it sound like you entirely built your own front end ui from scratch, thanks

@XorOwl commented on GitHub (Feb 11, 2026): Ah that explains it. your phrasing made it sound like you entirely built your own front end ui from scratch, thanks
Author
Owner

@adakac commented on GitHub (Feb 11, 2026):

I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables).

If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section

Hey there, I did this (followed by a docker compose pull) and the "upgrade" worked :)
But I can't seem to connect to the voice channel - I am getting a 400 on trying to "join the voice channel":

api-1            |  INFO  rocket::server::_                                                > Matched: (call) POST /channels/<target>/join_call
api-1            |  INFO  rocket::server::_                                                > Outcome: Success(400 Bad Request)
api-1            |  INFO  rocket::server::_                                                > Response succeeded.

Is this the current extend of it or should it work? Maybe I need another port for it? (but I think its WebRTC via TLS?)

@adakac commented on GitHub (Feb 11, 2026): > I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables). > > If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section Hey there, I did this (followed by a `docker compose pull`) and the "upgrade" worked :) But I can't seem to connect to the voice channel - I am getting a 400 on trying to "join the voice channel": ```api-1 | INFO rocket::server > POST /channels/example/join_call? text/plain: api-1 | INFO rocket::server::_ > Matched: (call) POST /channels/<target>/join_call api-1 | INFO rocket::server::_ > Outcome: Success(400 Bad Request) api-1 | INFO rocket::server::_ > Response succeeded. ``` Is this the current extend of it or should it work? Maybe I need another port for it? (but I think its WebRTC via TLS?)
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables).
If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section

Hey there, I did this (followed by a docker compose pull) and the "upgrade" worked :) But I can't seem to connect to the voice channel - I am getting a 400 on trying to "join the voice channel":

api-1            |  INFO  rocket::server::_                                                > Matched: (call) POST /channels/<target>/join_call
api-1            |  INFO  rocket::server::_                                                > Outcome: Success(400 Bad Request)
api-1            |  INFO  rocket::server::_                                                > Response succeeded.

Is this the current extend of it or should it work? Maybe I need another port for it? (but I think its WebRTC via TLS?)

Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ?

@baptisterajaut commented on GitHub (Feb 11, 2026): > > I'm sorry i don't understand the question. I am alredy using the modern interface, however stoatchat does not provide official images for it, therefore i build and publish it it myself (with some rewrite at runtime for the variables). > > If you want to change the source of the web client image, just modify the compose.yml and change the image name in the client section > > Hey there, I did this (followed by a `docker compose pull`) and the "upgrade" worked :) But I can't seem to connect to the voice channel - I am getting a 400 on trying to "join the voice channel": > > ``` > api-1 | INFO rocket::server::_ > Matched: (call) POST /channels/<target>/join_call > api-1 | INFO rocket::server::_ > Outcome: Success(400 Bad Request) > api-1 | INFO rocket::server::_ > Response succeeded. > ``` > > Is this the current extend of it or should it work? Maybe I need another port for it? (but I think its WebRTC via TLS?) Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ?
Author
Owner

@LordGuenni commented on GitHub (Feb 11, 2026):

I Managed To deploy everything with traefik in front as that is the Reverse Proxy i am using, i am also Building the Web Client from scratch at runtime, so it doesnt matter that there isnt an official Image.

Will share later as i am not Home rn.

@LordGuenni commented on GitHub (Feb 11, 2026): I Managed To deploy everything with traefik in front as that is the Reverse Proxy i am using, i am also Building the Web Client from scratch at runtime, so it doesnt matter that there isnt an official Image. Will share later as i am not Home rn.
Author
Owner

@dra66y commented on GitHub (Feb 11, 2026):

@baptisterajaut I used your script for a new setup for testing and it works great for port 80, but I want to run it under a different port because my main docker server already has port 80 taken and I use nginx proxy manager on it.
These instructions work for the regular stoat self host, but don't seem to work for your setup https://github.com/stoatchat/self-hosted/tree/main?tab=readme-ov-file#placing-behind-another-reverse-proxy-or-another-port I've tried quite a few things and it just won't respond on a port other then 80

Edit: Sorry, I figured it out. Caddy assumes https if you use an https address and when both caddy and nginx are using https it is unhappy. Changing the SITE_ADDRESS to http fixes that.

@dra66y commented on GitHub (Feb 11, 2026): @baptisterajaut I used your script for a new setup for testing and it works great for port 80, but I want to run it under a different port because my main docker server already has port 80 taken and I use nginx proxy manager on it. These instructions work for the regular stoat self host, but don't seem to work for your setup https://github.com/stoatchat/self-hosted/tree/main?tab=readme-ov-file#placing-behind-another-reverse-proxy-or-another-port I've tried quite a few things and it just won't respond on a port other then 80 Edit: Sorry, I figured it out. Caddy assumes https if you use an https address and when both caddy and nginx are using https it is unhappy. Changing the SITE_ADDRESS to http fixes that.
Author
Owner

@adakac commented on GitHub (Feb 11, 2026):

Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ?

Does it work on your PC? :P
I only edited the yaml like this and did a docker compose pull:

web:
    image: baptisterajaut/stoatchat-web:dev

Firefox seems to deliver:
Uncaught (in promise) {"type":"LiveKitUnavailable","location":"crates/delta/src/routes/channels/voice_join.rs:29:20"}

Where/How would I use your nginx settings?

@adakac commented on GitHub (Feb 11, 2026): > Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ? Does it work on your PC? :P I only edited the yaml like this and did a `docker compose pull`: ``` web: image: baptisterajaut/stoatchat-web:dev ``` Firefox seems to deliver: `Uncaught (in promise) {"type":"LiveKitUnavailable","location":"crates/delta/src/routes/channels/voice_join.rs:29:20"} ` Where/How would I use your nginx settings?
Author
Owner

@LordGuenni commented on GitHub (Feb 11, 2026):

I Managed To deploy everything with Traefik in front as that is the Reverse Proxy i am using, i am also Building the Web Client from scratch at runtime, so it doesnt matter that there isnt an official Image.

Will share later as i am not Home rn.

This also build the web client from source at runtime, also i changed the files upload limit to 100MB in both Backend and the Frontend, as it is hardcoded there. The only thing not working properly yet is gifbox.
stoat-traefik.zip

@LordGuenni commented on GitHub (Feb 11, 2026): > I Managed To deploy everything with Traefik in front as that is the Reverse Proxy i am using, i am also Building the Web Client from scratch at runtime, so it doesnt matter that there isnt an official Image. > > Will share later as i am not Home rn. This also build the web client from source at runtime, also i changed the files upload limit to 100MB in both Backend and the Frontend, as it is hardcoded there. The only thing not working properly yet is gifbox. [stoat-traefik.zip](https://github.com/user-attachments/files/25242244/stoat-traefik.zip)
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ?

Does it work on your PC? :P I only edited the yaml like this and did a docker compose pull:

web:
    image: baptisterajaut/stoatchat-web:dev

Firefox seems to deliver: Uncaught (in promise) {"type":"LiveKitUnavailable","location":"crates/delta/src/routes/channels/voice_join.rs:29:20"}

Where/How would I use your nginx settings?

Check my compose, you should just set the REVOLT_PUBLIC_URL env variable https://github.com/baptisterajaut/stoatchat-platform/blob/main/docker/client/entrypoint.sh

Also, you should use also the v0.10.3 official images if you don't already do?

@baptisterajaut commented on GitHub (Feb 11, 2026): > > Errr no effin clue. Check logs from livekit and in firefox ? Are you using my image with runtime nginx overwrite ? > > Does it work on your PC? :P I only edited the yaml like this and did a `docker compose pull`: > > ``` > web: > image: baptisterajaut/stoatchat-web:dev > ``` > > Firefox seems to deliver: `Uncaught (in promise) {"type":"LiveKitUnavailable","location":"crates/delta/src/routes/channels/voice_join.rs:29:20"} ` > > Where/How would I use your nginx settings? Check my compose, you should just set the REVOLT_PUBLIC_URL env variable https://github.com/baptisterajaut/stoatchat-platform/blob/main/docker/client/entrypoint.sh Also, you should use also the v0.10.3 official images if you don't already do?
Author
Owner

@Dadadah commented on GitHub (Feb 11, 2026):

I assume the Stoat team is overwhelmed right now with the increased traffic, are you able to get the caddy config working and open a PR with the new changes @baptisterajaut ?

@Dadadah commented on GitHub (Feb 11, 2026): I assume the Stoat team is overwhelmed right now with the increased traffic, are you able to get the caddy config working and open a PR with the new changes @baptisterajaut ?
Author
Owner

@baptisterajaut commented on GitHub (Feb 11, 2026):

I assume the Stoat team is overwhelmed right now with the increased traffic, are you able to get the caddy config working and open a PR with the new changes @baptisterajaut ?

As far as i can see, "it works on my machine" => https://github.com/stoatchat/self-hosted/issues/176#issuecomment-3884569333

If you want something i can support more easily, theres always https://github.com/baptisterajaut/stoatchat-platform/
Edit : because people want so much docker-compose, i'm vibe-coding this : https://github.com/baptisterajaut/helmfile2compose , so you could generate a compose.yml from my helmfile with me having just to manage a yaml descriptor of the translation. IE if theres a version update of something, i just modify the helmfile, not the compose

@baptisterajaut commented on GitHub (Feb 11, 2026): > I assume the Stoat team is overwhelmed right now with the increased traffic, are you able to get the caddy config working and open a PR with the new changes [@baptisterajaut](https://github.com/baptisterajaut) ? As far as i can see, "it works on my machine" => https://github.com/stoatchat/self-hosted/issues/176#issuecomment-3884569333 If you want something i can support more easily, theres always https://github.com/baptisterajaut/stoatchat-platform/ Edit : because people want so much docker-compose, i'm vibe-coding this : https://github.com/baptisterajaut/helmfile2compose , so you could generate a compose.yml from my helmfile with me having just to manage a yaml descriptor of the translation. IE if theres a version update of something, i just modify the helmfile, not the compose
Author
Owner

@baptisterajaut commented on GitHub (Feb 12, 2026):

Good news everyone, i am supporting docker-compose in my own repo now : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md

If you have any issues with it, you can open new issues directly in my repos instead of needlessly notifying users of the official method.

@baptisterajaut commented on GitHub (Feb 12, 2026): Good news everyone, i am supporting docker-compose in my own repo now : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md If you have any issues with it, you can open new issues directly in my repos instead of needlessly notifying users of the official method.
Author
Owner

@Giggitybyte commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

@Giggitybyte commented on GitHub (Feb 12, 2026): @baptisterajaut does your stack have functional screensharing?
Author
Owner

@baptisterajaut commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

Nope. New client doesnt support it : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/known-limitations.md#no-videoscreen-sharing

@baptisterajaut commented on GitHub (Feb 12, 2026): > [@baptisterajaut](https://github.com/baptisterajaut) does your stack have functional screensharing? Nope. New client doesnt support it : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/known-limitations.md#no-videoscreen-sharing
Author
Owner

@LordGuenni commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.

@LordGuenni commented on GitHub (Feb 12, 2026): > @baptisterajaut does your stack have functional screensharing? This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.
Author
Owner

@remusjohn1 commented on GitHub (Feb 12, 2026):

I know this is really not the place for this question, but I'm hopelessly lost.
Does anyone know how to increase the file upload size limit. I've tried adding lines to the Revolt.toml and compose.yml and Caddyfile but nothing changes.

@remusjohn1 commented on GitHub (Feb 12, 2026): I know this is really not the place for this question, but I'm hopelessly lost. Does anyone know how to increase the file upload size limit. I've tried adding lines to the Revolt.toml and compose.yml and Caddyfile but nothing changes.
Author
Owner

@b0BcAtT4T commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.

Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from @baptisterajaut also contain caddy? I have nginx already running and maybe a clean Stoat image would be good.

I would literally pay money for this.

@b0BcAtT4T commented on GitHub (Feb 12, 2026): > > [@baptisterajaut](https://github.com/baptisterajaut) does your stack have functional screensharing? > > This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now. Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from @baptisterajaut also contain caddy? I have nginx already running and maybe a clean Stoat image would be good. I would literally pay money for this.
Author
Owner

@baptisterajaut commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.

Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from @baptisterajaut also contain caddy? I have nginx already running and maybe a clean Stoat image would be good.

I would literally pay money for this.

Well, caddy is optional and is just used as a front to listen to http/s. You can remove it from compose.yml and modify your nginx to ressemble the caddyfile

@baptisterajaut commented on GitHub (Feb 12, 2026): > > > [@baptisterajaut](https://github.com/baptisterajaut) does your stack have functional screensharing? > > > > > > This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now. > > Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from [@baptisterajaut](https://github.com/baptisterajaut) also contain caddy? I have nginx already running and maybe a clean Stoat image would be good. > > I would literally pay money for this. Well, caddy is optional and is just used as a front to listen to http/s. You can remove it from compose.yml and modify your nginx to ressemble the caddyfile
Author
Owner

@Dadadah commented on GitHub (Feb 12, 2026):

@baptisterajaut does your stack have functional screensharing?

This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.

Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from @baptisterajaut also contain caddy? I have nginx already running and maybe a clean Stoat image would be good.

I would literally pay money for this.

The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by @Flash1232 however they have not finished it quite yet.

@Dadadah commented on GitHub (Feb 12, 2026): > > > [@baptisterajaut](https://github.com/baptisterajaut) does your stack have functional screensharing? > > > > > > This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now. > > Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from [@baptisterajaut](https://github.com/baptisterajaut) also contain caddy? I have nginx already running and maybe a clean Stoat image would be good. > > I would literally pay money for this. The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by @Flash1232 however they have not finished it quite yet.
Author
Owner

@b0BcAtT4T commented on GitHub (Feb 12, 2026):

The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by @Flash1232 however they have not finished it quite yet.

Damn, I wish stoat did it like Immich and have constant releases and even advertise for donations because myself any many others, I’m sure, would be happy to pay for the cause, given structured updates.

@b0BcAtT4T commented on GitHub (Feb 12, 2026): > The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by [@Flash1232](https://github.com/Flash1232) however they have not finished it quite yet. Damn, I wish stoat did it like Immich and have constant releases and even advertise for donations because myself any many others, I’m sure, would be happy to pay for the cause, given structured updates.
Author
Owner

@Dadadah commented on GitHub (Feb 12, 2026):

The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by @Flash1232 however they have not finished it quite yet.

Damn, I wish stoat did it like Immich and have constant releases and even advertise for donations because myself any many others, I’m sure, would be happy to pay for the cause, given structured updates.

All of their other repositories have constant docker releases, they just haven't set it up for the web repo yet as it's basically brand new. If you are not able to build it yourself, you can probably expect it to be done soonish (Stoat doesn't give ETA's I've heard)

@Dadadah commented on GitHub (Feb 12, 2026): > > The main reason for this not having been pushed to this repo yet is a lack of an officially provided docker container for the web interface from Stoat. There is a PR out for it by [@Flash1232](https://github.com/Flash1232) however they have not finished it quite yet. > > Damn, I wish stoat did it like Immich and have constant releases and even advertise for donations because myself any many others, I’m sure, would be happy to pay for the cause, given structured updates. All of their other repositories have constant docker releases, they just haven't set it up for the web repo yet as it's basically brand new. If you are not able to build it yourself, you can probably expect it to be done soonish (Stoat doesn't give ETA's I've heard)
Author
Owner

@LordGuenni commented on GitHub (Feb 13, 2026):

I know this is really not the place for this question, but I'm hopelessly lost.
Does anyone know how to increase the file upload size limit. I've tried adding lines to the Revolt.toml and compose.yml and Caddyfile but nothing changes.

Have a Look at my Fork https://github.com/LordGuenni/for-web/tree/main

You have To rebuild the Client with

Dockerfile

ENV VITE_CFG_MAX_FILE_SIZE=VITE_CFG_MAX_FILE_SIZE

Entrypoint.sh


-e "s|VITE_CFG_MAX_FILE_SIZE|${VITE_CFG_MAX_FILE_SIZE}|g" \

As the Upload Site is currently hardcoded in the frontend and does Not Respect the values of the Backend...

@LordGuenni commented on GitHub (Feb 13, 2026): > I know this is really not the place for this question, but I'm hopelessly lost. > Does anyone know how to increase the file upload size limit. I've tried adding lines to the Revolt.toml and compose.yml and Caddyfile but nothing changes. Have a Look at my Fork https://github.com/LordGuenni/for-web/tree/main You have To rebuild the Client with Dockerfile ENV VITE_CFG_MAX_FILE_SIZE=__VITE_CFG_MAX_FILE_SIZE__ Entrypoint.sh \ -e "s|__VITE_CFG_MAX_FILE_SIZE__|${VITE_CFG_MAX_FILE_SIZE}|g" \ As the Upload Site is currently hardcoded in the frontend and does Not Respect the values of the Backend...
Author
Owner

@baptisterajaut commented on GitHub (Feb 13, 2026):

@baptisterajaut does your stack have functional screensharing?

This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now.

Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from @baptisterajaut also contain caddy? I have nginx already running and maybe a clean Stoat image would be good.

I would literally pay money for this.

I know support disabling caddy with my system https://github.com/baptisterajaut/helmfile2compose/blob/main/docs/advanced.md

@baptisterajaut commented on GitHub (Feb 13, 2026): > > > [@baptisterajaut](https://github.com/baptisterajaut) does your stack have functional screensharing? > > > > > > This is basically a 2 line modification as livekit already Supports this, i did. this on my Client Fork... Camera and Screensharing do work as of now. > > Can we get a complete docker compose with voice and video? Seems like everything is done but nobody has just put it together in a clean package yet. Also why does the compose from [@baptisterajaut](https://github.com/baptisterajaut) also contain caddy? I have nginx already running and maybe a clean Stoat image would be good. > > I would literally pay money for this. I know support disabling caddy with my system https://github.com/baptisterajaut/helmfile2compose/blob/main/docs/advanced.md
Author
Owner

@Eddudos commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!

The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

@Eddudos commented on GitHub (Feb 13, 2026): I tried the setup of @baptisterajaut and it worked great, thank you! The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?
Author
Owner

@Dadadah commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!

The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

The diff you'd need to enable video can be found here: https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo

@Dadadah commented on GitHub (Feb 13, 2026): > I tried the setup of [@baptisterajaut](https://github.com/baptisterajaut) and it worked great, thank you! > > The only feature I lack is that little screenshare button. As [@LordGuenni](https://github.com/LordGuenni) have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare? The diff you'd need to enable video can be found here: https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo
Author
Owner

@baptisterajaut commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!
The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

The diff you'd need to enable video can be found here: stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo

Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag))

@baptisterajaut commented on GitHub (Feb 13, 2026): > > I tried the setup of [@baptisterajaut](https://github.com/baptisterajaut) and it worked great, thank you! > > The only feature I lack is that little screenshare button. As [@LordGuenni](https://github.com/LordGuenni) have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare? > > The diff you'd need to enable video can be found here: [stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo](https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo) Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag))
Author
Owner

@jameshiller commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!
The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

The diff you'd need to enable video can be found here: stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo

Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag))

Does this change also apply to baptisterajaut/stoatchat-web:dev

@jameshiller commented on GitHub (Feb 13, 2026): > > > I tried the setup of [@baptisterajaut](https://github.com/baptisterajaut) and it worked great, thank you! > > > The only feature I lack is that little screenshare button. As [@LordGuenni](https://github.com/LordGuenni) have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare? > > > > > > The diff you'd need to enable video can be found here: [stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo](https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo) > > Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag)) Does this change also apply to baptisterajaut/stoatchat-web:dev
Author
Owner

@baptisterajaut commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!
The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

The diff you'd need to enable video can be found here: stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo

Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag))

Does this change also apply to baptisterajaut/stoatchat-web:dev

Yes, thats what i mean with "I published it"
Here's the conf i used : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docker/client/build.conf

@baptisterajaut commented on GitHub (Feb 13, 2026): > > > > I tried the setup of [@baptisterajaut](https://github.com/baptisterajaut) and it worked great, thank you! > > > > The only feature I lack is that little screenshare button. As [@LordGuenni](https://github.com/LordGuenni) have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare? > > > > > > > > > The diff you'd need to enable video can be found here: [stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo](https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo) > > > > > > Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag)) > > Does this change also apply to baptisterajaut/stoatchat-web:dev Yes, thats what i mean with "I published it" Here's the conf i used : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docker/client/build.conf
Author
Owner

@jameshiller commented on GitHub (Feb 13, 2026):

I tried the setup of @baptisterajaut and it worked great, thank you!
The only feature I lack is that little screenshare button. As @LordGuenni have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare?

The diff you'd need to enable video can be found here: stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo

Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag))

Does this change also apply to baptisterajaut/stoatchat-web:dev

Yes, thats what i mean with "I published it"

Thanks for clarifying and for your effort!

@jameshiller commented on GitHub (Feb 13, 2026): > > > > > I tried the setup of [@baptisterajaut](https://github.com/baptisterajaut) and it worked great, thank you! > > > > > The only feature I lack is that little screenshare button. As [@LordGuenni](https://github.com/LordGuenni) have said that is already implemented in a livekit, but I'm not sure where is that "2 line change", could you please help me figure it out or maybe you already have your setup to try/compare? > > > > > > > > > > > > The diff you'd need to enable video can be found here: [stoatchat/for-web@main...Dadadah:stoat-for-web:patch/enablevideo](https://github.com/stoatchat/for-web/compare/main...Dadadah:stoat-for-web:patch/enablevideo) > > > > > > > > > Yoink, thank you, i published it. Everyone using my system will now have this this patch (everyone should git pull and helmfile sync or a docker-compose up, and it should pull automatically the new image (rolling tag)) > > > > > > Does this change also apply to baptisterajaut/stoatchat-web:dev > > Yes, thats what i mean with "I published it" Thanks for clarifying and for your effort!
Author
Owner

@javif89 commented on GitHub (Feb 14, 2026):

Hey y'all. I managed to get stoat working today thanks to this thread, but it took a lot of digging and debugging. I tried to put my findings down here

https://github.com/javif89/stoat-selfhost

Thanks to @baptisterajaut and @LordGuenni for the work they did.

If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now.

@javif89 commented on GitHub (Feb 14, 2026): Hey y'all. I managed to get stoat working today thanks to this thread, but it took **a lot** of digging and debugging. I tried to put my findings down here https://github.com/javif89/stoat-selfhost Thanks to @baptisterajaut and @LordGuenni for the work they did. If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now.
Author
Owner

@Sapd commented on GitHub (Feb 14, 2026):

Hey y'all. I managed to get stoat working today thanks to this thread, but it took a lot of digging and debugging. I tried to put my findings down here

https://github.com/javif89/stoat-selfhost

Thanks to @baptisterajaut and @LordGuenni for the work they did.

If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now.

@javif89 Thanks. With the help of your guide I also managed to get it working. I just reused the existing Livekit instance on my kubernetes cluster from matrix. Video call, screen sharing etc. everything works.

The only piece for me missing is a IdP integration with SSO or similar.

@Sapd commented on GitHub (Feb 14, 2026): > Hey y'all. I managed to get stoat working today thanks to this thread, but it took **a lot** of digging and debugging. I tried to put my findings down here > > https://github.com/javif89/stoat-selfhost > > Thanks to [@baptisterajaut](https://github.com/baptisterajaut) and [@LordGuenni](https://github.com/LordGuenni) for the work they did. > > If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now. @javif89 Thanks. With the help of your guide I also managed to get it working. I just reused the existing Livekit instance on my kubernetes cluster from matrix. Video call, screen sharing etc. everything works. The only piece for me missing is a IdP integration with SSO or similar.
Author
Owner

@baptisterajaut commented on GitHub (Feb 14, 2026):

Hey y'all. I managed to get stoat working today thanks to this thread, but it took a lot of digging and debugging. I tried to put my findings down here
https://github.com/javif89/stoat-selfhost
Thanks to @baptisterajaut and @LordGuenni for the work they did.
If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now.

@javif89 Thanks. With the help of your guide I also managed to get it working. I just reused the existing Livekit instance on my kubernetes cluster from matrix. Video call, screen sharing etc. everything works.

The only piece for me missing is a IdP integration with SSO or similar.

If you have kubernetes, i'm maintaining this : https://github.com/baptisterajaut/stoatchat-platform ; maybe we can figure a way to plug a Keycloak somewhere?

EDIT : some preliminary research . This will not be upstream

@baptisterajaut commented on GitHub (Feb 14, 2026): > > Hey y'all. I managed to get stoat working today thanks to this thread, but it took **a lot** of digging and debugging. I tried to put my findings down here > > https://github.com/javif89/stoat-selfhost > > Thanks to [@baptisterajaut](https://github.com/baptisterajaut) and [@LordGuenni](https://github.com/LordGuenni) for the work they did. > > If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now. > > [@javif89](https://github.com/javif89) Thanks. With the help of your guide I also managed to get it working. I just reused the existing Livekit instance on my kubernetes cluster from matrix. Video call, screen sharing etc. everything works. > > The only piece for me missing is a IdP integration with SSO or similar. If you have kubernetes, i'm maintaining this : https://github.com/baptisterajaut/stoatchat-platform ; maybe we can figure a way to plug a Keycloak somewhere? EDIT : [some preliminary research](https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/oidc-implementation-suggestions.md) . This will [not be upstream](https://github.com/stoatchat/stoatchat/issues/412)
Author
Owner

@Sapd commented on GitHub (Feb 14, 2026):

This will https://github.com/stoatchat/stoatchat/issues/412

Thats a bummer. More and more self hosted software supports oidc. It also lowers the barrier. Because my friends and family already have accounts at my IdP so they would just need to open up the site and it would work.
If its not supported long term that is a dealbreaker.

@Sapd commented on GitHub (Feb 14, 2026): > This will https://github.com/stoatchat/stoatchat/issues/412 Thats a bummer. More and more self hosted software supports oidc. It also lowers the barrier. Because my friends and family already have accounts at my IdP so they would just need to open up the site and it would work. If its not supported long term that is a dealbreaker.
Author
Owner

@Shadowalker125 commented on GitHub (Feb 14, 2026):

Hey y'all. I managed to get stoat working today thanks to this thread, but it took a lot of digging and debugging. I tried to put my findings down here

https://github.com/javif89/stoat-selfhost

Thanks to @baptisterajaut and @LordGuenni for the work they did.

If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now.

I tried all of yesterday to get something working, and while the docker compose would start just fine using the main readme, no matter what I did I could not get cloudflare zero trust tunnel to work with caddy. It would only either return a redirect loop or fail with a 502. Granted, I was doing this on an unraid VM and there are probably some other things breaking that I just dont know how to troubleshoot.

@Shadowalker125 commented on GitHub (Feb 14, 2026): > Hey y'all. I managed to get stoat working today thanks to this thread, but it took **a lot** of digging and debugging. I tried to put my findings down here > > https://github.com/javif89/stoat-selfhost > > Thanks to [@baptisterajaut](https://github.com/baptisterajaut) and [@LordGuenni](https://github.com/LordGuenni) for the work they did. > > If there's something incorrect in the guide or things change, feel free to make a PR or just link a new guide. I'm sure a lot of people are looking for answers right now. I tried all of yesterday to get something working, and while the docker compose would start just fine using the main readme, no matter what I did I could not get cloudflare zero trust tunnel to work with caddy. It would only either return a redirect loop or fail with a 502. Granted, I was doing this on an unraid VM and there are probably some other things breaking that I just dont know how to troubleshoot.
Author
Owner

@IngwiePhoenix commented on GitHub (Feb 14, 2026):

Hello!

I have a good amount of experience in containerization (Docker, Podman, Kubernetes) and I was looking at the various repositories to get myself an overview of what is the current state. If you dont mind, I'd like to ask a few questions:

  • Why are there so many references to revolt.chat? For instance here: https://github.com/stoatchat/service-admin-panel/blob/main/.env.local.example#L34
  • service-admin-panel is rather self-explaining, it should not be exposed if possible, since that one is used to manage things. Aside from making sure it can read Mongo, Redis, Ntfy, is the Zammad integration required, and do I need to run Authentik or is any OIDC provider (VoidAuth, Keycloak, ...) plausible? Since the /.well-known for OIDC issuer is not specified in full, this might also just be OAuth2. A little clarification would help. :)
  • Why is this duplicate here? https://github.com/stoatchat/stoatchat/blob/main/Dockerfile#L38-L42 You copy all the Cargo specs by hand first, and then copy everything anyway. Is there a particular reason?
    • Also, in terms of cross-compiling, it's safer to rely on a "native" environment in a QEMU runner. Adding an architecture definitively is fine, but it technically breaks semantic OCI workflows. An in-between would be to check if TARGETARCH is specified and pivot to a default.
  • There are a bunch of microservices. Are their uses, ports and routes documented? Sure, I can probably fish them out from the Caddyfile, but this seems a tad messy. It's not complicated at all, mind you - consider this a nitpick at best in terms of documentation.
  • And, lastly, all the images as given in the Docker Compose point to ghcr.io/revoltchat/.... Are those even still up-to-date? Because the Dockerfile, that I linked above, actually builds a unified container of all the services instead - not a container for each application as those containers would make you believe.

I'd be happy to help with the work in this regard. Right now, I am testing/trying Root, but feedback from my friends has so far been rather meh, so I want to try my luck with Stoat, and do good with my skills while I am at it in hopes it helps someone else in the process. :)

For now, I saw that you haven't dockerized the web frontend yet; I'll read that one next and see if there is anything I can do, if this is even still needed, considering how fast things move and ship.

Kind regards,
Ingwie

@IngwiePhoenix commented on GitHub (Feb 14, 2026): Hello! I have a good amount of experience in containerization (Docker, Podman, Kubernetes) and I was looking at the various repositories to get myself an overview of what is the current state. If you dont mind, I'd like to ask a few questions: - Why are there so many references to `revolt.chat`? For instance here: https://github.com/stoatchat/service-admin-panel/blob/main/.env.local.example#L34 - `service-admin-panel` is rather self-explaining, it should not be exposed if possible, since that one is used to manage things. Aside from making sure it can read Mongo, Redis, Ntfy, is the Zammad integration required, and do I need to run Authentik or is any OIDC provider (VoidAuth, Keycloak, ...) plausible? Since the `/.well-known` for OIDC issuer is not specified in full, this might also just be OAuth2. A little clarification would help. :) - Why is this duplicate here? https://github.com/stoatchat/stoatchat/blob/main/Dockerfile#L38-L42 You copy all the Cargo specs by hand first, and then copy everything anyway. Is there a particular reason? * Also, in terms of cross-compiling, it's safer to rely on a "native" environment in a QEMU runner. Adding an architecture definitively is fine, but it technically breaks semantic OCI workflows. An in-between would be to check if `TARGETARCH` is specified and pivot to a default. - There are a bunch of microservices. Are their uses, ports and routes documented? Sure, I can probably fish them out from the Caddyfile, but this seems a tad messy. It's not complicated at all, mind you - consider this a nitpick at best in terms of documentation. - And, lastly, all the images as given in the Docker Compose point to `ghcr.io/revoltchat/...`. Are those even still up-to-date? Because the Dockerfile, that I linked above, actually builds a unified container of all the services instead - _not_ a container for each application as those containers would make you believe. I'd be happy to help with the work in this regard. Right now, I am testing/trying Root, but feedback from my friends has so far been rather meh, so I want to try my luck with Stoat, and do good with my skills while I am at it in hopes it helps someone else in the process. :) For now, I saw that you haven't dockerized the web frontend yet; I'll read that one next and see if there is anything I can do, if this is even still needed, considering how fast things move and ship. Kind regards, Ingwie
Author
Owner

@baptisterajaut commented on GitHub (Feb 14, 2026):

Hello!

I have a good amount of experience in containerization (Docker, Podman, Kubernetes) and I was looking at the various repositories to get myself an overview of what is the current state. If you dont mind, I'd like to ask a few questions:

* Why are there so many references to `revolt.chat`? For instance here: https://github.com/stoatchat/service-admin-panel/blob/main/.env.local.example#L34

* `service-admin-panel` is rather self-explaining, it should not be exposed if possible, since that one is used to manage things. Aside from making sure it can read Mongo, Redis, Ntfy, is the Zammad integration required, and do I need to run Authentik or is any OIDC provider (VoidAuth, Keycloak, ...) plausible? Since the `/.well-known` for OIDC issuer is not specified in full, this might also just be OAuth2. A little clarification would help. :)

* Why is this duplicate here? https://github.com/stoatchat/stoatchat/blob/main/Dockerfile#L38-L42 You copy all the Cargo specs by hand first, and then copy everything anyway. Is there a particular reason?
  
  * Also, in terms of cross-compiling, it's safer to rely on a "native" environment in a QEMU runner. Adding an architecture definitively is fine, but it technically breaks semantic OCI workflows. An in-between would be to check if `TARGETARCH` is specified and pivot to a default.

* There are a bunch of microservices. Are their uses, ports and routes documented? Sure, I can probably fish them out from the Caddyfile, but this seems a tad messy. It's not complicated at all, mind you - consider this a nitpick at best in terms of documentation.

* And, lastly, all the images as given in the Docker Compose point to `ghcr.io/revoltchat/...`. Are those even still up-to-date? Because the Dockerfile, that I linked above, actually builds a unified container of all the services instead - _not_ a container for each application as those containers would make you believe.

I'd be happy to help with the work in this regard. Right now, I am testing/trying Root, but feedback from my friends has so far been rather meh, so I want to try my luck with Stoat, and do good with my skills while I am at it in hopes it helps someone else in the process. :)

For now, I saw that you haven't dockerized the web frontend yet; I'll read that one next and see if there is anything I can do, if this is even still needed, considering how fast things move and ship.

Kind regards, Ingwie

  • Revolt is the previous name of stoat. Thats why there's so many references
  • there is no oidc provider yet (if I read your question correctly)
  • Routes are consumed by the client mostly, and the API has settings in the toml (with exceptions , such as gifbox)
  • any image referencing revoltchat is out of date. This repository is out of date.

For further référence, i and several people maintain alternative repos that are more up to date than this very repo, and we also provide web client images (with some features that are not upstream yet). There are some discussions about them in this thread, if you don't want to dive into the code.

@baptisterajaut commented on GitHub (Feb 14, 2026): > Hello! > > I have a good amount of experience in containerization (Docker, Podman, Kubernetes) and I was looking at the various repositories to get myself an overview of what is the current state. If you dont mind, I'd like to ask a few questions: > > * Why are there so many references to `revolt.chat`? For instance here: https://github.com/stoatchat/service-admin-panel/blob/main/.env.local.example#L34 > > * `service-admin-panel` is rather self-explaining, it should not be exposed if possible, since that one is used to manage things. Aside from making sure it can read Mongo, Redis, Ntfy, is the Zammad integration required, and do I need to run Authentik or is any OIDC provider (VoidAuth, Keycloak, ...) plausible? Since the `/.well-known` for OIDC issuer is not specified in full, this might also just be OAuth2. A little clarification would help. :) > > * Why is this duplicate here? https://github.com/stoatchat/stoatchat/blob/main/Dockerfile#L38-L42 You copy all the Cargo specs by hand first, and then copy everything anyway. Is there a particular reason? > > * Also, in terms of cross-compiling, it's safer to rely on a "native" environment in a QEMU runner. Adding an architecture definitively is fine, but it technically breaks semantic OCI workflows. An in-between would be to check if `TARGETARCH` is specified and pivot to a default. > > * There are a bunch of microservices. Are their uses, ports and routes documented? Sure, I can probably fish them out from the Caddyfile, but this seems a tad messy. It's not complicated at all, mind you - consider this a nitpick at best in terms of documentation. > > * And, lastly, all the images as given in the Docker Compose point to `ghcr.io/revoltchat/...`. Are those even still up-to-date? Because the Dockerfile, that I linked above, actually builds a unified container of all the services instead - _not_ a container for each application as those containers would make you believe. > > > I'd be happy to help with the work in this regard. Right now, I am testing/trying Root, but feedback from my friends has so far been rather meh, so I want to try my luck with Stoat, and do good with my skills while I am at it in hopes it helps someone else in the process. :) > > For now, I saw that you haven't dockerized the web frontend yet; I'll read that one next and see if there is anything I can do, if this is even still needed, considering how fast things move and ship. > > Kind regards, Ingwie - Revolt is the previous name of stoat. Thats why there's so many references - there is no oidc provider yet (if I read your question correctly) - Routes are consumed by the client mostly, and the API has settings in the toml (with exceptions , such as gifbox) - any image referencing revoltchat is out of date. This repository is out of date. For further référence, i and several people maintain alternative repos that are more up to date than this very repo, and we also provide web client images (with some features that are not upstream yet). There are some discussions about them in this thread, if you don't want to dive into the code.
Author
Owner

@IngwiePhoenix commented on GitHub (Feb 14, 2026):

I have seen the forks and custom repos already - but I would really prefer to use upstream images and builds, for the sole simplicity of tracking the "official builds". Swapping between forks of projects and such is not a whole lot of fun, especially since I plan to deploy this on Kubernetes in the long-term and use Rennovate. For a small Docker Compose setup, to test stuff, this is perfectly fine and serviceable of course :)

Really hoping the developers provide a path forward.

As for OIDC; I wouldn't be surprised if this is simply used as the authN/authZ layer - Authentik is a proven solution after all. So thats fine, I would just love to know if it's safe to plug any other provider in to this, or not. :)

@IngwiePhoenix commented on GitHub (Feb 14, 2026): I have seen the forks and custom repos already - but I would really prefer to use upstream images and builds, for the sole simplicity of tracking the "official builds". Swapping between forks of projects and such is not a whole lot of fun, especially since I plan to deploy this on Kubernetes in the long-term and use Rennovate. For a small Docker Compose setup, to test stuff, this is perfectly fine and serviceable of course :) Really hoping the developers provide a path forward. As for OIDC; I wouldn't be surprised if this is simply used as the authN/authZ layer - Authentik is a proven solution after all. So thats fine, I would just love to know if it's safe to plug any other provider in to this, or not. :)
Author
Owner

@jameshiller commented on GitHub (Feb 14, 2026):

Does the gif menu work for others? I have everything mostly working fine except that. It calls out to api.gifbox.me and gets the response "InvalidSession" which has me thinking the issue isn't with my configs.

@jameshiller commented on GitHub (Feb 14, 2026): Does the gif menu work for others? I have everything mostly working fine except that. It calls out to api.gifbox.me and gets the response "InvalidSession" which has me thinking the issue isn't with my configs.
Author
Owner

@kasivulpis commented on GitHub (Feb 14, 2026):

I just wanted to say my piece since I was having issues getting self hosted + screen sharing up today. Funnily enough @javif89's guide actually actually slowed me down because I ended up putting the wrong pieces together while following the guide. When I decided to use @baptisterajaut's docker compose solution since it was the 'step between' the current repo and @javif89's it basically worked first try for me after i configured everything correctly. I'm sure this is just user error on my part, but I suggest people who are less familiar with the full tech stack/trying to just stand up a personal instance in the first place to try @baptisterajaut's solution first.

P.S. In case you're like me and want to be invite only, invite-only mode still works but there's no UI for it. IDK how the original revolt app 'knew' if there should be a invite field or not, so for my instance i just hard coded the field in. I'm sure someone who understands the frontend better will make a proper PR later.

@kasivulpis commented on GitHub (Feb 14, 2026): I just wanted to say my piece since I was having issues getting self hosted + screen sharing up today. Funnily enough @javif89's [guide](https://github.com/javif89/stoat-selfhost) actually actually slowed me down because I ended up putting the wrong pieces together while following the guide. When I decided to use @baptisterajaut's [docker compose solution](https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md) since it was the 'step between' the current repo and @javif89's it basically worked first try for me after i configured everything correctly. I'm sure this is just user error on my part, but I suggest people who are less familiar with the full tech stack/trying to just stand up a personal instance in the first place to try @baptisterajaut's solution first. P.S. In case you're like me and want to be invite only, invite-only mode still works but there's no UI for it. IDK how the original revolt app 'knew' if there should be a invite field or not, so for my instance i just hard coded the field in. I'm sure someone who understands the frontend better will make a proper PR later.
Author
Owner

@baptisterajaut commented on GitHub (Feb 15, 2026):

Does the gif menu work for others? I have everything mostly working fine except that. It calls out to api.gifbox.me and gets the response "InvalidSession" which has me thinking the issue isn't with my configs.

https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/known-limitations.md#gif-picker-cannot-be-disabled
However, someone fixed that https://jlai.lu/comment/19467558

I just wanted to say my piece since I was having issues getting self hosted + screen sharing up today. Funnily enough @javif89's guide actually actually slowed me down because I ended up putting the wrong pieces together while following the guide. When I decided to use @baptisterajaut's docker compose solution since it was the 'step between' the current repo and @javif89's it basically worked first try for me after i configured everything correctly. I'm sure this is just user error on my part, but I suggest people who are less familiar with the full tech stack/trying to just stand up a personal instance in the first place to try @baptisterajaut's solution first.

P.S. In case you're like me and want to be invite only, invite-only mode still works but there's no UI for it. IDK how the original revolt app 'knew' if there should be a invite field or not, so for my instance i just hard coded the field in. I'm sure someone who understands the frontend better will make a proper PR later.

Good news mate https://github.com/baptisterajaut/stoatchat-platform/issues/5

@baptisterajaut commented on GitHub (Feb 15, 2026): > Does the gif menu work for others? I have everything mostly working fine except that. It calls out to api.gifbox.me and gets the response "InvalidSession" which has me thinking the issue isn't with my configs. https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/known-limitations.md#gif-picker-cannot-be-disabled However, someone fixed that https://jlai.lu/comment/19467558 > I just wanted to say my piece since I was having issues getting self hosted + screen sharing up today. Funnily enough [@javif89](https://github.com/javif89)'s [guide](https://github.com/javif89/stoat-selfhost) actually actually slowed me down because I ended up putting the wrong pieces together while following the guide. When I decided to use [@baptisterajaut](https://github.com/baptisterajaut)'s [docker compose solution](https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md) since it was the 'step between' the current repo and [@javif89](https://github.com/javif89)'s it basically worked first try for me after i configured everything correctly. I'm sure this is just user error on my part, but I suggest people who are less familiar with the full tech stack/trying to just stand up a personal instance in the first place to try [@baptisterajaut](https://github.com/baptisterajaut)'s solution first. > > P.S. In case you're like me and want to be invite only, invite-only mode still works but there's no UI for it. IDK how the original revolt app 'knew' if there should be a invite field or not, so for my instance i just hard coded the field in. I'm sure someone who understands the frontend better will make a proper PR later. Good news mate https://github.com/baptisterajaut/stoatchat-platform/issues/5
Author
Owner

@acidtib commented on GitHub (Feb 15, 2026):

Hi all, id your looking for tenor replacement feel free to grab from here
https://github.com/hoy-chat/stoatchat/pull/1
https://github.com/hoy-chat/for-web/pull/1

@acidtib commented on GitHub (Feb 15, 2026): Hi all, id your looking for tenor replacement feel free to grab from here https://github.com/hoy-chat/stoatchat/pull/1 https://github.com/hoy-chat/for-web/pull/1
Author
Owner

@b0BcAtT4T commented on GitHub (Feb 16, 2026):

@baptisterajaut Really appreciate your hard work on this, have you considered doing a docker-compose only setup without the Kubernetes stuff? I’d be interested to learn if this would/nt be possible, cheers :)

@b0BcAtT4T commented on GitHub (Feb 16, 2026): @baptisterajaut Really appreciate your hard work on this, have you considered doing a docker-compose only setup without the Kubernetes stuff? I’d be interested to learn if this would/nt be possible, cheers :)
Author
Owner

@baptisterajaut commented on GitHub (Feb 16, 2026):

@baptisterajaut Really appreciate your hard work on this, have you considered doing a docker-compose only setup without the Kubernetes stuff? I’d be interested to learn if this would/nt be possible, cheers :)

Theres already this : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md

But if you mean "Maitain a separate compose.yml by hand" : My brother in christ, i reinvented Kubernetes to be able to NOT do that. Enjoy my supercharged autism bringing you the power of k8s into a compose.yml file.

@baptisterajaut commented on GitHub (Feb 16, 2026): > [@baptisterajaut](https://github.com/baptisterajaut) Really appreciate your hard work on this, have you considered doing a docker-compose only setup without the Kubernetes stuff? I’d be interested to learn if this would/nt be possible, cheers :) Theres already this : https://github.com/baptisterajaut/stoatchat-platform/blob/main/docs/compose-deployment.md But if you mean "Maitain a separate compose.yml by hand" : My brother in christ, i reinvented Kubernetes to be able to NOT do that. Enjoy my supercharged autism bringing you the power of k8s into a compose.yml file.
Author
Owner

@HexVertex commented on GitHub (Feb 16, 2026):

I believe the point is to not need K8s related binaries/packages etc. installed when it won't be used for running. The reason I started using docker was to have easily reproducible environments without the bloat and conflicts that come from installing everything locally, let alone the cleanup after removing that stuff. K8s isn't always as easy to work with in my experience, especially if there aren't ready made helm files available.
Whether that is the right approach and how one would maintain a Helm-to-Docker pipeline is a different discussion though.

@HexVertex commented on GitHub (Feb 16, 2026): I believe the point is to not need K8s related binaries/packages etc. installed when it won't be used for running. The reason I started using docker was to have easily reproducible environments without the bloat and conflicts that come from installing everything locally, let alone the cleanup after removing that stuff. K8s isn't always as easy to work with in my experience, especially if there aren't ready made helm files available. Whether that is the right approach and how one would maintain a Helm-to-Docker pipeline is a different discussion though.
Author
Owner

@baptisterajaut commented on GitHub (Feb 16, 2026):

I believe the point is to not need K8s related binaries/packages etc. installed when it won't be used for running. The reason I started using docker was to have easily reproducible environments without the bloat and conflicts that come from installing everything locally, let alone the cleanup after removing that stuff. K8s isn't always as easy to work with in my experience, especially if there aren't ready made helm files available. Whether that is the right approach and how one would maintain a Helm-to-Docker pipeline is a different discussion though.

Working with k8s is my part in my repo. I'm an SRE, making it work magically is my job. Generate-compose make you a compose.yml and a caddyfile. It works in one command, similarly to helmfile. You don't have to manage any k8s object, I am the cursed one to do that. You don't have to ask questions (you can but you don't have to)

If you find this bloated thats completly fine, but I still prefer this over managing a separate docker compose.

No, I don't make the slightest amount of sense but boy am I having the most fun 😁

@baptisterajaut commented on GitHub (Feb 16, 2026): > I believe the point is to not need K8s related binaries/packages etc. installed when it won't be used for running. The reason I started using docker was to have easily reproducible environments without the bloat and conflicts that come from installing everything locally, let alone the cleanup after removing that stuff. K8s isn't always as easy to work with in my experience, especially if there aren't ready made helm files available. Whether that is the right approach and how one would maintain a Helm-to-Docker pipeline is a different discussion though. Working with k8s is my part in my repo. I'm an SRE, making it work magically is my job. Generate-compose make you a compose.yml and a caddyfile. It works in one command, similarly to helmfile. You don't have to manage any k8s object, I am the cursed one to do that. You don't have to ask questions (you can but you don't have to) If you find this bloated thats completly fine, but I still prefer this over managing a separate docker compose. No, I don't make the slightest amount of sense but boy am I having the most fun 😁
Author
Owner

@Dadadah commented on GitHub (Feb 16, 2026):

I have an updated compose fork that works at dadadah/stoat-self-hosted. I have not opened a PR yet due to the web app not being dockerized yet. My fork, for now, builds the web app when you run docker compose up -d

Note: I have not tested whether it works for existing environments, only new environments. Use at your own risk.

@Dadadah commented on GitHub (Feb 16, 2026): I have an updated compose fork that works at [dadadah/stoat-self-hosted](https://github.com/Dadadah/stoat-self-hosted). I have not opened a PR yet due to the web app not being dockerized yet. My fork, for now, builds the web app when you run `docker compose up -d` **Note:** I have not tested whether it works for existing environments, only new environments. Use at your own risk.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: stoatchat/self-hosted#124