Skip to content

Latest commit

 

History

History
90 lines (61 loc) · 2.36 KB

deploy.md

File metadata and controls

90 lines (61 loc) · 2.36 KB

🧰 自建部署教程 (v2.0.0+)

邮件接收原理

使用 Cloudflare 的邮件转发功能,将接收到的所有邮件通过 Workers 转发到本程序中。

所以自建的邮箱域名必须使用 Cloudflare 进行 DNS 解析

开启邮件转发 & 创建 Workers

  • 首先开启邮件转发,按照官方流程来就行

  • 创建一个 Workers,模板随便选都可以

workers-create

创建好之后点击Code editor编辑代码,将此处的代码粘贴进去,需要将其中的域名mail.sunls.de替换为自己的,然后别忘记点击Save and deploy部署:

workers-edit

  • 然后需要添加一条Catch-All的规则,注意要选择Send to a Worker,如图:

email-routing.png

环境变量配置

数据库配置

目前仅支持 PostgreSQL

  • DB_HOST: 数据库地址
  • DB_PASS: 数据库密码
  • DB_NAME: 数据库名称,默认tmail

必须

  • DOMAIN_LIST: 支持的域名列表,使用,分割,例如: isco.eu.org,chato.eu.org

非必须

  • ADMIN_ADDRESS: 管理员邮箱地址,可以查看所有邮件 (默认返回最新100条)
  • HOST: 服务监听地址,默认为127.0.0.1
  • PORT: 服务监听端口,默认为3000

统计

  • UMAMI_ID: Umami 统计的 website-id
  • UMAMI_URL: Umami 统计的 script.js 地址
  • UMAMI_DOMAINS: Umami 统计只在特定域名运行,逗号分割

部署

请修改其中的环境变量配置

Docker

docker run --name tmail -d --restart unless-stopped -e 'DB_HOST=127.0.0.1' -e 'DB_PASS=postgres' -e 'HOST=0.0.0.0' -e 'DOMAIN_LIST=isco.eu.org,chato.eu.org' -p 3000:3000 sunls24/tmail

Docker Compose & Caddy (推荐)

如果不需要反向代理,需要设置HOST=0.0.0.0环境变量

docker-compose.yaml

version: "3.0"

services:
  tmail:
    container_name: tmail
    image: sunls24/tmail:latest
    network_mode: host
    restart: unless-stopped
    environment:
      - "DB_HOST=127.0.0.1"
      - "DB_PASS=postgres"
      - "DOMAIN_LIST=isco.eu.org,chato.eu.org"
    volumes:
      - ./tmail:/app/fs

Caddyfile

mail.example.com {
    encode zstd gzip
	@cache path /_astro/* /*.webp /favicon.svg
	header @cache Cache-Control "public, max-age=31536000, immutable"
    reverse_proxy 127.0.0.1:3000
}