summaryrefslogtreecommitdiff
path: root/mail
AgeCommit message (Collapse)AuthorLines
13 daysMove forward proxy from Squid to Caddy (port 80/443)yyamashita-0/+1
Replace standalone Squid container with caddy-forwardproxy plugin so the proxy shares Caddy's existing ports and TLS. HTTP on :80 and HTTPS on :443. Auth is read from the same vpn/users.conf at Caddy startup via entrypoint.sh. DNS: add proxy to setup-route53.py WEB_SUBDOMAINS. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30Add strongSwan IKEv2 VPN serviceyyamashita-0/+1
- vpn/: Dockerfile, docker-compose.yml, swanctl.conf.tpl, entrypoint.sh - install.sh: Caddy 証明書流用 + コンテナ起動 - renew-cert.sh: 証明書更新 + swanctl ホットリロード - caddy/Caddyfile: vpn.yyamashita.com 追加(Let's Encrypt 証明書取得用) - post-receive: vpn/deploy.sh を追加 - setup-route53.py: WEB_SUBDOMAINS に vpn を追加 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19Add microblog serviceyyamashita-0/+1
- Caddy: route blog.yyamashita.com → microblog-app:3000 - git: add microblog post-receive hook and update work tree path to /app/microblog - DNS: add blog subdomain to Route 53 WEB_SUBDOMAINS Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19Rename hetzner-admin domain and use CNAME for web subdomainsyyamashita-5/+51
- caddy/Caddyfile: admin.yyamashita.com → hetzner-admin.yyamashita.com - mail/dns/setup-route53.py: add A record for primary, CNAME records for all web service subdomains pointing to hetzner.yyamashita.com - CLAUDE.md: update access URL Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09Switch mail container from SES relay to direct deliveryyyamashita-14/+2
Port 25 outbound is no longer blocked on Hetzner, so SES relay is unnecessary. Remove relayhost, SASL auth config, and libsasl2-modules. Postfix now delivers directly to recipient MX; inet_protocols=ipv4 already present to avoid IPv6 PTR issues. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Add libsasl2-modules to mail container for Postfix SASL authyyamashita-0/+1
Required for smtp_sasl_auth_enable with Amazon SES. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Configure Amazon SES relay for Postfix (port 25 blocked by Hetzner)yyamashita-2/+14
SES credentials are injected via .env file (not committed). entrypoint.sh creates sasl_passwd at runtime from SES_ACCESS_KEY_ID / SES_SMTP_PASSWORD. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01entrypoint: copy resolv.conf etc into Postfix chroot before startyyamashita-0/+8
smtp プロセスは chroot 環境で動くため /etc/resolv.conf が見えず MX ルックアップが失敗していた。chroot (/var/spool/postfix/etc/) に resolv.conf / hosts / services / nsswitch.conf をコピーして解決。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01entrypoint: fix DNS via cat-to-bind-mount (no python3/sed needed)yyamashita-9/+5
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01entrypoint: use python3 for resolv.conf edit (sed -i fails on bind mount)yyamashita-3/+8
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01entrypoint: replace Docker embedded DNS with external resolversyyamashita-0/+5
127.0.0.11 は MX クエリを正しく処理できないため 8.8.8.8/1.1.1.1 に差し替える。 メールコンテナはコンテナ名解決が不要なため問題なし。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Fix milter IPv4 binding and container DNS for MX lookupsyyamashita-3/+6
- opendkim.conf / main.cf: localhost → 127.0.0.1 (getent がIPv6を優先し Postfix の inet_protocols=ipv4 と競合していた) - docker-compose.yml: dns: 8.8.8.8/1.1.1.1 を追加 (Docker embedded DNS が MX クエリを解決できなかった) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01setup-route53: apply records individually, skip CNAME conflictsyyamashita-12/+22
CNAME が既に存在するドメインへの TXT 追加は競合エラーになるため、 レコードを1件ずつ適用し、競合は SKIP してその他は継続する。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Fix entrypoint: remove chmod on read-only mount, run opendkim as rootyyamashita-6/+3
/etc/opendkim が :ro マウントのため chmod/chown が失敗していた問題を修正。 opendkim.conf で UserID root に変更しコンテナ内でルートとして実行する。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Fix DKIM key generation: use host opendkim-tools instead of Dockeryyamashita-18/+27
Ubuntu 24.04 ホストに直接 apt install して opendkim-genkey を実行する。 Debian Bookworm の Docker 内では OpenSSL 3.x 互換性問題で失敗するため。 setup-route53.py: ホストゾーン自動検出・SERVER_IP 自動取得を追加。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Add Postfix+OpenDKIM MTA with txt-based domain managementyyamashita-0/+359
- mail/ ディレクトリ追加: Postfix + OpenDKIM の Docker コンテナ - mail/domains.txt で送信ドメインを管理(現在: golive.yyamashita.com) - install.sh が domains.txt から KeyTable/SigningTable を動的生成 - setup-route53.py で SPF/DKIM/DMARC を Route 53 に一括設定 - post-receive フックに mail/deploy.sh を追加 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>