revoltchat/self-hosted

bug: Cannot Create Account (EMAILFAILED)

Closed this issue · 2 comments

What happened?

Hello. I am currently running a self-hosted Revolt instance from my computer running Linux Mint. The site loads with no issues and existing accounts can log in with no issues. The account I made for myself when I first started and the instance was local only can log in just fine.

The issue comes with trying to create an account. After typing in the email address and password, it generates the error: EMAILFAILED.

I would also like to add that when I navigate to local.revolt.chat to use the instance locally from the hosting computer, I get the same error message when trying to create an account.

I get the same error when I try to reset the password for my account which already exists.

Here's a screenshot of the error:
error-email

The problem seems to do with my local configuration. Here is the browser console log:
Screenshot 2024-08-25 at 4 23 26 PM

Here are my .env, docker-compose.yml and Revolt.toml configurations (mydomain.com is used as a placeholder for my actual domain):

.env:

HOSTNAME=:80
REVOLT_APP_URL=https://mydomain.com
REVOLT_PUBLIC_URL=https://mydomain.com/api
VITE_API_URL=https://mydomain.com/api
REVOLT_EXTERNAL_WS_URL=wss://mydomain.com/ws
AUTUMN_PUBLIC_URL=https://mydomain.com/autumn
JANUARY_PUBLIC_URL=https://mydomain.com/january

docker-compose.yml:

version: "3.8"

services:

MongoDB database

database:
image: mongo
restart: always
volumes:
- ./data/db:/data/db

Redis server

redis:
image: eqalpha/keydb
restart: always

S3-compatible storage server

minio:
image: minio/minio
command: server /data
env_file: .env
volumes:
- ./data/minio:/data
restart: always

Caddy web server

caddy:
image: caddy
restart: always
env_file: .env
ports:
- "80:80"
- "443:443"
- "587:587"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./data/caddy-data:/data
- ./data/caddy-config:/config

API server (delta)

api:
image: ghcr.io/revoltchat/server:latest
env_file: .env
depends_on:
- database
- redis
- caddy
restart: always
volumes:
- type: bind
source: ./Revolt.toml
target: /Revolt.toml

Events service (quark)

events:
image: ghcr.io/revoltchat/bonfire:latest
env_file: .env
depends_on:
- database
- redis
- caddy
restart: always
volumes:
- type: bind
source: ./Revolt.toml
target: /Revolt.toml

Web App (revite)

web:
image: ghcr.io/revoltchat/client:master
env_file: .env
depends_on:
- caddy
restart: always

File server (autumn)

autumn:
image: ghcr.io/revoltchat/autumn:latest
env_file: .env
depends_on:
- database
- createbuckets
- caddy
environment:
- AUTUMN_MONGO_URI=mongodb://database
restart: always

Metadata and image proxy (january)

january:
image: ghcr.io/revoltchat/january:latest
depends_on:
- caddy
restart: always

Create buckets for minio.

createbuckets:
image: minio/mc
depends_on:
- minio
env_file: .env
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host add minio http://minio:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD;
while ! /usr/bin/mc ready minio; do echo 'Waiting minio...' && sleep 1; done;
/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;
"

Revolt.toml:

[database]
mongodb = "mongodb://database"
redis = "redis://redis/"

[hosts]
app = "https://mydomain.com"
api = "https://mydomain.com/api"
events = "wss://mydomain.com/ws"
autumn = "https://mydomain.com/autumn"
january = "https://mydomain.com/january"
voso_legacy = ""
voso_legacy_ws = ""

[api]

[api.registration]
invite_only = false

[api.smtp]
host = "....."
username = "...."
password = "...."
from_address = "...."

reply_to = "...."

port = 587

use_tls = true

[api.vapid]
private_key = "......"
public_key = "......"

[api.fcm]
api_key = ""

[api.apn]
sandbox = false
pkcs8 = ""
key_id = ""
team_id = ""

[api.security]
authifier_shield_key = ""
voso_legacy_token = ""
trust_cloudflare = false

[api.security.captcha]
hcaptcha_key = ""
hcaptcha_sitekey = ""

[api.workers]
max_concurrent_connections = 50

[features]
webhooks_enabled = false

[features.limits]

[features.limits.global]
group_size = 100
message_embeds = 5
message_replies = 5
message_reactions = 20
server_emoji = 100
server_roles = 200
server_channels = 200

new_user_days = 3

[features.limits.new_user]
outgoing_friend_requests = 5

bots = 2
message_length = 2000
message_attachments = 5
servers = 100

attachment_size = 20000000
avatar_size = 4000000
background_size = 6000000
icon_size = 2500000
banner_size = 6000000
emoji_size = 500000

[features.limits.default]
outgoing_friend_requests = 10

bots = 5
message_length = 2000
message_attachments = 5
servers = 100

attachment_size = 20000000
avatar_size = 4000000
background_size = 6000000
icon_size = 2500000
banner_size = 6000000
emoji_size = 500000

[sentry]
api = ""
events = ""

just checking - did you resolve this?