本地自托管Supabase无法替换确认邮件模板,求问题排查
排查自托管Supabase确认邮件模板不生效的步骤
去掉环境变量的引号:
.env里的MAILER_TEMPLATES_CONFIRMATION不要加引号,改成:MAILER_TEMPLATES_CONFIRMATION=http://localhost:3000/templates/email/confirm.html引号会被Docker当成变量值的一部分,导致GOTRUE无法正确解析模板地址。
修正容器内的模板访问地址:Docker容器内部的
localhost指向容器自身,无法访问主机的localhost:3000,需要替换成主机可被容器访问的地址:- Docker Desktop环境用
host.docker.internal:http://host.docker.internal:3000/templates/email/confirm.html - Linux环境用主机的局域网IP(比如
192.168.1.100):http://192.168.1.100:3000/templates/email/confirm.html
- Docker Desktop环境用
确认模板包含必填变量:自定义模板必须包含GOTRUE要求的变量,比如确认链接变量
{{ .ConfirmationURL }},如果缺少这些变量,GOTRUE会自动 fallback到默认模板。完全重启Docker服务:不要只重启单个容器,执行以下命令确保配置完全生效:
docker-compose down docker-compose up -d检查GOTRUE日志定位问题:查看GOTRUE容器的日志,确认模板加载是否有错误:
docker logs $(docker ps -q --filter name=gotrue)如果出现404、变量缺失等错误,根据日志提示修复对应问题。
验证.env文件加载:确保
.env文件和docker-compose.yml在同一目录下,且Docker Compose正确读取了最新的环境变量,可以用docker-compose config命令查看GOTRUE服务的最终配置,确认GOTRUE_MAILER_TEMPLATES_CONFIRMATION的值是否正确。
内容的提问来源于stack exchange,提问作者Alpha Geek
相关产品推荐
相关产品推荐

