Rebrand to INBUXA: product name, protocol greetings, sign-in page, calendar templates, logos, README
One branding module (types::brand!) supplies the name to every protocol greeting, the HTTP realm, the startup banner, Received headers, the user agent, the IMAP ID response and calendar PRODIDs. The sign-in and calendar pages take ihasmail's palette and font and the INBUXA logo, and calendar emails embed the INBUXA lockup. Default calendar and address book names follow. Protocol identifiers (urn:stalwart:jmap, vnd.stalwart Sieve extensions) and upstream copyright notices are unchanged.
This commit is contained in:
@@ -1,186 +1,64 @@
|
||||
<p align="center">
|
||||
<a href="https://stalw.art">
|
||||
<img src="./img/logo-red.svg" height="150">
|
||||
</a>
|
||||
<img src="./img/brand/inbuxa-lockup-light.svg" alt="inbuxa" height="140">
|
||||
</p>
|
||||
|
||||
<h3 align="center">
|
||||
Secure, scalable mail & collaboration server with comprehensive protocol support 🛡️ <br/>(IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV)
|
||||
A complete mail and collaboration server, every feature included, under the AGPL
|
||||
</h3>
|
||||
|
||||
<br>
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/stalwartlabs/stalwart/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/stalwartlabs/stalwart/ci.yml?style=flat-square" alt="continuous integration"></a>
|
||||
|
||||
<a href="https://www.gnu.org/licenses/agpl-3.0"><img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg?label=license&style=flat-square" alt="License: AGPL v3"></a>
|
||||
|
||||
<a href="https://stalw.art/docs/install/get-started"><img src="https://img.shields.io/badge/read_the-docs-red?style=flat-square" alt="Documentation"></a>
|
||||
|
||||
<a href="https://github.com/stalwartlabs/stalwart/releases"><img src="https://img.shields.io/github/downloads/stalwartlabs/stalwart/total?style=flat-square" alt="downloads"></a
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://mastodon.social/@stalwartlabs"><img src="https://img.shields.io/mastodon/follow/109929667531941122?style=flat-square&logo=mastodon&color=%236364ff&label=Mastodon" alt="Mastodon"></a>
|
||||
|
||||
<a href="https://twitter.com/stalwartlabs"><img src="https://img.shields.io/twitter/follow/stalwartlabs?style=flat-square&logo=x&label=Twitter" alt="Twitter"></a>
|
||||
<a href="https://discord.gg/vhqRgdhguq"><img src="https://img.shields.io/discord/923615863037390889?label=Discord&logo=discord&style=flat-square" alt="Discord"></a>
|
||||
|
||||
<a href="https://www.reddit.com/r/stalwartlabs/"><img src="https://img.shields.io/reddit/subreddit-subscribers/stalwartlabs?label=%2Fr%2Fstalwartlabs&logo=reddit&style=flat-square" alt="Reddit"></a>
|
||||
</p>
|
||||
**INBUXA** is a mail and collaboration server: JMAP, IMAP, POP3, SMTP,
|
||||
CalDAV, CardDAV and WebDAV, in one Rust binary, with ihasmail as its web front
|
||||
end. It is a fork of [Stalwart](https://github.com/stalwartlabs/stalwart).
|
||||
|
||||
## Features
|
||||
Stalwart ships some features only in a paid Enterprise Edition: multi-tenancy,
|
||||
masked email, undelete and others. INBUXA ships everything to everybody under
|
||||
the AGPL-3.0, rebuilding those features independently and without using any
|
||||
of Stalwart's Enterprise code.
|
||||
|
||||
**Stalwart** is an open-source mail & collaboration server with JMAP, IMAP4, POP3, SMTP, CalDAV, CardDAV and WebDAV support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable.
|
||||
> **Status: in development, not released.** The fork builds, passes its unit
|
||||
> tests, and runs as a working mail server. The Enterprise features are being
|
||||
> specified and haven't been rebuilt yet. Don't run it in production.
|
||||
|
||||
Key features:
|
||||
## What's different from Stalwart
|
||||
|
||||
- **Email** server with complete protocol support:
|
||||
- JMAP:
|
||||
* [JMAP for Mail](https://datatracker.ietf.org/doc/html/rfc8621) server.
|
||||
* [JMAP for Sieve Scripts](https://www.ietf.org/archive/id/draft-ietf-jmap-sieve-22.html).
|
||||
* [WebSocket](https://datatracker.ietf.org/doc/html/rfc8887), [Blob Management](https://www.rfc-editor.org/rfc/rfc9404.html) and [Quotas](https://www.rfc-editor.org/rfc/rfc9425.html) extensions.
|
||||
- IMAP:
|
||||
* [IMAP4rev2](https://datatracker.ietf.org/doc/html/rfc9051) and [IMAP4rev1](https://datatracker.ietf.org/doc/html/rfc3501) server.
|
||||
* [ManageSieve](https://datatracker.ietf.org/doc/html/rfc5804) server.
|
||||
* Numerous [extensions](https://stalw.art/docs/development/rfcs#imap4-and-extensions) supported.
|
||||
- POP3:
|
||||
- [POP3](https://datatracker.ietf.org/doc/html/rfc1939) server.
|
||||
- [STLS](https://datatracker.ietf.org/doc/html/rfc2595) and [SASL](https://datatracker.ietf.org/doc/html/rfc5034) support as well as other [extensions](https://datatracker.ietf.org/doc/html/rfc2449).
|
||||
- SMTP:
|
||||
* SMTP server with built-in [DMARC](https://datatracker.ietf.org/doc/html/rfc7489), [DKIMv2](https://datatracker.ietf.org/doc/draft-ietf-dkim-dkim2-spec/), [DKIMv1](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.
|
||||
* Automated DKIM key rotation and management.
|
||||
* Inbound throttling and filtering with granular configuration rules, sieve scripting, MTA hooks and milter integration.
|
||||
* Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support.
|
||||
* Envelope rewriting and message modification.
|
||||
- **Collaboration** server:
|
||||
- Calendaring and scheduling:
|
||||
- [CalDAV](https://datatracker.ietf.org/doc/html/rfc4791) and [CalDAV Scheduling](https://datatracker.ietf.org/doc/html/rfc6638) support.
|
||||
- [JMAP for Calendars](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-calendars-24) support.
|
||||
- Contact management:
|
||||
- [CardDAV](https://datatracker.ietf.org/doc/html/rfc6352) support.
|
||||
- [JMAP for Contacts](https://datatracker.ietf.org/doc/html/rfc9610) support.
|
||||
- File storage:
|
||||
- [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) support.
|
||||
- [JMAP for File Storage](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-filenode-03) support.
|
||||
- Sharing with fine-grained access controls:
|
||||
- [WebDAV ACL](https://datatracker.ietf.org/doc/html/rfc3744) support.
|
||||
- [JMAP Sharing](https://datatracker.ietf.org/doc/html/rfc9670) support.
|
||||
- **Spam** and **Phishing** built-in filter:
|
||||
- Comprehensive set of filtering **rules** on par with popular solutions.
|
||||
- LLM-driven spam filtering and message analysis.
|
||||
- Statistical **spam classifier** with collaborative filtering, automatic training capabilities and address book integration.
|
||||
- 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**:
|
||||
- Pluggable storage backends with **RocksDB**, **FoundationDB**, **PostgreSQL**, **mySQL**, **SQLite**, **S3-Compatible**, **Azure** and **Redis** support.
|
||||
- Full-text search available in 17 languages using the built-in search engine or via **Meilisearch**, **ElasticSearch**, **OpenSearch**, **PostgreSQL** or **mySQL** backends.
|
||||
- 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.
|
||||
- Automated DNS management.
|
||||
- Automatic account configuration and discovery with [PACC](https://datatracker.ietf.org/doc/draft-ietf-mailmaint-pacc/), [autoconfig](https://datatracker.ietf.org/doc/draft-ietf-mailmaint-autoconfig/) and [autodiscover](https://learn.microsoft.com/en-us/exchange/architecture/client-access/autodiscover?view=exchserver-2019).
|
||||
- Multi-tenancy support with domain and tenant isolation.
|
||||
- Disk quotas per user and tenant.
|
||||
- **Secure and robust**:
|
||||
- Encryption at rest with **S/MIME** or **OpenPGP**.
|
||||
- Automatic TLS certificate provisioning with [ACME](https://datatracker.ietf.org/doc/html/rfc8555) using `TLS-ALPN-01`, `DNS-01`, `DNS-PERSIST-01` or `HTTP-01` challenges.
|
||||
- Automated blocking of IP addresses that attack, abuse or scan the server for exploits.
|
||||
- Rate limiting.
|
||||
- Security audited (read the [report](https://stalw.art/blog/security-audit)).
|
||||
- Memory safe (thanks to Rust).
|
||||
- **Scalable and fault-tolerant**:
|
||||
- Designed to handle growth seamlessly, from small setups to large-scale deployments of thousands of nodes.
|
||||
- Built with **fault tolerance** and **high availability** in mind, recovers from hardware or software failures with minimal operational impact.
|
||||
- Peer-to-peer cluster coordination or with **Kafka**, **Redpanda**, **NATS** or **Redis**.
|
||||
- **Kubernetes**, **Apache Mesos** and **Docker Swarm** support for automated scaling and container orchestration.
|
||||
- Read replicas, sharded blob storage and in-memory data stores for high performance and low latency.
|
||||
- **Authentication and Authorization**:
|
||||
- **OpenID Connect** authentication.
|
||||
- OAuth 2.0 authorization with [authorization code](https://www.rfc-editor.org/rfc/rfc8628) and [device authorization](https://www.rfc-editor.org/rfc/rfc8628) flows.
|
||||
- **LDAP**, **OIDC**, **SQL** or built-in authentication backend support.
|
||||
- System for Cross-domain Identity Management ([SCIM](https://www.rfc-editor.org/info/rfc7643/)) v2 for automated provisioning.
|
||||
- Two-factor authentication with Time-based One-Time Passwords (`2FA-TOTP`)
|
||||
- Application passwords (App Passwords).
|
||||
- Roles and permissions.
|
||||
- Access Control Lists (ACLs).
|
||||
- **Observability**:
|
||||
- Logging and tracing with **OpenTelemetry**, journald, log files and console support.
|
||||
- Metrics with **OpenTelemetry** and **Prometheus** integration.
|
||||
- Webhooks for event-driven automation.
|
||||
- Alerts with email and webhook notifications.
|
||||
- Live tracing and metrics.
|
||||
- **Web-based administration**:
|
||||
- Dashboard with real-time statistics and monitoring.
|
||||
- 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.
|
||||
- **Every feature, one edition.** No license key, no edition checks, no
|
||||
upsell. See `docs/spec/SPEC.md` §4 for the features being rebuilt, and
|
||||
`docs/spec/features/` for each one's specification.
|
||||
- **Webmail and administration by ihasmail,** as a separate service that can
|
||||
run beside the server or elsewhere. Stalwart's own web interface is removed,
|
||||
so there's no web front end on the mail host.
|
||||
- **Clean-room rebuilds.** Enterprise-only code is stripped from every
|
||||
upstream release before it's imported. The rebuilt features are written
|
||||
from specifications that use only public sources (`docs/spec/SPEC.md` §3).
|
||||
|
||||
## Screenshots
|
||||
## How the fork is kept
|
||||
|
||||
<img src="./img/demo.gif">
|
||||
Upstream releases arrive as stripped snapshots, never with upstream's git
|
||||
history, which contains Enterprise code. `tools/fork/strip.py` builds each
|
||||
snapshot on top of upstream's own `ossify.py`, then verifies it independently.
|
||||
The report for every import is in `docs/fork/strip-reports/`. See
|
||||
`docs/spec/SPEC.md` §2.
|
||||
|
||||
## Presentation
|
||||
## Building
|
||||
|
||||
**Want a deeper dive?** Need to explain to your boss why Stalwart is the perfect fit? Whether you're evaluating options, making a case to your team, or simply curious about how it all works under the hood, these slides walk you through the key features, architecture, and benefits of Stalwart. Browse the [slides](https://stalw.art/slides) to see what makes it stand out.
|
||||
```bash
|
||||
cargo build --release -p stalwart
|
||||
```
|
||||
|
||||
## Get Started
|
||||
The binary and package are still named `stalwart` while the packaging is
|
||||
reworked.
|
||||
|
||||
Install Stalwart on your server by following the instructions for your platform:
|
||||
## License and credits
|
||||
|
||||
- [Linux / MacOS / FreeBSD](https://stalw.art/docs/install/platform/linux)
|
||||
- [Windows](https://stalw.art/docs/install/platform/windows)
|
||||
- [Docker](https://stalw.art/docs/install/platform/docker)
|
||||
INBUXA is free software under the [GNU Affero General Public License,
|
||||
version 3](./LICENSES/AGPL-3.0-only.txt).
|
||||
|
||||
All documentation is available at [stalw.art/docs](https://stalw.art/docs/install/get-started).
|
||||
It is a fork of Stalwart, copyright © Stalwart Labs LLC. Upstream's
|
||||
copyright notices are kept on every file they cover. Stalwart's files are
|
||||
dual-licensed AGPL-3.0-only or Stalwart's Enterprise License, and INBUXA takes
|
||||
them under the AGPL-3.0 only. "Stalwart" is Stalwart Labs' name. INBUXA isn't
|
||||
affiliated with or endorsed by Stalwart Labs.
|
||||
|
||||
## Support
|
||||
|
||||
If you are having problems running Stalwart, found a bug, or just have a question, please head to the [Stalwart Support Portal](https://support.stalw.art) at [support.stalw.art](https://support.stalw.art).
|
||||
Additionally, you may purchase an [Enterprise License](https://stalw.art/enterprise) to obtain priority support from Stalwart Labs LLC, including response-time commitments and a private Priority Support area on the portal.
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions, but to keep the project maintainable there are a few things to know before opening a pull request. Because of the high volume of low-quality, AI-generated submissions, pull requests are limited to a list of vouched contributors; to be added, post at [support.stalw.art](https://support.stalw.art) describing the change you would like to submit, together with a link to the proposed change. At this stage only bug fixes and translations are accepted, and new features are not, unless they involve just a few lines of code.
|
||||
For the full guidelines, please read [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||
## Roadmap
|
||||
|
||||
Stalwart has reached an exciting point in its journey, it’s now **feature complete**. All the core functionality and open standard email and collaboration protocols that we set out to support are in place. In other words, Stalwart already does everything you’d expect from a modern, standards-compliant mail and collaboration platform.
|
||||
|
||||
The next major milestone is all about refinement: finalizing the database schema and focusing on performance optimizations to ensure everything runs as efficiently and reliably as possible. Once that’s done, we’ll be ready to roll out version **1.0**.
|
||||
|
||||
Of course, development doesn’t stop there. The community has contributed hundreds of great ideas for improvements and new features, everything from subtle usability tweaks to entirely new integrations. You can see the full list of proposals over on our [GitHub issues](https://github.com/stalwartlabs/stalwart/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement). If there’s something you’d like to see prioritized, just give it a thumbs up as we plan to implement enhancements based on the community’s votes.
|
||||
|
||||
## Sponsorship
|
||||
|
||||
Your support is crucial in helping us continue to improve the project, add new features, and maintain the highest level of quality. By [becoming a sponsor](https://opencollective.com/stalwart), you help fund the development and future of Stalwart. As a thank-you, sponsors who contribute $5 per month or more will automatically receive a [Enterprise edition](https://stalw.art/enterprise/) license. And, sponsors who contribute $30 per month or more, also have access to [Premium Support](https://stalw.art/support) from Stalwart Labs.
|
||||
|
||||
## Funding
|
||||
|
||||
Part of the development of this project was funded through:
|
||||
|
||||
- [NGI0 Entrust Fund](https://nlnet.nl/entrust), a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.
|
||||
- [NGI Zero Core](https://nlnet.nl/NGI0/), a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.
|
||||
|
||||
If you find the project useful you can help by [becoming a sponsor](https://opencollective.com/stalwart). Thank you!
|
||||
|
||||
## License
|
||||
|
||||
This project is dual-licensed under the **GNU Affero General Public License v3.0** (AGPL-3.0; as published by the Free Software Foundation) and the **Stalwart Enterprise License v2 (SELv2)**:
|
||||
|
||||
- The [GNU Affero General Public License v3.0](./LICENSES/AGPL-3.0-only.txt) is a free software license that ensures your freedom to use, modify, and distribute the software, with the condition that any modified versions of the software must also be distributed under the same license.
|
||||
- The [Stalwart Enterprise License v2 (SELv2)](./LICENSES/LicenseRef-SEL.txt) is a proprietary license designed for commercial use. It offers additional features and greater flexibility for businesses that do not wish to comply with the AGPL-3.0 license requirements.
|
||||
|
||||
Each file in this project contains a license notice at the top, indicating the applicable license(s). The license notice follows the [REUSE guidelines](https://reuse.software/) to ensure clarity and consistency. The full text of each license is available in the [LICENSES](./LICENSES/) directory.
|
||||
|
||||
## Copyright
|
||||
|
||||
Copyright (C) 2020, Stalwart Labs LLC
|
||||
The INBUXA mark reuses ihasmail's cat-and-envelope artwork.
|
||||
|
||||
Reference in New Issue
Block a user