Files
vps/hosts/mx2.windy.me.md
T

2.0 KiB
Raw Blame History

mx2.windy.me

Item Value
Role Mail server (mailcow)
SSH ssh -4 windy@mx2.windy.me (pubkey; root denied; prefer IPv4 from WSL)
Install path /opt/mail
Compose project cow (COMPOSE_PROJECT_NAME=cow)
Compose file /opt/mail/docker-compose.yml
Config /opt/mail/mailcow.conf (.env → symlink)
Hostname MAILCOW_HOSTNAME=mx2.windy.me
TZ Asia/Shanghai
IPv4 194.163.160.244
IPv6 2a02:c207:2284:8258::1
Docker network IPV4_NETWORK=172.22.1
UI https://mx2.windy.me

Ports (host-published)

25, 465, 587 (SMTP), 110/995 (POP), 143/993 (IMAP), 4190 (Sieve), 80/443 (UI)

Domain & mailboxes

  • Domain: windy.me (primary on this host)
  • MX for windy.me: mx2.windy.me (prio 20), mx.windy.me (prio 30)
  • Mailboxes (examples): zhiqiang@windy.me, claw@windy.me, hermes@windy.me
  • ACME / Lets Encrypt enabled (SKIP_LETS_ENCRYPT=n); cert SAN includes mx2, autoconfig, autodiscover
  • PTR (v4/v6) → mx2.windy.me

Ops notes

  • Manage with: cd /opt/mail && docker compose …
  • SKIP_CLAMD=y may still leave clamd running after updates; recreate if you need it truly skipped
  • Host has ~8G RAM, no swap; watch memory under load
  • Unrelated stopped containers may exist (zc-* monitoring stack) — not part of mailcow

Client access (SMTP / IMAP)

See mailcow-smtp-client.

  • Send: mx2.windy.me:587 STARTTLS (or :465 SSL), auth = full email + mailbox password
  • IMAP: mx2.windy.me:993 · POP: :995
  • Webmail: https://mx2.windy.me

Runbooks

Verified

Last checked: 2026-08-01 — ./scripts/check-mx2.sh exit 0 (compose up, watchdog 100%, empty queue, TLS LE OK, SMTP Postcow, A/AAAA/PTR/MX/SPF OK).