From e6fd94126252a549452b2d963ae8cf626be58c9f Mon Sep 17 00:00:00 2001 From: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Wed, 17 May 2023 09:39:53 -0400 Subject: [PATCH] Add Revolt (#395) * WIP Revolt * Add Caddy * Update Labels * Updated Reverse Proxy * Update docker-compose.yml * Add Vapid Key Generation * Update config.json * Update Info * Change Version Back * Update description.md * Update config.json * Update config.json * Update config.json * Update config.json --- apps/revolt/config.json | 88 ++++++ apps/revolt/data/CaddyFiles/Caddyfile | 28 ++ apps/revolt/docker-compose.yml | 380 ++++++++++++++++++++++++++ apps/revolt/metadata/description.md | 32 +++ apps/revolt/metadata/logo.jpg | Bin 0 -> 5475 bytes 5 files changed, 528 insertions(+) create mode 100644 apps/revolt/config.json create mode 100644 apps/revolt/data/CaddyFiles/Caddyfile create mode 100644 apps/revolt/docker-compose.yml create mode 100644 apps/revolt/metadata/description.md create mode 100644 apps/revolt/metadata/logo.jpg diff --git a/apps/revolt/config.json b/apps/revolt/config.json new file mode 100644 index 00000000..9dd7f12e --- /dev/null +++ b/apps/revolt/config.json @@ -0,0 +1,88 @@ +{ + "$schema": "../schema.json", + "name": "Revolt Chat", + "port": 8272, + "available": true, + "exposable": true, + "force_expose": true, + "generate_vapid_keys": true, + "supported_architectures": ["amd64"], + "id": "revolt", + "tipi_version": 1, + "version": "1.1.8/20230421-3", + "categories": ["media"], + "description": "Open source user-first chat platform.", + "short_desc": "Open source user-first chat platform.", + "author": "RevoltChat", + "source": "https://github.com/revoltchat", + "form_fields": [ + { + "type": "random", + "label": "Revlot Minio Root Password", + "min": 32, + "env_variable": "REVOLT_MINIO_ROOT_PASSWORD" + }, + { + "type": "random", + "label": "Revlot Minio Root Password", + "min": 32, + "env_variable": "REVOLT_MINIO_ROOT_PASSWORD" + }, + { + "type": "random", + "label": "Revlot AWS Access Key", + "min": 16, + "max": 16, + "env_variable": "REVOLT_AWS_ACCESS_KEY_ID" + }, + { + "type": "random", + "label": "Revlot AWS Secret Access Key", + "min": 32, + "max": 32, + "env_variable": "REVOLT_AWS_SECRET_ACCESS_KEY" + }, + { + "type": "text", + "label": "SMTP Host", + "hint": "Your SMTP Server", + "placeholder": "smtp.example.com", + "required": true, + "env_variable": "REVOLT_SMTP_HOST" + }, + { + "type": "text", + "label": "SMTP Username", + "hint": "Your SMTP Server User/Username", + "placeholder": "noreply@example.com", + "required": true, + "env_variable": "REVOLT_SMTP_USERNAME" + }, + { + "type": "text", + "label": "SMTP Password", + "hint": "Your SMTP Server Password", + "required": true, + "env_variable": "REVOLT_SMTP_PASSWORD" + }, + { + "type": "text", + "label": "SMTP From Address", + "hint": "Make sure the Format is like Revolt ", + "placeholder": "Revolt ", + "required": true, + "env_variable": "REVOLT_SMTP_FROM" + }, + { + "label": "Revolt Invite Only", + "type": "text", + "hint": "Choose whether you want Open Signups or have the Platform Invite Only", + "required": true, + "options": [ + { "label": "Open Signups", "value": "0" }, + { "label": "Invite Only", "value": "1" } + ], + "env_variable": "REVOLT_INVITE_ONLY" + } + ] +} diff --git a/apps/revolt/data/CaddyFiles/Caddyfile b/apps/revolt/data/CaddyFiles/Caddyfile new file mode 100644 index 00000000..988b78ff --- /dev/null +++ b/apps/revolt/data/CaddyFiles/Caddyfile @@ -0,0 +1,28 @@ +{$HOSTNAME} { + route /api* { + uri strip_prefix /api + reverse_proxy http://revolt-api:8000 + } + + route /ws { + @upgrade { + header Connection *Upgrade* + header Upgrade websocket + } + + uri strip_prefix /ws + reverse_proxy @upgrade http://revolt-events:9000 + } + + route /autumn* { + uri strip_prefix /autumn + reverse_proxy http://revolt-autumn:3000 + } + + route /january* { + uri strip_prefix /january + reverse_proxy http://revolt-january:7000 + } + + reverse_proxy http://revolt-web:5000 +} \ No newline at end of file diff --git a/apps/revolt/docker-compose.yml b/apps/revolt/docker-compose.yml new file mode 100644 index 00000000..e061789a --- /dev/null +++ b/apps/revolt/docker-compose.yml @@ -0,0 +1,380 @@ +version: "3.8" + +services: + + revolt-database: + image: mongo + container_name: revolt-database + restart: always + volumes: + - ${APP_DATA_DIR}/data/db:/data/db + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # Redis server + revolt-redis: + image: eqalpha/keydb + container_name: revolt-redis + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # S3-compatible storage server + revolt-minio: + image: minio/minio + container_name: revolt-minio + command: server /data + volumes: + - ${APP_DATA_DIR}/data/minio:/data + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + # Web App (revite) + revolt-web: + image: ghcr.io/revoltchat/client:master + container_name: revolt-web + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # API server (delta) + revolt-api: + image: ghcr.io/revoltchat/server:20230421-3 + container_name: revolt-api + depends_on: + - revolt-database + - revolt-redis + - revolt + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # Events service (quark) + revolt-events: + image: ghcr.io/revoltchat/bonfire:20230421-3 + container_name: revolt-events + depends_on: + - revolt-database + - revolt-redis + - revolt + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # File server (autumn) + revolt-autumn: + image: ghcr.io/revoltchat/autumn:1.1.8 + container_name: revolt-autumn + depends_on: + - revolt-database + - revolt-createbuckets + - revolt + restart: always + networks: + - tipi_main_network + environment: + # Container Specific + - AUTUMN_MONGO_URI=mongodb://revolt-database + # Below is Standard Config + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # Metadata and image proxy (january) + revolt-january: + image: ghcr.io/revoltchat/january:master + container_name: revolt-january + depends_on: + - revolt + restart: always + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + # Create buckets for minio. + revolt-createbuckets: + image: minio/mc + container_name: revolt-createbuckets + depends_on: + - revolt-minio + entrypoint: > + /bin/sh -c " + while ! curl -s --output /dev/null --connect-timeout 1 http://revolt-minio:9000; do echo 'Waiting minio...' && sleep 0.1; done; + /usr/bin/mc alias set minio http://revolt-minio:9000 minioautumn ${REVOLT_MINIO_ROOT_PASSWORD}; + /usr/bin/mc mb minio/attachments; + /usr/bin/mc mb minio/avatars; + /usr/bin/mc mb minio/backgrounds; + /usr/bin/mc mb minio/icons; + /usr/bin/mc mb minio/banners; + /usr/bin/mc mb minio/emojis; + exit 0; + " + networks: + - tipi_main_network + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + + revolt: + image: caddy + container_name: revolt + restart: always + environment: + - MONGODB=mongodb://revolt-database + - REDIS_URI=redis://revolt-redis/ + - HOSTNAME=:80 + - REVOLT_APP_URL=https://${APP_DOMAIN} + - REVOLT_PUBLIC_URL=https://${APP_DOMAIN}/api + - VITE_API_URL=https://${APP_DOMAIN}/api + - REVOLT_EXTERNAL_WS_URL=wss://${APP_DOMAIN}/ws + - AUTUMN_PUBLIC_URL=https://${APP_DOMAIN}/autumn + - JANUARY_PUBLIC_URL=https://${APP_DOMAIN}/january + - REVOLT_UNSAFE_NO_CAPTCHA=1 + - REVOLT_SMTP_HOST=${REVOLT_SMTP_HOST} + - REVOLT_SMTP_USERNAME=${REVOLT_SMTP_USERNAME} + - REVOLT_SMTP_PASSWORD=${REVOLT_SMTP_PASSWORD} + - REVOLT_SMTP_FROM=${REVOLT_SMTP_FROM} + - REVOLT_INVITE_ONLY=${REVOLT_INVITE_ONLY} + - REVOLT_MAX_GROUP_SIZE=150 + - REVOLT_VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - REVOLT_VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - AUTUMN_S3_REGION=minio + - AUTUMN_S3_ENDPOINT=http://revolt-minio:9000 + - MINIO_ROOT_USER=minioautumn + - MINIO_ROOT_PASSWORD=${REVOLT_MINIO_ROOT_PASSWORD} + - AWS_ACCESS_KEY_ID=${REVOLT_AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${REVOLT_AWS_SECRET_ACCESS_KEY} + ports: + - "8272:80" + - "8273:443" + volumes: + - ${APP_DATA_DIR}/data/CaddyFiles:/etc/caddy/ + - ${APP_DATA_DIR}/data/caddy-data:/data + - ${APP_DATA_DIR}/data/caddy-config:/config + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.revolt.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.revolt.entrypoints: websecure + traefik.http.routers.revolt.service: revolt + traefik.http.routers.revolt.tls.certresolver: myresolver + traefik.http.services.revolt.loadbalancer.server.port: 80 + diff --git a/apps/revolt/metadata/description.md b/apps/revolt/metadata/description.md new file mode 100644 index 00000000..ff68a248 --- /dev/null +++ b/apps/revolt/metadata/description.md @@ -0,0 +1,32 @@ +# Install Information + +# SMTP Server + +For Email Verfication, you need some sort of SMTP Provider + +A few options are using GMAIl as a SMTP server, a SMTP Provider like SMTP2Go or MailGun, or if you host your own mailserver + +Here are some Methods +- [Gmail SMTP Guide by Noted.lol](https://noted.lol/setup-gmail-smtp-sending-2023/) +- [SMTP2Go](https://get.smtp2go.com/cplmmj203pg7) + +### SMTP From +Make Sure when setting the SMTP From Adress, it matches the `Revolt ` format. An example could be `Tipi Chat ` + +## Invite Only Instance + +Set Revolt Invite Only to `1` + +If set, you can create invites by SSHing into your Tipi Server and running these commands + +1. `docker exec -i revolt-database mongosh` + +2. +``` +use revolt +db.invites.insertOne({ _id: "enter_an_invite_code_here" }) +``` + +### Voice Server Information + Revolts self hosted setup currently does not have a working voice server. Thier Voice Server, [Vortex](https://github.com/revoltchat/vortex), [devlopemnt is paused.](https://github.com/revoltchat/self-hosted/pull/28#issuecomment-1522325342) + diff --git a/apps/revolt/metadata/logo.jpg b/apps/revolt/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..98c630ad2ee3f1c09f79e7c71271987eb9e0db56 GIT binary patch literal 5475 zcmeHKc|4Ts+kXbxijs&JPKY{VX|nHiQW9nk616WkxB*4$Z!^^|X&&$iZlb?U5px7Qk0Rcg%h^Ua5tn?u{8EKh= z@-R&m`6Fsa4$2%o0aw%3H83zZq-;A8W z^%@Z3FilkbCvdHZC2ZVIdZaPDcFrIX0db8>8G5EZiHTV!Ad z+nt*STvQWcLqoWDxOe=^diNE!>m4F7f6Cb zh*JnK1ja6_!o$Ck{*U&5y94^v07{~7qV*2CXfCdpuyk<#L=kuDIM98W!gFjpx`=HW&h;%tWls; zf0#uZluVND1g&)qFU*f|DPTUE-I>uZ*-pzLM)j`e#vMMW``OIzQ)DPw57A1&mY(1n z{A`x0i}y5q&OnU>gl3I3{*j2W9a6Yp$x->o9|Av{ePPoVl$`Qn&F5#~%1?Za=8e7a z4%#fB2ZSMhW=JVLQfB0D8Os6&r98^H>G#O#mDNVRRgLv$k(E~qF?X5i+rJMND5q$M z566kn4VQDdi>6UgQ3K!cKmVsA*o_#-sT#^5XA&JXFtlRm&Xc(vGh(tDgw4q%@=Jxh zW~r?dzlNeInw&q4bb&z?!1k1RS7|+4c6pzyUM4!0g3L-42vVhWe#r2!ny_TnAIg)Q zc5-sY0{r3M#D%Npq(!94D-=Or^k@t?idPYe3R%DfJ#iMmckp5%nOiSDZ}fh5HZp;j zGkSv|jF$2Y+ft#eJyo|mU2g0UfYxVR+y6;08=di1V@FCGy3NiRIMY@8Y+T@KZ-=fC(q?CzC7FP zB{5=8^QEdzCp@l;)#}3DBj0_`EVCMZQd>gLiBu0_0rfZh;|%-N#EYjdytaKRUWSS8-kMiH6X3e~S8bsA^}97R{cEXGC4zv2b}1R*I^Q48GHf z(>pwk>nwkaQV;gCO>nLCMAP*`x~GYOZ^}MQIM4Z5H>R&Y=*{zU#a<7vQ@K`;SqfHI zFwPp}yrl6J`;#UUe5$x*m}J&&sJTDF5sMjCgxQ(9V&N`z_B|8O64O{SGbA7Lb;6i( zua1)6c>49agdp-cT(-`jGKvC9W!y>)%B(3@a zt*%}o*cu^sziI6xo6Gi0OkKzsLx%7vr%B(sGmUm7(|1~bn$|%{kqs?hKu;TT78RvP zrz>4j!#k(s6eksQydxW$U^dp;z7O{o+Z4HgaAQ{H4>Qe`403%17Ke7F7gBw(i@x2Pv z-<+d8<5vW33K@X>2moA;hYQ1^`;NUemY~fsHo$Tqi$FSaE>^k}!$&?F?^WsaRIW{*UkHr#$kMUu`6*&_Mu)1`>9y1Sgck(L`=Fd zz}~{+0KlE>`q*_fU_(=lq1R+sOX|HilE0Zh9xzX=`~}V4vB-qq*_euYG5ujTUnEPJ z28m-BGx?+Awq~)lS#=K!YTSe3%(54$*ScEnrn~VaSau-1$MEukXx{ z)`^vF`pYAe-|s(?_RC6QnS_p~pXdOd&MO}sNx$iTRQ38kq{p

$nJL zCw-9xBqAw-$-l@Sb&g^#IDZ`92<7W!%sJtqxq@**HCk##=Z5x7Y3y)K3ke3)1`dNx zPkj=CW`jeX-T>2}CRa}BcYWyX@O@JJkp&=ymbNXP$Vsx3{A=M;My`7y*B@jmBQfAJ z)-l%Z0CKjY#bD-Vjzg1A0Du!w@UCD}_eNrZKjCW1F!f`$w@s*xuWsOe)WjN+|Py;|%G*MJgD>sq1bR zTD3+-t0}?V7m;R{sKx>=ja%a^+-WC^M(@nelaJ*M(O3XKXP~JAz2G-$Zz|f}VrKSN zZd%e`XAjOo4mHf0gWb|n{a;Gce3Prm^u7gr`IGP{%y*#8TBWSKuH_)i=xxP|mv_w9l0^w-td)%UFDbiCrE^QBYE9hYa9pdx)NfE1Q_6nb?N`I=s3ANo7! z6h^J?>_s5Ze(@=_r^?3;gNqmLOC@Mo8oDIum>UobVFE{L^CfP&Y)#+Ew$d~Lc7}to zf0$47tGac{J_uc_j2ag1l`5iS_XVC5#8TeieC%$+HZ%I2?Mhm7kdi@Iv6a@GU1smz zy=xVJ0JE)g_S4%iaCd3YR;oX~|0o;muO()5B?CO9OtF~J*^I?4hDwuCvO?iGum-}x z8VLV`6K8Gd%sRSYAN5elX#5;XO4~}tCGez_*(0(|(S+YghWCIP)l(|eovh>hCOv5E zM8A4(AoNm^xa&(ys;+F_LUxx+w;MV|eY~r1DI_ibz+SDqQ@UF-uxn@uH)0x;g5Ris zB#Ztb^-ITDYb+V> zr6dIfayEm1*V^H!w`!o-8FpGxpvaeQr5xd*g%qu9EqH@mg+MF+&E^cMZ0 zSr{Z!uTLOZK&}dY8+m%DilMgNAFS%y5F?3C zMvHx+57M8c<0qb5uaGM(ZC#r6oLr@2F@y9#UvX;aq(+nkvw*2C&J*3?0I*w%@g!sH zNduAe8@xWI*MRuSO5Q23rm4LYrbgoP*(}M8RLZ-8V}G^8)igCuSD^?A{eC#~dM>;# z=MXA1Ij~~GnwV_h?woR+WBJuT){K~8N;B0(_cJ3|pV>E(jIx`B(4-#t7VM~ z)?NF;_bMO#r@Xm{@>`m>R!%(&)}&WRm%U4R*w?mk3cMeyfhdd^=-H9IpvVFQhg`ic)Ijr>mHUK(NnUa?VZ$B9+M#aT=v#Ho=Tuo6FXD%`Z>R|arVUf)uh1+)C+t%-yce<~G;oxp{S?VeK$lS+$ zn`hC*)DlPO-A&aICM&W7oMBXFZ|XQqIuT!!zBPP2KB3S3+Ay4Un;@C2vt_T`(H<(H zHZw+8-4=s9W>fz=ITWnU&h-eaA=i9(tLw^WY!{y0r~FsBOy9r$H@|DRkbE>i@a8K| zixTuwB66HI=e6DL8ItcAQ^ZI+RMGd&u2azVqHQdnlhO&x0oz&s;ehBHANhqV{+rS;4 zqNkyuiA*i|2jqeAahfL)8DsjqYFA#(B4Kamqmd6T@&#qbMSlFdv;nSM`AW^ml~bSc zH!PPzn4qt1Ww4uE_$mEepxeJuF5CW1{bS$K3bm-S)p5U+ zD6Yq;36UJASsY57>m6CBy}hQRwO04=ah|oj_JkEvSeUvy-L5KXNa6!<9=zdg#yq=Q z$p%m`zy_qjPGZF^;o?Ta6hc;>GH_Fspig^TTj4brL^vCC)H zUexZkz`v30>ubfgixLv-dS%D`*sJOnb)rLg+}#Zf&)8y6URUssJ4{35u$0SF@KtC| z_UhI_6#ZG{Lj$kq{#QvQUii5@$@S(S=Csu*OmrwefIjZZ`odt>aC*zy?Ffz7ET~fv$xlgNjg)Wv?i0M*D