Files
vps/hosts/mx2.windy.me.md
T
windyboy b03d7019c4 docs: onboard AdGuard Home to Ansible; retire check-mx2; migrate plan to Linear
- Add dns.windy.lan to Ansible inventory (adguardhome group/profile) with a
  read-only healthcheck template, systemd timer, and on-demand report parity
  with the other active hosts; verified green on the host.
- Add synapse.chans.xyz to the AGENTS.md active-host quick map.
- Remove plans/; migrate decisions/verification to a Linear vps project doc and
  file the remaining gaps as W1N-46..49 with blocking edges.
- Retire scripts/check-mx2.sh; point mailcow health/update runbooks and the
  mx2 host file at the Ansible health report.
- Trim us2 stub software to verified running services; note dormant dirs.
- Normalize repo docs to English; drop the non-existent CONTEXT.md/ADR claim
  and remove docs/agents/domain.md.
2026-08-06 15:48:48 +08:00

2.2 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

  • Use the Ansible health report for routine checks. Use the gated Ansible Compose reconcile playbook for a reviewed full-stack recreate; retain direct Compose access only for focused incident diagnosis and Mailcow's interactive upstream updater.
  • 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

Routine health: cd ansible && ansible-playbook playbooks/health-report.yml --limit mailcow.

Verified

Last checked: 2026-08-01 — Ansible mailcow health profile OK (compose up, watchdog 100%, empty queue, TLS LE OK, SMTP Postcow, A/AAAA/PTR/MX/SPF OK).