Files
NewSzxcn-Email/README.md
T
LanQin 913a0ef420 chore(deploy): 增强 Docker 构建与发布流程
- 新增 GitHub Actions Docker 工作流,自动执行前端检查、后端测试并发布 GHCR 镜像。
- 为单容器与多容器部署补充镜像配置、使用说明和环境变量示例。
- 优化各 Dockerfile 的构建缓存与镜像体积,提升构建速度并减少无关文件进入镜像。
2026-06-15 22:05:41 +08:00

91 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LanQin Email
LanQin Email 是一个自建邮箱 Webmail MVPReact/Vite + shadcn 风格组件前端,Go + SQLite 后端,默认使用单容器集成 Postfix、Dovecot、OpenDKIM。
## 快速开发
### 后端
```bash
cd apps/api
go mod tidy
go test ./...
go run ./cmd/server
```
默认管理员:
- 邮箱:`admin@lanqin.local`
- 密码:`ChangeMe123!`
生产环境请通过 `LANQIN_ADMIN_PASSWORD` 覆盖。
### 前端
```bash
cd apps/web
npm install
npm run dev
```
前端默认代理 `/api``http://localhost:8080`
### Web UI 规则
`apps/web` 的业务页面和业务组件必须使用官方 shadcn/ui 组件源码。新增 UI primitive 前先执行:
```bash
cd apps/web
npx shadcn@latest add <component>
npm run check:shadcn
```
详细规则见 `apps/web/SHADCN_RULES.md``npm run check:shadcn` 是提交前的实际检查入口。
## Docker 部署
默认单容器部署:
```bash
cd deploy
cp .env.example .env
docker compose up -d --build
```
这个容器内部集成:API、Web、Nginx、Postfix、Dovecot、OpenDKIM。
也可以直接使用 GitHub Actions 自动发布到 GHCR 的镜像:
```bash
cd deploy
cp .env.example .env
# 修改 .env 里的域名、管理员密码,以及 LANQIN_IMAGE
# LANQIN_IMAGE=ghcr.io/<owner>/<repo>:latest
docker compose pull
docker compose up -d
```
如需多容器调试版:
```bash
cd deploy
docker compose -f docker-compose.stack.yml up -d --build
```
真实公网收发前需要正确配置 MX/SPF/DKIM/DMARC,并确认云厂商开放 25/587/993 端口。
## V1 能力
- 管理员/普通用户登录
- 多域名、邮箱账号、别名管理
- DNS 记录展示和检测
- Webmail:文件夹、邮件列表、阅读、写信、附件、搜索、已读、星标、移动、删除
- 开发环境本地投递:给系统内邮箱发送会直接写入对方 Inbox,便于无公网邮件栈验证
## 当前收发说明
- 本地开发:系统内邮箱互发可直接使用;未配置 `LANQIN_SMTP_HOST` 时,外部收件人不会真正投递到公网。
- 服务器部署:`deploy/.env.example` 默认使用 `LANQIN_SMTP_HOST=127.0.0.1`,发件会交给同容器内 Postfix。
- 收件同步:Postfix/Dovecot 收到的 Maildir 邮件会由 API 的 Maildir worker 同步到 SQLite 后展示在 Webmail。
- Maildir worker 通过 `LANQIN_MAILDIR_ROOT``LANQIN_MAILDIR_SCAN_SECONDS` 控制,默认服务器路径为 `/var/mail/vhosts`