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 00000000..98c630ad Binary files /dev/null and b/apps/revolt/metadata/logo.jpg differ