### stalwart

**initial setup**

1. server identity
    - server hostname: `post.atom.town`
    - default email domain: `atom.town`
    - automatically obtain tls certificate: `true`
    - generate email signing keys: `true`
2. storage
    - main data storage: `rocksdb`
    - path: `/var/lib/stalwart/`
3. account directory
    - directory type: `use internal`
4. logging
    - log destination: `console`
5. automatic dns management
    - dns server type: `porkbun`
    - description: `porkbun`

**further setup**

- settings -> security -> allowed ips
  - added `172.18.0.0/16`; reason: `docker internal`
- settings -> network -> http -> security
  - permissive cors policy: `true`   **[restart needed]**
- settings -> authentication -> oidc provider
  - oauth settings
    - key: `secret read from environment variable`
    - variable name: `OIDC_KEY`
  - openid connect
    - signature algorithm: `ECDSA using P-384 and SHA-384`
    - signature key: `secret read from environment variable`
    - variable name: `OIDC_SIGNATURE_KEY`
- management -> directory -> oauth clients
  - create oauth client
    - client id: `gitea`
    - description: `Gitea`
    - client secret: `<generate_secret>`
    - redirect uris: `https://git.atom.town/user/oauth2/Stalwart/callback`

**useful links**

- https://stalw.art/docs
- https://testconnectivity.microsoft.com/tests/Imap/input
- https://mail-tester.com
</details>
