forked from kofal.net/stoatchat-self-hosted
Compare commits
2 Commits
main
...
update-to-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fee288fc19 | ||
|
|
88838c350f |
36
README.md
36
README.md
@@ -2,12 +2,12 @@
|
|||||||
<h1>
|
<h1>
|
||||||
Stoat Self-Hosted
|
Stoat Self-Hosted
|
||||||
|
|
||||||
[](https://github.com/revoltchat/self-hosted/stargazers)
|
[](https://github.com/stoatchat/self-hosted/stargazers)
|
||||||
[](https://github.com/revoltchat/self-hosted/network/members)
|
[](https://github.com/stoatchat/self-hosted/network/members)
|
||||||
[](https://github.com/revoltchat/self-hosted/pulls)
|
[](https://github.com/stoatchat/self-hosted/pulls)
|
||||||
[](https://github.com/revoltchat/self-hosted/issues)
|
[](https://github.com/stoatchat/self-hosted/issues)
|
||||||
[](https://github.com/revoltchat/self-hosted/graphs/contributors)
|
[](https://github.com/stoatchat/self-hosted/graphs/contributors)
|
||||||
[](https://github.com/revoltchat/self-hosted/blob/main/LICENSE)
|
[](https://github.com/stoatchat/self-hosted/blob/main/LICENSE)
|
||||||
</h1>
|
</h1>
|
||||||
Self-hosting Stoat using Docker
|
Self-hosting Stoat using Docker
|
||||||
</div>
|
</div>
|
||||||
@@ -22,13 +22,13 @@ This repository contains configurations and instructions that can be used for de
|
|||||||
> A list of security advisories is [provided at the bottom](#security-advisories).
|
> A list of security advisories is [provided at the bottom](#security-advisories).
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Please consult _[What can I do with Stoat, and how do I self-host?](https://developers.revolt.chat/faq.html#admonition-what-can-i-do-with-revolt-and-how-do-i-self-host)_ on our developer site for information about licensing and brand use.
|
> Please consult _[What can I do with Stoat and how do I self-host?](https://developers.stoat.chat/faq)_ on our developer site for information about licensing and brand use.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> amd64 builds are not currently available for the web client.
|
> amd64 builds are not currently available for the web client.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> This guide does not include working voice channels ([#138](https://github.com/revoltchat/self-hosted/pull/138#issuecomment-2762682655)). A [rework](https://github.com/revoltchat/backend/issues/313) is currently in progress.
|
> This guide does not include working voice channels ([#138](https://github.com/stoatchat/self-hosted/pull/138#issuecomment-2762682655)). A [rework](https://github.com/stoatchat/stoatchat/issues/313) is currently in progress.
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ To get started, find yourself a suitable server to deploy onto, we recommend sta
|
|||||||
>
|
>
|
||||||
> **We've partnered with Hostinger to bring you a 20% discount off VPS hosting!**
|
> **We've partnered with Hostinger to bring you a 20% discount off VPS hosting!**
|
||||||
>
|
>
|
||||||
> 👉 https://www.hostinger.com/vps-hosting?REFERRALCODE=REVOLTCHAT
|
> 👉 https://www.hostinger.com/vps-hosting?REFERRALCODE=stoatchat
|
||||||
>
|
>
|
||||||
> We recommend using the _KVM 2_ plan at minimum!\
|
> We recommend using the _KVM 2_ plan at minimum!\
|
||||||
> Our testing environment for self-hosted currently sits on a KVM 2 instance, and we are happy to assist with issues.
|
> Our testing environment for self-hosted currently sits on a KVM 2 instance, and we are happy to assist with issues.
|
||||||
@@ -141,7 +141,7 @@ apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docke
|
|||||||
Now, we can pull in the configuration for Stoat:
|
Now, we can pull in the configuration for Stoat:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/revoltchat/self-hosted stoat
|
git clone https://github.com/stoatchat/self-hosted stoat
|
||||||
cd stoat
|
cd stoat
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ chmod +x ./generate_config.sh
|
|||||||
./generate_config.sh your.domain
|
./generate_config.sh your.domain
|
||||||
```
|
```
|
||||||
|
|
||||||
You can find [more options here](https://github.com/revoltchat/backend/blob/stable/crates/core/config/Revolt.toml), some noteworthy configuration options:
|
You can find [more options here](https://github.com/stoatchat/stoatchat/blob/stable/crates/core/config/Revolt.toml), some noteworthy configuration options:
|
||||||
|
|
||||||
- Email verification
|
- Email verification
|
||||||
- Captcha
|
- Captcha
|
||||||
@@ -187,7 +187,7 @@ Pull the latest version of this repository:
|
|||||||
git pull
|
git pull
|
||||||
```
|
```
|
||||||
|
|
||||||
Check if your configuration file is correct by opening [the reference config file](https://github.com/revoltchat/backend/blob/df074260196f5ed246e6360d8e81ece84d8d9549/crates/core/config/Revolt.toml) and your `Revolt.toml` to compare changes.
|
Check if your configuration file is correct by opening [the reference config file](https://github.com/stoatchat/stoatchat/blob/df074260196f5ed246e6360d8e81ece84d8d9549/crates/core/config/Revolt.toml) and your `Revolt.toml` to compare changes.
|
||||||
|
|
||||||
Then pull all the latest images:
|
Then pull all the latest images:
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ Prerequisites before continuing:
|
|||||||
Clone this repository.
|
Clone this repository.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/revoltchat/self-hosted stoat
|
git clone https://github.com/stoatchat/self-hosted stoat
|
||||||
cd stoat
|
cd stoat
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -225,7 +225,7 @@ Create `.env.web` and download `Revolt.toml`, then modify them according to your
|
|||||||
```bash
|
```bash
|
||||||
echo "HOSTNAME=http://local.stoat.chat" > .env.web
|
echo "HOSTNAME=http://local.stoat.chat" > .env.web
|
||||||
echo "REVOLT_PUBLIC_URL=http://local.stoat.chat/api" >> .env.web
|
echo "REVOLT_PUBLIC_URL=http://local.stoat.chat/api" >> .env.web
|
||||||
wget -O Revolt.toml https://raw.githubusercontent.com/revoltchat/backend/main/crates/core/config/Revolt.toml
|
wget -O Revolt.toml https://raw.githubusercontent.com/stoatchat/stoatchat/main/crates/core/config/Revolt.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
Then start Stoat:
|
Then start Stoat:
|
||||||
@@ -361,7 +361,7 @@ db.invites.insertOne({ _id: "enter_an_invite_code_here" })
|
|||||||
> ```
|
> ```
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> If you deployed Stoat before [2023-04-21](https://github.com/revoltchat/backend/commit/32542a822e3de0fc8cc7b29af46c54a9284ee2de), you may have to flush your Redis database.
|
> If you deployed Stoat before [2023-04-21](https://github.com/stoatchat/stoatchat/commit/32542a822e3de0fc8cc7b29af46c54a9284ee2de), you may have to flush your Redis database.
|
||||||
>
|
>
|
||||||
> ```bash
|
> ```bash
|
||||||
> # for stock Redis and older KeyDB images:
|
> # for stock Redis and older KeyDB images:
|
||||||
@@ -418,7 +418,7 @@ db.invites.insertOne({ _id: "enter_an_invite_code_here" })
|
|||||||
|
|
||||||
## Security Advisories
|
## Security Advisories
|
||||||
|
|
||||||
- (`2024-06-21`) [GHSA-f26h-rqjq-qqjq revoltchat/backend: Unrestricted account creation.](https://github.com/revoltchat/backend/security/advisories/GHSA-f26h-rqjq-qqjq)
|
- (`2024-06-21`) [GHSA-f26h-rqjq-qqjq stoatchat/stoatchat: Unrestricted account creation.](https://github.com/stoatchat/stoatchat/security/advisories/GHSA-f26h-rqjq-qqjq)
|
||||||
- (`2024-12-17`) [GHSA-7f9x-pm3g-j7p4 revoltchat/january: January service can call itself recursively, causing heavy load.](https://github.com/revoltchat/january/security/advisories/GHSA-7f9x-pm3g-j7p4)
|
- (`2024-12-17`) [GHSA-7f9x-pm3g-j7p4 revoltchat/january: January service can call itself recursively, causing heavy load.](https://github.com/revoltchat/january/security/advisories/GHSA-7f9x-pm3g-j7p4)
|
||||||
- (`2025-02-10`) [GHSA-8684-rvfj-v3jq revoltchat/backend: Webhook tokens are freely accessible for users with read permissions.](https://github.com/revoltchat/backend/security/advisories/GHSA-8684-rvfj-v3jq)
|
- (`2025-02-10`) [GHSA-8684-rvfj-v3jq stoatchat/stoatchat: Webhook tokens are freely accessible for users with read permissions.](https://github.com/stoatchat/stoatchat/security/advisories/GHSA-8684-rvfj-v3jq)
|
||||||
- (`2025-02-10`) [GHSA-h7h6-7pxm-mc66 revoltchat/backend: Nearby message fetch requests can be crafted to fetch entire message history.](https://github.com/revoltchat/backend/security/advisories/GHSA-h7h6-7pxm-mc66)
|
- (`2025-02-10`) [GHSA-h7h6-7pxm-mc66 stoatchat/stoatchat: Nearby message fetch requests can be crafted to fetch entire message history.](https://github.com/stoatchat/stoatchat/security/advisories/GHSA-h7h6-7pxm-mc66)
|
||||||
|
|||||||
34
compose.yml
34
compose.yml
@@ -4,6 +4,7 @@ services:
|
|||||||
# MongoDB: Database
|
# MongoDB: Database
|
||||||
database:
|
database:
|
||||||
image: docker.io/mongo
|
image: docker.io/mongo
|
||||||
|
container_name: stoat-database
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/db:/data/db
|
- ./data/db:/data/db
|
||||||
@@ -17,11 +18,13 @@ services:
|
|||||||
# Redis: Event message broker & KV store
|
# Redis: Event message broker & KV store
|
||||||
redis:
|
redis:
|
||||||
image: docker.io/eqalpha/keydb
|
image: docker.io/eqalpha/keydb
|
||||||
|
container_name: stoat-redis
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
# RabbitMQ: Internal message broker
|
# RabbitMQ: Internal message broker
|
||||||
rabbit:
|
rabbit:
|
||||||
image: docker.io/rabbitmq:4
|
image: docker.io/rabbitmq:4
|
||||||
|
container_name: stoat-rabbitmq
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
RABBITMQ_DEFAULT_USER: rabbituser
|
RABBITMQ_DEFAULT_USER: rabbituser
|
||||||
@@ -38,6 +41,7 @@ services:
|
|||||||
# MinIO: S3-compatible storage server
|
# MinIO: S3-compatible storage server
|
||||||
minio:
|
minio:
|
||||||
image: docker.io/minio/minio
|
image: docker.io/minio/minio
|
||||||
|
container_name: stoat-storage
|
||||||
command: server /data
|
command: server /data
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/minio:/data
|
- ./data/minio:/data
|
||||||
@@ -61,8 +65,8 @@ services:
|
|||||||
# Caddy: Web server
|
# Caddy: Web server
|
||||||
caddy:
|
caddy:
|
||||||
image: docker.io/caddy
|
image: docker.io/caddy
|
||||||
|
container_name: stoat-caddy
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.web
|
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
@@ -73,7 +77,8 @@ services:
|
|||||||
|
|
||||||
# API server
|
# API server
|
||||||
api:
|
api:
|
||||||
image: ghcr.io/revoltchat/server:20250930-2
|
image: ghcr.io/stoatchat/api:v0.11.3
|
||||||
|
container_name: stoat-api
|
||||||
depends_on:
|
depends_on:
|
||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -89,7 +94,8 @@ services:
|
|||||||
|
|
||||||
# Events service
|
# Events service
|
||||||
events:
|
events:
|
||||||
image: ghcr.io/revoltchat/bonfire:20250930-2
|
image: ghcr.io/stoatchat/events:v0.11.3
|
||||||
|
container_name: stoat-events
|
||||||
depends_on:
|
depends_on:
|
||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -101,15 +107,10 @@ services:
|
|||||||
target: /Revolt.toml
|
target: /Revolt.toml
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
# Web App
|
|
||||||
web:
|
|
||||||
image: ghcr.io/revoltchat/client:master
|
|
||||||
restart: always
|
|
||||||
env_file: .env.web
|
|
||||||
|
|
||||||
# File server
|
# File server
|
||||||
autumn:
|
autumn:
|
||||||
image: ghcr.io/revoltchat/autumn:20250930-2
|
image: ghcr.io/stoatchat/file-server:v0.11.3
|
||||||
|
container_name: stoat-file-server
|
||||||
depends_on:
|
depends_on:
|
||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -123,7 +124,8 @@ services:
|
|||||||
|
|
||||||
# Metadata and image proxy
|
# Metadata and image proxy
|
||||||
january:
|
january:
|
||||||
image: ghcr.io/revoltchat/january:20250930-2
|
image: ghcr.io/stoatchat/proxy:v0.11.3
|
||||||
|
container_name: stoat-proxy
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ./Revolt.toml
|
source: ./Revolt.toml
|
||||||
@@ -132,7 +134,8 @@ services:
|
|||||||
|
|
||||||
# Tenor proxy
|
# Tenor proxy
|
||||||
gifbox:
|
gifbox:
|
||||||
image: ghcr.io/revoltchat/gifbox:20250930-2
|
image: ghcr.io/stoatchat/gifbox:v0.11.3
|
||||||
|
container_name: stoat-gifbox
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ./Revolt.toml
|
source: ./Revolt.toml
|
||||||
@@ -141,7 +144,8 @@ services:
|
|||||||
|
|
||||||
# Regular task daemon
|
# Regular task daemon
|
||||||
crond:
|
crond:
|
||||||
image: ghcr.io/revoltchat/crond:20250930-2
|
image: ghcr.io/stoatchat/crond:v0.11.3
|
||||||
|
container_name: stoat-crond
|
||||||
depends_on:
|
depends_on:
|
||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -155,7 +159,8 @@ services:
|
|||||||
|
|
||||||
# Push notification daemon
|
# Push notification daemon
|
||||||
pushd:
|
pushd:
|
||||||
image: ghcr.io/revoltchat/pushd:20250930-2
|
image: ghcr.io/stoatchat/pushd:v0.11.3
|
||||||
|
container_name: stoat-pushd
|
||||||
depends_on:
|
depends_on:
|
||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -172,6 +177,7 @@ services:
|
|||||||
# Create buckets for minio.
|
# Create buckets for minio.
|
||||||
createbuckets:
|
createbuckets:
|
||||||
image: docker.io/minio/mc
|
image: docker.io/minio/mc
|
||||||
|
container_name: stoat-create-buckets
|
||||||
depends_on:
|
depends_on:
|
||||||
- minio
|
- minio
|
||||||
entrypoint: >
|
entrypoint: >
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// THIS FILE IS TAILORED TO REVOLT PRODUCTION
|
// THIS FILE IS TAILORED TO STOAT PRODUCTION
|
||||||
// MIGRATING FROM A BACKUP & EXISTING CDN NODE
|
// MIGRATING FROM A BACKUP & EXISTING CDN NODE
|
||||||
// INTO BACKBLAZE B2
|
// INTO BACKBLAZE B2
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user