A resilient temporary email platform rebuilt around Go + SQLite with the same MoeMail frontend.
English • 简体中文
MoeMail is now powered by:
.eml + attachments stored on disk, and structured metadata in SQLite.deploy/.This repository no longer depends on Cloudflare Email Routing, Workers, D1, KV, or Pages for production functionality.
# Go backend
cd cmd/moemail
go run .
# Next frontend (with API rewritten to `MOEMAIL_API_ORIGIN`)
cd /workspace
npm run dev
Point your browser at http://127.0.0.1:3000 while MOEMAIL_API_ORIGIN targets the running Go service that listens on /api/.
# 1. Export static frontend assets and sync them into internal/webui/out/
npm run build:webui
# 2. Build the single Go binary with embedded frontend assets
go build ./cmd/moemail
npm run build:webui switches Next into output: "export" mode, generates out/, and copies the result into internal/webui/out/ so //go:embed can bundle the whole UI shell into the Go binary.
Match the Go service with systemd or Docker using deploy/systemd/moemail.service, and terminate Cloudflare Workers + Pages. DNS records should point mail.<domain> directly to your Go SMTP listener (no Cloudflare Email Routing proxy). Turnstile may stay if desired, but SMTP reception, authentication, and storage all run inside the Go binary.