- 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.
2.2 KiB
2.2 KiB
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 / Let’s Encrypt enabled (
SKIP_LETS_ENCRYPT=n); cert SAN includesmx2,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=ymay still leaveclamdrunning 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:587STARTTLS (or:465SSL), 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).