add: Stalwart Mail app (#3122)
* Add stalwart-mail * Update apps/stalwart-mail/metadata/description.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactor(stalwart-mail): small changes --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stavros <steveiliop56@gmail.com>
This commit is contained in:
parent
4324985f3f
commit
854aa78042
42
apps/stalwart-mail/config.json
Normal file
42
apps/stalwart-mail/config.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Stalwart Mail",
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"tipi_version": 1,
|
||||
"version": "0.7.0",
|
||||
"port": 8677,
|
||||
"id": "stalwart-mail",
|
||||
"categories": [
|
||||
"media",
|
||||
"network",
|
||||
"utilities"
|
||||
],
|
||||
"description": "Stalwart is a scalable, secure and robust open-source mail server software designed for the 21st century.",
|
||||
"short_desc": "Open-source mail server solution with JMAP, IMAP4, and SMTP support",
|
||||
"author": "Stalwart Labs",
|
||||
"source": "https://github.com/stalwartlabs",
|
||||
"website": "https://stalw.art",
|
||||
"requirements": {
|
||||
"ports": [
|
||||
25,
|
||||
143,
|
||||
465,
|
||||
587,
|
||||
993,
|
||||
4190
|
||||
]
|
||||
},
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "ip",
|
||||
"label": "Network Interface (default: 0.0.0.0)",
|
||||
"required": false,
|
||||
"env_variable": "NETWORK_INTERFACE"
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
43
apps/stalwart-mail/docker-compose.yml
Normal file
43
apps/stalwart-mail/docker-compose.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
stalwart-mail:
|
||||
image: stalwartlabs/mail-server:v0.7.0
|
||||
container_name: stalwart-mail
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/opt/stalwart-mail
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
ports:
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:25:25/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:143:143/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:465:465/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:587:587/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:993:993/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:4190:4190/tcp
|
||||
- ${APP_PORT}:8080
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.stalwart-mail-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.stalwart-mail.loadbalancer.server.port: 8080
|
||||
# Web
|
||||
traefik.http.routers.stalwart-mail-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.stalwart-mail-insecure.entrypoints: web
|
||||
traefik.http.routers.stalwart-mail-insecure.service: stalwart-mail
|
||||
traefik.http.routers.stalwart-mail-insecure.middlewares: stalwart-mail-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.stalwart-mail.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.stalwart-mail.entrypoints: websecure
|
||||
traefik.http.routers.stalwart-mail.service: stalwart-mail
|
||||
traefik.http.routers.stalwart-mail.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.stalwart-mail-local-insecure.rule: Host(`stalwart-mail.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.stalwart-mail-local-insecure.entrypoints: web
|
||||
traefik.http.routers.stalwart-mail-local-insecure.service: stalwart-mail
|
||||
traefik.http.routers.stalwart-mail-local-insecure.middlewares: stalwart-mail-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.stalwart-mail-local.rule: Host(`stalwart-mail.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.stalwart-mail-local.entrypoints: websecure
|
||||
traefik.http.routers.stalwart-mail-local.service: stalwart-mail
|
||||
traefik.http.routers.stalwart-mail-local.tls: true
|
68
apps/stalwart-mail/metadata/description.md
Normal file
68
apps/stalwart-mail/metadata/description.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
## Stalwart Mail server
|
||||
|
||||
Stalwart is a scalable, secure and robust open-source mail server software designed for the 21st century.
|
||||
|
||||
### Admin Password
|
||||
|
||||
See [Log in to the web interface](https://stalw.art/docs/install/docker#log-in-to-the-web-interface) to know how to get the admin password.
|
||||
|
||||
### Screenshots
|
||||
|
||||
<img src="https://github.com/stalwartlabs/mail-server/blob/main/img/screencast-setup.gif?raw=true" alt="Stalwart Mail Server setup screencast"><br>
|
||||
|
||||
### Features
|
||||
|
||||
**Stalwart Mail Server** is an open-source mail server solution with JMAP, IMAP4, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable.
|
||||
|
||||
Key features:
|
||||
|
||||
- **JMAP** server:
|
||||
- JMAP Core ([RFC 8620](https://datatracker.ietf.org/doc/html/rfc8620))
|
||||
- JMAP Mail ([RFC 8621](https://datatracker.ietf.org/doc/html/rfc8621))
|
||||
- JMAP for Sieve Scripts ([DRAFT-SIEVE-19](https://www.ietf.org/archive/id/draft-ietf-jmap-sieve-19.html))
|
||||
- JMAP over WebSocket ([RFC 8887](https://datatracker.ietf.org/doc/html/rfc8887)), JMAP Blob Management ([RFC 9404](https://www.rfc-editor.org/rfc/rfc9404.html)) and JMAP for Quotas ([RFC 9425](https://www.rfc-editor.org/rfc/rfc9425.html)) extensions.
|
||||
- **IMAP4** server:
|
||||
- IMAP4rev2 ([RFC 9051](https://datatracker.ietf.org/doc/html/rfc9051)) full compliance.
|
||||
- IMAP4rev1 ([RFC 3501](https://datatracker.ietf.org/doc/html/rfc3501)) backwards compatible.
|
||||
- ManageSieve ([RFC 5804](https://datatracker.ietf.org/doc/html/rfc5804)) server.
|
||||
- Numerous [extensions](https://stalw.art/docs/development/rfcs#imap4-and-extensions) supported.
|
||||
- **SMTP** server:
|
||||
- Built-in [DMARC](https://datatracker.ietf.org/doc/html/rfc7489), [DKIM](https://datatracker.ietf.org/doc/html/rfc6376), [SPF](https://datatracker.ietf.org/doc/html/rfc7208) and [ARC](https://datatracker.ietf.org/doc/html/rfc8617) support for message authentication.
|
||||
- Strong transport security through [DANE](https://datatracker.ietf.org/doc/html/rfc6698), [MTA-STS](https://datatracker.ietf.org/doc/html/rfc8461) and [SMTP TLS](https://datatracker.ietf.org/doc/html/rfc8460) reporting.
|
||||
- Inbound throttling and filtering with granular configuration rules, sieve scripting and milter integration.
|
||||
- Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support.
|
||||
- Envelope rewriting and message modification.
|
||||
- **Spam and Phishing** filter:
|
||||
- Comprehensive set of filtering **rules** on par with popular solutions.
|
||||
- Statistical **spam classifier** with automatic training capabilities.
|
||||
- DNS Blocklists (**DNSBLs**) checking of IP addresses, domains, and hashes.
|
||||
- Collaborative digest-based spam filtering with **Pyzor**.
|
||||
- **Phishing** protection against homographic URL attacks, sender spoofing and other techniques.
|
||||
- Trusted **reply** tracking to recognize and prioritize genuine e-mail replies.
|
||||
- Sender **reputation** monitoring by IP address, ASN, domain and email address.
|
||||
- **Greylisting** to temporarily defer unknown senders.
|
||||
- **Spam traps** to set up decoy email addresses that catch and analyze spam.
|
||||
- **Flexible and scalable**:
|
||||
- Pluggable storage backends with **RocksDB**, **FoundationDB**, **PostgreSQL**, **mySQL**, **SQLite**, **S3-Compatible**, **Redis** and **ElasticSearch** support.
|
||||
- Built-in, **LDAP** or **SQL** authentication backend support.
|
||||
- Full-text search available in 17 languages.
|
||||
- Disk quotas.
|
||||
- Sieve scripting language with support for all [registered extensions](https://www.iana.org/assignments/sieve-extensions/sieve-extensions.xhtml).
|
||||
- Email aliases, mailing lists, subaddressing and catch-all addresses support.
|
||||
- Integration with **OpenTelemetry** to enable monitoring, tracing, and performance analysis.
|
||||
- **Web-based administration**:
|
||||
- Account, domain, group and mailing list management.
|
||||
- SMTP queue management for messages and outbound DMARC and TLS reports.
|
||||
- Report visualization interface for received DMARC, TLS-RPT and Failure (ARF) reports.
|
||||
- Configuration of every aspect of the mail server.
|
||||
- Log viewer with search and filtering capabilities.
|
||||
- Self-service portal for password reset and encryption-at-rest key management.
|
||||
- **Secure and robust**:
|
||||
- Encryption at rest with **S/MIME** or **OpenPGP**.
|
||||
- Automatic TLS certificate provisioning with [ACME](https://datatracker.ietf.org/doc/html/rfc8555).
|
||||
- OAuth 2.0 [authorization code](https://www.rfc-editor.org/rfc/rfc8628) and [device authorization](https://www.rfc-editor.org/rfc/rfc8628) flows.
|
||||
- Automated blocking of hosts that cause multiple authentication errors (aka **fail2ban**).
|
||||
- Access Control Lists (ACLs).
|
||||
- Rate limiting.
|
||||
- Security audited (read the [report](https://stalw.art/blog/security-audit)).
|
||||
- Memory safe (thanks to Rust).
|
BIN
apps/stalwart-mail/metadata/logo.jpg
Normal file
BIN
apps/stalwart-mail/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
Loading…
Reference in New Issue
Block a user