From 9cf2863a8e39bf6f386f17597849d8e842a7d137 Mon Sep 17 00:00:00 2001
From: mdecimus
Date: Tue, 20 May 2025 09:59:54 +0200
Subject: [PATCH] Stalwart Mail Server is now just Stalwart
---
.github/ISSUE_TEMPLATE/bug_report.yml | 10 +--
.github/ISSUE_TEMPLATE/config.yml | 2 +-
.github/ISSUE_TEMPLATE/feature_request.yml | 2 +-
.github/workflows/ci.yml | 12 ++--
Cargo.lock | 52 +++++++-------
Dockerfile | 10 +--
Dockerfile.build | 28 ++++----
LICENSES/LicenseRef-SEL.txt | 4 +-
README.md | 68 +++++++++++--------
SECURITY.md | 13 ++--
UPGRADING.md | 10 +--
api/v1/openapi.yml | 2 +-
crates/common/src/config/telemetry.rs | 4 +-
crates/common/src/manager/boot.rs | 2 +-
crates/common/src/telemetry/tracers/otel.rs | 4 +-
crates/main/Cargo.toml | 8 +--
crates/nlp/src/lib.rs | 8 +--
crates/store/src/backend/nats/mod.rs | 2 +-
resources/apparmor.d/stalwart-mail | 12 ++--
resources/config/config.toml | 6 +-
resources/docker/Dockerfile.fdb | 10 +--
resources/docker/download.sh | 14 ++--
resources/docker/entrypoint.sh | 6 +-
resources/systemd/stalwart-mail.service | 10 +--
resources/systemd/stalwart.mail.plist | 4 +-
tests/resources/acme/test_acme.sh | 2 +-
.../resources/scripts/create_test_cluster.sh | 8 +--
tests/resources/scripts/create_test_env.sh | 4 +-
28 files changed, 164 insertions(+), 153 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 58e0cfdf..0f0b93e7 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,12 +1,12 @@
name: I think I found a bug
-description: File a bug report issue. If you have a question or are experiencing a problem, please start a [new discussion](https://github.com/stalwartlabs/mail-server/discussions/new?category=q-a) instead.
+description: File a bug report issue. If you have a question or are experiencing a problem, please start a [new discussion](https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a) instead.
title: "🐛: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
- Thanks for taking the time to fill out this bug report! Use this form only for reporting bugs. If you have a question or problem, please use the [Q&A discussion](https://github.com/stalwartlabs/mail-server/discussions/new?category=q-a).
+ Thanks for taking the time to fill out this bug report! Use this form only for reporting bugs. If you have a question or problem, please use the [Q&A discussion](https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a).
- type: textarea
id: what-happened
attributes:
@@ -31,9 +31,9 @@ body:
label: Version
description: What version of our software are you running?
options:
+ - v0.12.x
- v0.11.x
- - v0.10.x
- - v0.9.x or lower
+ - v0.10.x or lower
validations:
required: true
- type: dropdown
@@ -67,6 +67,7 @@ body:
- Internal
- SQL
- LDAP
+ - OIDC
- type: dropdown
id: os
attributes:
@@ -75,6 +76,7 @@ body:
- Linux
- Docker
- MacOS
+ - NixOS
- FreeBSD
- Windows
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 651ebb6b..081d6f59 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -4,7 +4,7 @@ contact_links:
url: https://stalw.art/docs/
about: Read the documentation, use the search bar to find answers to your questions.
- name: I have a question or problem not covered in the documentation
- url: https://github.com/stalwartlabs/mail-server/discussions/new?category=q-a
+ url: https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a
about: Open a Q&A discussion
- name: Join Stalwart's Reddit
url: https://www.reddit.com/r/stalwartlabs
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index b2ffa809..9241d8e5 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -6,7 +6,7 @@ body:
- type: markdown
attributes:
value: |
- Thanks for taking the time to fill out this feature request form! Use this form only for requesting new features. If you have a question or problem, please use the [Q&A discussion](https://github.com/stalwartlabs/mail-server/discussions/new?category=q-a).
+ Thanks for taking the time to fill out this feature request form! Use this form only for requesting new features. If you have a question or problem, please use the [Q&A discussion](https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a).
- type: textarea
id: request
attributes:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9534ad19..ff7f43ee 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -311,10 +311,10 @@ jobs:
- name: Build
run: |
rustup target add ${{matrix.target}}
- cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
+ cargo build --release --target ${{matrix.target}} -p stalwart --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
cargo build --release --target ${{matrix.target}} -p stalwart-cli
mkdir -p artifacts
- mv ./target/${{matrix.target}}/release/stalwart-mail.exe ./artifacts/stalwart-mail.exe
+ mv ./target/${{matrix.target}}/release/stalwart.exe ./artifacts/stalwart.exe
mv ./target/${{matrix.target}}/release/stalwart-cli.exe ./artifacts/stalwart-cli.exe
- name: Upload Artifacts
@@ -349,17 +349,17 @@ jobs:
# Get latest FoundationDB installer
curl --retry 5 -Lso foundationdb.pkg "$(gh api -X GET /repos/apple/foundationdb/releases --jq '.[] | select(.prerelease == false) | .assets[] | select(.name | test("${{startsWith(matrix.target, 'x86') && 'x86_64' || 'arm64'}}" + ".pkg$")) | .browser_download_url' | head -n1)"
sudo installer -allowUntrusted -dumplog -pkg foundationdb.pkg -target /
- cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise"
+ cargo build --release --target ${{matrix.target}} -p stalwart --no-default-features --features "foundationdb elastic s3 redis nats enterprise"
mkdir -p artifacts
- mv ./target/${{matrix.target}}/release/stalwart-mail ./artifacts/stalwart-mail-foundationdb
+ mv ./target/${{matrix.target}}/release/stalwart ./artifacts/stalwart-foundationdb
- name: Build
run: |
rustup target add ${{matrix.target}}
- cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
+ cargo build --release --target ${{matrix.target}} -p stalwart --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
cargo build --release --target ${{matrix.target}} -p stalwart-cli
mkdir -p artifacts
- mv ./target/${{matrix.target}}/release/stalwart-mail ./artifacts/stalwart-mail
+ mv ./target/${{matrix.target}}/release/stalwart ./artifacts/stalwart
mv ./target/${{matrix.target}}/release/stalwart-cli ./artifacts/stalwart-cli
- name: Upload Artifacts
diff --git a/Cargo.lock b/Cargo.lock
index a128fb09..e73ee7c5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4203,32 +4203,6 @@ dependencies = [
"webpki-roots 1.0.0",
]
-[[package]]
-name = "mail-server"
-version = "0.12.0"
-dependencies = [
- "common",
- "dav",
- "directory",
- "email",
- "groupware",
- "http 0.12.0",
- "imap",
- "jemallocator",
- "jmap",
- "jmap_proto",
- "managesieve",
- "migration",
- "pop3",
- "services",
- "smtp",
- "spam-filter",
- "store",
- "tokio",
- "trc",
- "utils",
-]
-
[[package]]
name = "managesieve"
version = "0.12.0"
@@ -7107,6 +7081,32 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+[[package]]
+name = "stalwart"
+version = "0.12.0"
+dependencies = [
+ "common",
+ "dav",
+ "directory",
+ "email",
+ "groupware",
+ "http 0.12.0",
+ "imap",
+ "jemallocator",
+ "jmap",
+ "jmap_proto",
+ "managesieve",
+ "migration",
+ "pop3",
+ "services",
+ "smtp",
+ "spam-filter",
+ "store",
+ "tokio",
+ "trc",
+ "utils",
+]
+
[[package]]
name = "stalwart-cli"
version = "0.12.0"
diff --git a/Dockerfile b/Dockerfile
index f481b509..851b2017 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -24,20 +24,20 @@ RUN rustup target add "$(cat /target.txt)"
COPY --from=planner /recipe.json /recipe.json
RUN RUSTFLAGS="$(cat /flags.txt)" cargo chef cook --target "$(cat /target.txt)" --release --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" --recipe-path /recipe.json
COPY . .
-RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
+RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p stalwart --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise"
RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p stalwart-cli
RUN mv "/build/target/$(cat /target.txt)/release" "/output"
FROM docker.io/debian:bookworm-slim
-WORKDIR /opt/stalwart-mail
+WORKDIR /opt/stalwart
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -yq ca-certificates
-COPY --from=builder /output/stalwart-mail /usr/local/bin
+COPY --from=builder /output/stalwart /usr/local/bin
COPY --from=builder /output/stalwart-cli /usr/local/bin
COPY ./resources/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod -R 755 /usr/local/bin
-CMD ["/usr/local/bin/stalwart-mail"]
-VOLUME [ "/opt/stalwart-mail" ]
+CMD ["/usr/local/bin/stalwart"]
+VOLUME [ "/opt/stalwart" ]
EXPOSE 443 25 110 587 465 143 993 995 4190 8080
ENTRYPOINT ["/bin/sh", "/usr/local/bin/entrypoint.sh"]
diff --git a/Dockerfile.build b/Dockerfile.build
index 3de80167..d13f7c18 100644
--- a/Dockerfile.build
+++ b/Dockerfile.build
@@ -92,7 +92,7 @@ RUN \
--mount=type=cache,target=/usr/local/cargo/git \
source /env-cargo && \
if [ ! -z "${FDB_ARCH}" ]; then \
- RUSTFLAGS="-L /usr/lib" cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise"; \
+ RUSTFLAGS="-L /usr/lib" cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p stalwart --no-default-features --features "foundationdb elastic s3 redis nats enterprise"; \
fi
RUN \
--mount=type=secret,id=ACTIONS_RESULTS_URL,env=ACTIONS_RESULTS_URL \
@@ -100,7 +100,7 @@ RUN \
--mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/usr/local/cargo/git \
source /env-cargo && \
- cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \
+ cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p stalwart --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \
cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p stalwart-cli
# Copy the source code
COPY . .
@@ -114,8 +114,8 @@ RUN \
--mount=type=cache,target=/usr/local/cargo/git \
source /env-cargo && \
if [ ! -z "${FDB_ARCH}" ]; then \
- RUSTFLAGS="-L /usr/lib" cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise" && \
- mv /app/target/${TARGET}/release/stalwart-mail /app/artifact/stalwart-mail-foundationdb; \
+ RUSTFLAGS="-L /usr/lib" cargo zigbuild --release --target ${TARGET} -p stalwart --no-default-features --features "foundationdb elastic s3 redis nats enterprise" && \
+ mv /app/target/${TARGET}/release/stalwart /app/artifact/stalwart-foundationdb; \
fi
# Build generic version
RUN \
@@ -124,9 +124,9 @@ RUN \
--mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/usr/local/cargo/git \
source /env-cargo && \
- cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \
+ cargo zigbuild --release --target ${TARGET} -p stalwart --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \
cargo zigbuild --release --target ${TARGET} -p stalwart-cli && \
- mv /app/target/${TARGET}/release/stalwart-mail /app/artifact/stalwart-mail && \
+ mv /app/target/${TARGET}/release/stalwart /app/artifact/stalwart && \
mv /app/target/${TARGET}/release/stalwart-cli /app/artifact/stalwart-cli
# *****************
@@ -139,16 +139,16 @@ COPY --from=builder /app/artifact /
# Runtime image for GNU targets
# *****************
FROM --platform=$TARGETPLATFORM docker.io/library/debian:bookworm-slim AS gnu
-WORKDIR /opt/stalwart-mail
+WORKDIR /opt/stalwart
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -yq ca-certificates tzdata
-COPY --from=builder /app/artifact/stalwart-mail /usr/local/bin
+COPY --from=builder /app/artifact/stalwart /usr/local/bin
COPY --from=builder /app/artifact/stalwart-cli /usr/local/bin
COPY ./resources/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod -R 755 /usr/local/bin
-CMD ["/usr/local/bin/stalwart-mail"]
-VOLUME [ "/opt/stalwart-mail" ]
+CMD ["/usr/local/bin/stalwart"]
+VOLUME [ "/opt/stalwart" ]
EXPOSE 443 25 110 587 465 143 993 995 4190 8080
ENTRYPOINT ["/bin/sh", "/usr/local/bin/entrypoint.sh"]
@@ -156,13 +156,13 @@ ENTRYPOINT ["/bin/sh", "/usr/local/bin/entrypoint.sh"]
# Runtime image for musl targets
# *****************
FROM --platform=$TARGETPLATFORM alpine AS musl
-WORKDIR /opt/stalwart-mail
+WORKDIR /opt/stalwart
RUN apk add --update --no-cache ca-certificates tzdata && rm -rf /var/cache/apk/*
-COPY --from=builder /app/artifact/stalwart-mail /usr/local/bin
+COPY --from=builder /app/artifact/stalwart /usr/local/bin
COPY --from=builder /app/artifact/stalwart-cli /usr/local/bin
COPY ./resources/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod -R 755 /usr/local/bin
-CMD ["/usr/local/bin/stalwart-mail"]
-VOLUME [ "/opt/stalwart-mail" ]
+CMD ["/usr/local/bin/stalwart"]
+VOLUME [ "/opt/stalwart" ]
EXPOSE 443 25 110 587 465 143 993 995 4190 8080
ENTRYPOINT ["/bin/sh", "/usr/local/bin/entrypoint.sh"]
diff --git a/LICENSES/LicenseRef-SEL.txt b/LICENSES/LicenseRef-SEL.txt
index 25f146ef..1ee7c07c 100644
--- a/LICENSES/LicenseRef-SEL.txt
+++ b/LICENSES/LicenseRef-SEL.txt
@@ -9,7 +9,7 @@ This Agreement is entered into by and between Stalwart Labs Ltd and you, or the
1. DEFINITIONS
-1.1. "Software" refers to the Stalwart Mail & Collaboration Server Enterprise Edition software, including all its versions, updates, modifications, accompanying documentation, and related materials.
+1.1. "Software" refers to the Stalwart Server Enterprise Edition software, including all its versions, updates, modifications, accompanying documentation, and related materials.
1.2. "Subscription" refers to the paid access to the Software provided by Licensor to Licensee.
1.3. "Licensor" refers to Stalwart Labs Ltd, the entity providing the Software.
1.4. "Licensee" refers to the individual or entity installing, accessing, or using the Software with a valid Subscription.
@@ -54,7 +54,7 @@ This Agreement is entered into by and between Stalwart Labs Ltd and you, or the
7. LIMITATION OF LIABILITY
7.1. In no event will the Licensor be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses, resulting from (i) your use or inability to use the Software; (ii) any unauthorized access to or use of our servers and/or any personal information stored therein.
-7.3. Except for liability arising from death or personal injury caused by negligence, fraud, or willful misconduct, Licensor's total aggregate liability for any and all claims under this Agreement shall be limited to the total Subscription fees paid by Licensee to Licensor in the twelve (12) months immediately preceding the event giving rise to the claim.
+7.2. Except for liability arising from death or personal injury caused by negligence, fraud, or willful misconduct, Licensor's total aggregate liability for any and all claims under this Agreement shall be limited to the total Subscription fees paid by Licensee to Licensor in the twelve (12) months immediately preceding the event giving rise to the claim.
8. GOVERNING LAW & JURISDICTION
diff --git a/README.md b/README.md
index 22179663..6f98a3a9 100644
--- a/README.md
+++ b/README.md
@@ -5,13 +5,13 @@
- Secure & Modern All-in-One Mail Server (IMAP, JMAP, POP3, SMTP) 🛡️
+ Secure, scalable mail & collaboration server with comprehensive protocol support 🛡️
(IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV)
-
+
@@ -30,23 +30,33 @@
## Features
-**Stalwart Mail Server** is an open-source mail server solution with JMAP, IMAP4, POP3, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable.
+**Stalwart** is an open-source mail & collaboration server solution 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.
Key features:
-- **JMAP**, **IMAP4**, **POP3** and **ManageSieve** server:
- - [JMAP](https://datatracker.ietf.org/doc/html/rfc8621) server with
- [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.
- - [IMAP4rev2](https://datatracker.ietf.org/doc/html/rfc9051) and [IMAP4rev1](https://datatracker.ietf.org/doc/html/rfc3501) server with support for [numerous extensions](https://stalw.art/docs/development/rfcs#imap4-and-extensions).
- - [POP3](https://datatracker.ietf.org/doc/html/rfc1939) server with [extensions](https://datatracker.ietf.org/doc/html/rfc2449), [STLS](https://datatracker.ietf.org/doc/html/rfc2595) and [SASL](https://datatracker.ietf.org/doc/html/rfc5034) support.
- - [ManageSieve](https://datatracker.ietf.org/doc/html/rfc5804) server for managing Sieve scripts.
-- **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, MTA hooks and milter integration.
- - Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support.
- - Envelope rewriting and message modification.
-- Built-in **Spam and Phishing** filter:
+- **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), [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, MTA hooks and milter integration.
+ * Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support.
+ * Envelope rewriting and message modification.
+- **Calendar**, **Contacts** and **File Storage** server:
+ - [CalDAV](https://datatracker.ietf.org/doc/html/rfc4791) server for calendar and scheduling.
+ - [CardDAV](https://datatracker.ietf.org/doc/html/rfc6352) server for contact management.
+ - [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) server for file storage and sharing.
+- **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 automatic training capabilities.
@@ -75,8 +85,6 @@ Key features:
- **Scalable and fault-tolerant**:
- Designed to handle growth seamlessly, from small setups to large-scale deployments.
- Built with **fault tolerance** and **high availability** in mind, recovers from hardware or software failures with minimal operational impact.
- - Partition-tolerant **failure detection**, ensuring continuous operation even during network partitions or node failures.
- - **Coordinator-free** architecture with automatic node discovery eliminates central bottlenecks and single points of failure.
- **Kubernetes** support for automated scaling and efficient container orchestration.
- Read replicas, sharded blob storage and in-memory data stores for high performance and low latency.
- **Authentication and Authorization**:
@@ -108,11 +116,11 @@ Key features:
## Presentation
-**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 Mail Server. Browse the [slides](https://stalw.art/slides) to see what makes it stand out.
+**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.
## Get Started
-Install Stalwart Mail Server on your server by following the instructions for your platform:
+Install Stalwart on your server by following the instructions for your platform:
- [Linux / MacOS](https://stalw.art/docs/install/linux)
- [Windows](https://stalw.art/docs/install/windows)
@@ -122,14 +130,14 @@ All documentation is available at [stalw.art/docs/get-started](https://stalw.art
## Support
-If you are having problems running Stalwart Mail Server, you found a bug or just have a question,
-do not hesitate to reach us on [GitHub Discussions](https://github.com/stalwartlabs/mail-server/discussions),
+If you are having problems running Stalwart, you found a bug or just have a question,
+do not hesitate to reach us on [GitHub Discussions](https://github.com/stalwartlabs/stalwart/discussions),
[Reddit](https://www.reddit.com/r/stalwartlabs) or [Discord](https://discord.gg/aVQr3jF8jd).
Additionally you may purchase an [premium support](https://stalw.art/support) to obtain priority support from Stalwart Labs LLC.
## 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 Mail Server. As a thank-you, sponsors who contribute $5 per month or more will automatically receive a [Small Business Edition](https://stalw.art/small-business/) license, which includes all the powerful features of the [Enterprise edition](https://stalw.art/enterprise/).
+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 [Small Business Edition](https://stalw.art/small-business/) license, which includes all the powerful features of the [Enterprise edition](https://stalw.art/enterprise/).
These are some of our open-source sponsors:
@@ -139,15 +147,17 @@ These are some of our open-source sponsors:
## Roadmap
-- [ ] CalDAV, CardDAV and WebDAV support
-- [ ] JMAP Calendar, Contacts and Tasks support
-- [ ] ActiveSync support
+- [ ] JMAP for Calendars, Contacts and File Storage support
+- [ ] Webmail client
-See the [enhancement requests](https://github.com/stalwartlabs/mail-server/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement) page for a full list of proposed features by the community.
+See the [enhancement requests](https://github.com/stalwartlabs/stalwart/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement) page for a full list of proposed features by the community.
## Funding
-Part of the development of this project was funded through the [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.
+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!
@@ -162,4 +172,4 @@ Each file in this project contains a license notice at the top, indicating the a
## Copyright
-Copyright (C) 2024, Stalwart Labs Ltd.
+Copyright (C) 2020, Stalwart Labs Ltd.
diff --git a/SECURITY.md b/SECURITY.md
index 652a6f41..4a18be93 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,19 +1,18 @@
-# Security Policy for Stalwart Mail Server
+# Security Policy for Stalwart
## Supported Versions
-We provide security updates for the following versions of Stalwart Mail Server:
+We provide security updates for the following versions of Stalwart:
| Version | Supported |
| ------- | ------------------ |
-| 0.11.x | :white_check_mark: |
-| 0.10.x | :white_check_mark: |
-| 0.9.x | :white_check_mark: |
-| < 0.8 | :x: |
+| 0.12.x | :white_check_mark: |
+| 0.11.x | :white_check_mark: |
+| < 0.10 | :x: |
## Reporting a Vulnerability
-We take the security of Stalwart Mail Server very seriously. If you believe you've found a security vulnerability, we encourage you to inform us responsibly.
+We take the security of Stalwart very seriously. If you believe you've found a security vulnerability, we encourage you to inform us responsibly.
**Do not report security vulnerabilities through public GitHub issues.**
diff --git a/UPGRADING.md b/UPGRADING.md
index bf22748a..48ff37ee 100644
--- a/UPGRADING.md
+++ b/UPGRADING.md
@@ -54,7 +54,7 @@ Upgrading from `v0.8.x` to `v0.9.0`
Version `0.9.0` introduces significant internal improvements while maintaining compatibility with existing database layouts and configuration file formats from version `0.8.0`. As a result, no data or configuration migration is necessary. This release focuses on enhancing performance and functionality, particularly in logging and tracing capabilities.
-To upgrade to Stalwart Mail Server version `0.9.0` from `0.8.x`, begin by downloading the latest version of the `stalwart-mail` binary. Once downloaded, replace the existing binary with the new version. Additionally, it's important to update the WebAdmin interface to the latest version to ensure compatibility and to access new features introduced in this release.
+To upgrade to Stalwart version `0.9.0` from `0.8.x`, begin by downloading the latest version of the `stalwart-mail` binary. Once downloaded, replace the existing binary with the new version. Additionally, it's important to update the WebAdmin interface to the latest version to ensure compatibility and to access new features introduced in this release.
In terms of breaking changes, this release brings significant updates to webhooks. All webhook event names have been modified, requiring a thorough review and adjustment of existing webhook configurations. Furthermore, the update introduces hundreds of new event types, enhancing the granularity and specificity of event handling capabilities. Users should familiarize themselves with these changes to effectively integrate them into their systems.
@@ -151,7 +151,7 @@ Version `0.8.0` includes both performance and security enhancements that require
Upgrading from `v0.6.0` to `v0.7.0`
-----------------------------------
-Version `0.7.0` of Stalwart Mail Server introduces significant improvements and features that enhance performance and functionality. However, it also comes with multiple breaking changes in the configuration files and a revamped database layout optimized for accessing large mailboxes. Additionally, Stalwart now supports compression for binaries stored in the blob store, further increasing efficiency.
+Version `0.7.0` of Stalwart introduces significant improvements and features that enhance performance and functionality. However, it also comes with multiple breaking changes in the configuration files and a revamped database layout optimized for accessing large mailboxes. Additionally, Stalwart now supports compression for binaries stored in the blob store, further increasing efficiency.
Due to these extensive changes, the recommended approach for upgrading is to perform a clean reinstallation of Stalwart and manually migrate your accounts to the new version.
## Pre-Upgrade Steps
@@ -249,7 +249,7 @@ Upgrading from `v0.4.x` to `v0.5.0`
Rather than manually updating the configuration file, it is recommended to start with a fresh configuration file and update it with the necessary settings:
-- Install `v0.5.0` in a distinct directory. You now have the option to use an [internal directory](https://stalw.art/docs/directory/types/internal), which will allow you to manage users and groups directly from Stalwart Mail server. Alternatively, you can continue to use an external directory such as LDAP or SQL.
+- Install `v0.5.0` in a distinct directory. You now have the option to use an [internal directory](https://stalw.art/docs/directory/types/internal), which will allow you to manage users and groups directly from Stalwart server. Alternatively, you can continue to use an external directory such as LDAP or SQL.
- Update the configuration files with your previous settings. All configuration attributes are backward compatible, except those starting with `store.*`, `directory.*` and `jmap.purge.*`.
- Export each account following the procedure described in the [migration guide](https://stalw.art/docs/management/database/migrate).
- Stop the old `v0.4.x` server.
@@ -301,14 +301,14 @@ Upgrading from `v0.3.x` to `v0.4.0`
5. **Configure the SPAM Filter Database:** Set up and configure the SPAM filter database. More details can be found [here](https://stalw.art/docs/spamfilter/settings/database).
6. **Review All TOML Files:** Navigate to every TOML file under the `etc/` directory and make necessary changes.
7. **Update Binary:** Download and substitute the v0.4.0 binary suitable for your platform from [here](https://github.com/stalwartlabs/mail-server/releases/tag/v0.4.0).
-8. **Restart Service:** Conclude by restarting the Stalwart Mail Server service.
+8. **Restart Service:** Conclude by restarting the Stalwart service.
### Alternative Method:
1. **Separate Installation:** Install v0.4.0 in a distinct directory. This will auto-update all configuration files and establish the spam filter database in SQLite format.
2. **Move Configuration Files:** Transfer the configuration files from `etc/` and the SQLite spam filter database from `data/` to your current installation's directory.
3. **Replace Binary:** Move the binary from the `bin/` directory to your current installation's `data/` directory.
-4. **Restart Service:** Finally, restart the Stalwart Mail Server service.
+4. **Restart Service:** Finally, restart the Stalwart service.
We apologize for the lack of an automated migration tool for this upgrade. However, we are planning on introducing an automated migration tool in the near future. Thank you for your understanding and patience.
diff --git a/api/v1/openapi.yml b/api/v1/openapi.yml
index 8e450e65..1753c464 100644
--- a/api/v1/openapi.yml
+++ b/api/v1/openapi.yml
@@ -4,7 +4,7 @@
openapi: 3.0.0
info:
- title: Stalwart Mail Server API
+ title: Stalwart API
version: 1.0.0
servers:
- url: https://mail.example.org/api
diff --git a/crates/common/src/config/telemetry.rs b/crates/common/src/config/telemetry.rs
index dc286a95..6c13aaa4 100644
--- a/crates/common/src/config/telemetry.rs
+++ b/crates/common/src/config/telemetry.rs
@@ -660,10 +660,10 @@ impl Metrics {
.property_or_default("metrics.open-telemetry.interval", "1m")
.unwrap_or_else(|| Duration::from_secs(60));
let resource = Resource::new([
- KeyValue::new(SERVICE_NAME, "stalwart-mail"),
+ KeyValue::new(SERVICE_NAME, "stalwart"),
KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")),
]);
- let instrumentation = InstrumentationLibrary::builder("stalwart-mail")
+ let instrumentation = InstrumentationLibrary::builder("stalwart")
.with_version(env!("CARGO_PKG_VERSION"))
.build();
diff --git a/crates/common/src/manager/boot.rs b/crates/common/src/manager/boot.rs
index 12afaae6..374dd13f 100644
--- a/crates/common/src/manager/boot.rs
+++ b/crates/common/src/manager/boot.rs
@@ -58,7 +58,7 @@ const HELP: &str = concat!(
env!("CARGO_PKG_VERSION"),
r#"
-Usage: stalwart-mail [OPTIONS]
+Usage: stalwart [OPTIONS]
Options:
-c, --config Start server with the specified configuration file
diff --git a/crates/common/src/telemetry/tracers/otel.rs b/crates/common/src/telemetry/tracers/otel.rs
index 6de06bb0..e66b7ad1 100644
--- a/crates/common/src/telemetry/tracers/otel.rs
+++ b/crates/common/src/telemetry/tracers/otel.rs
@@ -32,10 +32,10 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
let (_, mut rx) = builder.register();
tokio::spawn(async move {
let resource = Cow::Owned(Resource::new([
- KeyValue::new(SERVICE_NAME, "stalwart-mail"),
+ KeyValue::new(SERVICE_NAME, "stalwart"),
KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")),
]));
- let instrumentation = InstrumentationLibrary::builder("stalwart-mail")
+ let instrumentation = InstrumentationLibrary::builder("stalwart")
.with_version(env!("CARGO_PKG_VERSION"))
.build();
diff --git a/crates/main/Cargo.toml b/crates/main/Cargo.toml
index 01f6d62d..be6ee790 100644
--- a/crates/main/Cargo.toml
+++ b/crates/main/Cargo.toml
@@ -1,10 +1,10 @@
[package]
-name = "mail-server"
-description = "Stalwart Server"
+name = "stalwart"
+description = "Stalwart and Collaboration Server"
authors = [ "Stalwart Labs Ltd. "]
repository = "https://github.com/stalwartlabs/jmap-server"
homepage = "https://stalw.art"
-keywords = ["imap", "jmap", "smtp", "email", "mail", "server"]
+keywords = ["imap", "jmap", "smtp", "email", "mail", "webdav", "server"]
categories = ["email"]
license = "AGPL-3.0-only OR LicenseRef-SEL"
version = "0.12.0"
@@ -12,7 +12,7 @@ edition = "2024"
resolver = "2"
[[bin]]
-name = "stalwart-mail"
+name = "stalwart"
path = "src/main.rs"
[dependencies]
diff --git a/crates/nlp/src/lib.rs b/crates/nlp/src/lib.rs
index b304f9f6..a622e848 100644
--- a/crates/nlp/src/lib.rs
+++ b/crates/nlp/src/lib.rs
@@ -26,8 +26,8 @@ mod test {
#[test]
#[ignore]
fn train() {
- let db = fs::read_to_string("/Users/me/code/mail-server/_ignore/old/spam_or_not_spam.csv")
- .unwrap();
+ let db =
+ fs::read_to_string("/Users/me/code/stalwart/_ignore/old/spam_or_not_spam.csv").unwrap();
let mut bayes = BayesModel::default();
for line in db.lines() {
@@ -47,7 +47,7 @@ mod test {
}
println!("Ham: {} Spam: {}", bayes.ham_learns, bayes.spam_learns,);
fs::write(
- "/Users/me/code/mail-server/_ignore/old/spam_or_not_spam.bin",
+ "/Users/me/code/stalwart/_ignore/old/spam_or_not_spam.bin",
bincode::serialize(&bayes).unwrap(),
)
.unwrap();
@@ -57,7 +57,7 @@ mod test {
#[ignore]
fn classify() {
let model: BayesModel = bincode::deserialize(
- &fs::read("/Users/me/code/mail-server/_ignore/old/spam_or_not_spam.bin").unwrap(),
+ &fs::read("/Users/me/code/stalwart/_ignore/old/spam_or_not_spam.bin").unwrap(),
)
.unwrap();
let bayes = BayesClassifier::new();
diff --git a/crates/store/src/backend/nats/mod.rs b/crates/store/src/backend/nats/mod.rs
index 6df12940..359280b3 100644
--- a/crates/store/src/backend/nats/mod.rs
+++ b/crates/store/src/backend/nats/mod.rs
@@ -66,7 +66,7 @@ impl NatsStore {
)
.require_tls(
config
- .property_or_default((&prefix, "tls.require"), "false")
+ .property_or_default((&prefix, "tls.enable"), "false")
.unwrap_or_default(),
);
diff --git a/resources/apparmor.d/stalwart-mail b/resources/apparmor.d/stalwart-mail
index 0c2483be..f5639319 100644
--- a/resources/apparmor.d/stalwart-mail
+++ b/resources/apparmor.d/stalwart-mail
@@ -1,6 +1,6 @@
#include
-profile stalwart-mail flags=(attach_disconnected) {
+profile stalwart flags=(attach_disconnected) {
#include
#include
#include
@@ -17,8 +17,8 @@ profile stalwart-mail flags=(attach_disconnected) {
owner /proc/*/net/if_inet6 r,
owner /proc/*/net/ipv6_route r,
- # Full write access to /opt/stalwart-mail
- /opt/stalwart-mail/** rwk,
+ # Full write access to /opt/stalwart
+ /opt/stalwart/** rwk,
# Allow creating directories under /tmp
/tmp/ r,
@@ -51,9 +51,9 @@ profile stalwart-mail flags=(attach_disconnected) {
network inet6 dgram bind port 7911,
# Basic system access
- /usr/bin/stalwart-mail rix,
- /etc/stalwart-mail/** r,
- /var/log/stalwart-mail/** w,
+ /usr/bin/stalwart rix,
+ /etc/stalwart/** r,
+ /var/log/stalwart/** w,
# Additional permissions might be needed depending on specific requirements
}
diff --git a/resources/config/config.toml b/resources/config/config.toml
index f043265e..b62ed9fb 100644
--- a/resources/config/config.toml
+++ b/resources/config/config.toml
@@ -1,5 +1,5 @@
#############################################
-# Stalwart Mail Server Configuration File
+# Stalwart Configuration File
#############################################
[server.listener."smtp"]
@@ -65,8 +65,8 @@ ansi = false
enable = true
#[server.run-as]
-#user = "stalwart-mail"
-#group = "stalwart-mail"
+#user = "stalwart"
+#group = "stalwart"
[authentication.fallback-admin]
user = "admin"
diff --git a/resources/docker/Dockerfile.fdb b/resources/docker/Dockerfile.fdb
index c46cd234..5ac686ab 100644
--- a/resources/docker/Dockerfile.fdb
+++ b/resources/docker/Dockerfile.fdb
@@ -40,12 +40,12 @@ RUN cargo build --manifest-path=crates/main/Cargo.toml --no-default-features --f
FROM debian:buster-slim AS runtime
-COPY --from=builder /app/target/release/stalwart-mail /usr/local/bin/stalwart-mail
+COPY --from=builder /app/target/release/stalwart /usr/local/bin/stalwart
RUN apt-get update -y && apt-get install -yq ca-certificates
RUN curl -LO https://github.com/apple/foundationdb/releases/download/7.1.0/foundationdb-clients_7.1.0-1_amd64.deb && \
dpkg -i foundationdb-clients_7.1.0-1_amd64.deb
-RUN useradd stalwart-mail -s /sbin/nologin -M
-RUN mkdir -p /opt/stalwart-mail
-RUN chown stalwart-mail:stalwart-mail /opt/stalwart-mail
+RUN useradd stalwart -s /sbin/nologin -M
+RUN mkdir -p /opt/stalwart
+RUN chown stalwart:stalwart /opt/stalwart
-ENTRYPOINT ["/usr/local/bin/stalwart-mail", "--config", "/opt/stalwart-mail/etc/config.toml"]
+ENTRYPOINT ["/usr/local/bin/stalwart", "--config", "/opt/stalwart/etc/config.toml"]
diff --git a/resources/docker/download.sh b/resources/docker/download.sh
index d34533be..69324c11 100644
--- a/resources/docker/download.sh
+++ b/resources/docker/download.sh
@@ -1,12 +1,12 @@
#!/usr/bin/env sh
# shellcheck shell=dash
-# Stalwart Mail Server install script -- based on the rustup installation script.
+# Stalwart install script -- based on the rustup installation script.
set -e
set -u
-readonly BASE_URL="https://github.com/stalwartlabs/mail-server/releases/latest/download"
+readonly BASE_URL="https://github.com/stalwartlabs/stalwart/releases/latest/download"
main() {
downloader --check
@@ -26,16 +26,16 @@ main() {
# Detect OS
local _os="unknown"
local _uname="$(uname)"
- _account="stalwart-mail"
+ _account="stalwart"
if [ "${_uname}" = "Linux" ]; then
_os="linux"
elif [ "${_uname}" = "Darwin" ]; then
_os="macos"
- _account="_stalwart-mail"
+ _account="_stalwart"
fi
# Default component setting
- local _component="stalwart-mail"
+ local _component="stalwart"
local _dir="/usr/local/bin"
# Detect platform architecture
@@ -45,11 +45,11 @@ main() {
# Download latest binary
say "⏳ Downloading ${_component} for ${_arch}..."
- local _file="${_dir}/stalwart-mail.tar.gz"
+ local _file="${_dir}/stalwart.tar.gz"
local _url="${BASE_URL}/${_component}-${_arch}.tar.gz"
ensure downloader "$_url" "$_file" "$_arch"
ensure tar zxvf "$_file" -C "$_dir"
- ignore chmod +x "$_dir/stalwart-mail"
+ ignore chmod +x "$_dir/stalwart"
ignore rm "$_file"
return 0
diff --git a/resources/docker/entrypoint.sh b/resources/docker/entrypoint.sh
index 9b8cb390..692435aa 100644
--- a/resources/docker/entrypoint.sh
+++ b/resources/docker/entrypoint.sh
@@ -2,9 +2,9 @@
# shellcheck shell=dash
# If the configuration file does not exist initialize it.
-if [ ! -f /opt/stalwart-mail/etc/config.toml ]; then
- /usr/local/bin/stalwart-mail --init /opt/stalwart-mail
+if [ ! -f /opt/stalwart/etc/config.toml ]; then
+ /usr/local/bin/stalwart --init /opt/stalwart
fi
# If the configuration file exists, start the server.
-exec /usr/local/bin/stalwart-mail --config /opt/stalwart-mail/etc/config.toml
+exec /usr/local/bin/stalwart --config /opt/stalwart/etc/config.toml
diff --git a/resources/systemd/stalwart-mail.service b/resources/systemd/stalwart-mail.service
index 376a083c..2b806d4e 100644
--- a/resources/systemd/stalwart-mail.service
+++ b/resources/systemd/stalwart-mail.service
@@ -1,5 +1,5 @@
[Unit]
-Description=Stalwart Mail Server
+Description=Stalwart Server
Conflicts=postfix.service sendmail.service exim4.service
ConditionPathExists=__PATH__/etc/config.toml
After=network-online.target
@@ -11,10 +11,10 @@ KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
-ExecStart=__PATH__/bin/stalwart-mail --config=__PATH__/etc/config.toml
-SyslogIdentifier=stalwart-mail
-User=stalwart-mail
-Group=stalwart-mail
+ExecStart=__PATH__/bin/stalwart --config=__PATH__/etc/config.toml
+SyslogIdentifier=stalwart
+User=stalwart
+Group=stalwart
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
diff --git a/resources/systemd/stalwart.mail.plist b/resources/systemd/stalwart.mail.plist
index dba8eda9..8fed0a6a 100644
--- a/resources/systemd/stalwart.mail.plist
+++ b/resources/systemd/stalwart.mail.plist
@@ -6,10 +6,10 @@
Label
stalwart.mail
ServiceDescription
- Stalwart Mail Server
+ Stalwart
ProgramArguments
- __PATH__/bin/stalwart-mail
+ __PATH__/bin/stalwart
--config=__PATH__/etc/config.toml
RunAtLoad
diff --git a/tests/resources/acme/test_acme.sh b/tests/resources/acme/test_acme.sh
index f266b917..66e908f2 100644
--- a/tests/resources/acme/test_acme.sh
+++ b/tests/resources/acme/test_acme.sh
@@ -6,4 +6,4 @@ cp ./tests/resources/acme/config.toml /tmp/stalwart-temp-data/config.toml
curl --request POST --data '{"ip":"192.168.5.2"}' http://localhost:8055/set-default-ipv4
-cargo run -p mail-server --no-default-features --features "sqlite foundationdb postgres mysql rocks elastic s3 redis" -- --config=/tmp/stalwart-temp-data/config.toml
+cargo run -p stalwart --no-default-features --features "sqlite foundationdb postgres mysql rocks elastic s3 redis" -- --config=/tmp/stalwart-temp-data/config.toml
diff --git a/tests/resources/scripts/create_test_cluster.sh b/tests/resources/scripts/create_test_cluster.sh
index 4729d1ac..c38866f9 100644
--- a/tests/resources/scripts/create_test_cluster.sh
+++ b/tests/resources/scripts/create_test_cluster.sh
@@ -5,13 +5,13 @@ FEATURES="rocks"
NUM_NODES=5
# Kill previous processes
-sudo pkill stalwart-mail
+sudo pkill stalwart
# Delete previous tests
rm -rf $BASE_DIR
-# Build the mail-server binary
-cargo build -p mail-server --no-default-features --features "$FEATURES"
+# Build the stalwart binary
+cargo build -p stalwart --no-default-features --features "$FEATURES"
for NUM in $(seq 1 $NUM_NODES); do
sudo ifconfig en0 alias 10.0.$NUM.1 netmask 255.255.255.0
@@ -49,5 +49,5 @@ config.resource.spam-filter = "file:///dev/null"
config.resource.webadmin = "file:///dev/null"
EOF
- sudo ./target/debug/stalwart-mail --config $BASE_DIR/config$NUM.toml &
+ sudo ./target/debug/stalwart --config $BASE_DIR/config$NUM.toml &
done
diff --git a/tests/resources/scripts/create_test_env.sh b/tests/resources/scripts/create_test_env.sh
index 434f1880..b39415c2 100644
--- a/tests/resources/scripts/create_test_env.sh
+++ b/tests/resources/scripts/create_test_env.sh
@@ -7,9 +7,9 @@ FEATURES="sqlite foundationdb postgres mysql rocks elastic s3 redis"
rm -rf $BASE_DIR
# Create admin user
-cargo run -p mail-server --no-default-features --features "$FEATURES" -- --init=$BASE_DIR
+cargo run -p stalwart --no-default-features --features "$FEATURES" -- --init=$BASE_DIR
printf "[server.http]\npermissive-cors = true\n" >> $BASE_DIR/etc/config.toml
printf "[tracer.stdout]\ntype = 'stdout'\nlevel = 'trace'\nansi = true\nenable = true\n" >> $BASE_DIR/etc/config.toml
sed -i '' 's/secret =/secret = "secret"\n#secret =/g' $BASE_DIR/etc/config.toml
-#cargo run -p mail-server --no-default-features --features "$FEATURES" -- --config=$BASE_DIR/etc/config.toml
+#cargo run -p stalwart --no-default-features --features "$FEATURES" -- --config=$BASE_DIR/etc/config.toml