mirror of
https://github.com/chatmail/relay.git
synced 2026-06-17 09:01:06 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b98e0c2ac3 | |||
| 8d7870db55 | |||
| 5a31ff475f | |||
| 8c18aea18e | |||
| ebf5a51964 | |||
| f596d4b56d | |||
| 8e3c18019b | |||
| 9da3f5c235 |
@@ -29,7 +29,7 @@ jobs:
|
|||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: download filtermail
|
- name: download filtermail
|
||||||
run: curl -L https://github.com/chatmail/filtermail/releases/download/v0.7.0/filtermail-x86_64 -o /usr/local/bin/filtermail && chmod +x /usr/local/bin/filtermail
|
run: curl -L https://github.com/chatmail/filtermail/releases/download/v0.7.1/filtermail-x86_64 -o /usr/local/bin/filtermail && chmod +x /usr/local/bin/filtermail
|
||||||
- name: run chatmaild tests
|
- name: run chatmaild tests
|
||||||
working-directory: chatmaild
|
working-directory: chatmaild
|
||||||
run: pipx run tox
|
run: pipx run tox
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Chatmail relay servers are interoperable Mail Transport Agents (MTAs) designed f
|
|||||||
- **Instant/Realtime:** sub-second message delivery, realtime P2P
|
- **Instant/Realtime:** sub-second message delivery, realtime P2P
|
||||||
streaming, privacy-preserving Push Notifications for Apple, Google, and Huawei;
|
streaming, privacy-preserving Push Notifications for Apple, Google, and Huawei;
|
||||||
|
|
||||||
- **Security Enforcement**: only strict TLS, DKIM and OpenPGP with minimized metadata accepted
|
- **Security Enforcement**: only connections with strict TLS are accepted; all messages must be corrently signed with DKIM and OpenPGP-encrypted with minimized metadata
|
||||||
|
|
||||||
- **Reliable Federation and Decentralization:** No spam or IP reputation checks, federating
|
- **Reliable Federation and Decentralization:** No spam or IP reputation checks, federating
|
||||||
depends on established IETF standards and protocols.
|
depends on established IETF standards and protocols.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ dependencies = [
|
|||||||
"iniconfig",
|
"iniconfig",
|
||||||
"filelock",
|
"filelock",
|
||||||
"requests",
|
"requests",
|
||||||
"crypt-r >= 3.13.1 ; python_version >= '3.11'",
|
"crypt-r >= 3.13.1 ; python_version >= '3.13'",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.setuptools]
|
[tool.setuptools]
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
"acme-enter-email": "{{ email }}"
|
"acme-enter-email": "{{ email }}"
|
||||||
"acme-agreement:https://letsencrypt.org/documents/LE-SA-v1.6-August-18-2025.pdf": true
|
"acme-agreement:https://letsencrypt.org/documents/LE-SA-v1.7-June-04-2026.pdf": true
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ class Deployer:
|
|||||||
return self.put_template(src, dest, **kwargs)
|
return self.put_template(src, dest, **kwargs)
|
||||||
return self.put_file(src, dest)
|
return self.put_file(src, dest)
|
||||||
|
|
||||||
def put_file(self, src, dest, mode="644"):
|
def put_file(self, src, dest, mode="644", **kwargs):
|
||||||
if isinstance(src, str):
|
if isinstance(src, str):
|
||||||
src = get_resource(src)
|
src = get_resource(src)
|
||||||
res = files.put(
|
res = files.put(
|
||||||
@@ -176,6 +176,7 @@ class Deployer:
|
|||||||
user="root",
|
user="root",
|
||||||
group="root",
|
group="root",
|
||||||
mode=mode,
|
mode=mode,
|
||||||
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
return self._update_restart_signals(dest, res)
|
return self._update_restart_signals(dest, res)
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ class UnboundDeployer(Deployer):
|
|||||||
self.put_file(
|
self.put_file(
|
||||||
src=BytesIO(b"nameserver 127.0.0.1\nnameserver 9.9.9.9\n"),
|
src=BytesIO(b"nameserver 127.0.0.1\nnameserver 9.9.9.9\n"),
|
||||||
dest="/etc/resolv.conf",
|
dest="/etc/resolv.conf",
|
||||||
|
force=True,
|
||||||
)
|
)
|
||||||
server.shell(
|
server.shell(
|
||||||
name="Generate root keys for validating DNSSEC",
|
name="Generate root keys for validating DNSSEC",
|
||||||
|
|||||||
@@ -20,10 +20,10 @@ class FiltermailDeployer(Deployer):
|
|||||||
return
|
return
|
||||||
|
|
||||||
arch = host.get_fact(facts.server.Arch)
|
arch = host.get_fact(facts.server.Arch)
|
||||||
url = f"https://github.com/chatmail/filtermail/releases/download/v0.7.0/filtermail-{arch}"
|
url = f"https://github.com/chatmail/filtermail/releases/download/v0.7.1/filtermail-{arch}"
|
||||||
sha256sum = {
|
sha256sum = {
|
||||||
"x86_64": "451f295a85b3b12dbb0f89e18ec319f742ee46dec218f20f7923bfb017a248bd",
|
"x86_64": "fc2d8141166f8561b9711fb68c5327fc9421f814c46dc69671a4605a95b175c0",
|
||||||
"aarch64": "6833061b2a2028264fdeb32f0a6123e1ff73de57dace125364016300b748452e",
|
"aarch64": "37e52c5ddb373ef29b5ead89658407c53f48d10ce055a2dbd9c606fa1ebd5f7f",
|
||||||
}[arch]
|
}[arch]
|
||||||
self.download_executable(url, self.bin_path, sha256sum)
|
self.download_executable(url, self.bin_path, sha256sum)
|
||||||
|
|
||||||
|
|||||||
@@ -225,21 +225,6 @@ Accepting and delivering mail
|
|||||||
nginx -.SMTP inet:465.-> smtpd-smtps
|
nginx -.SMTP inet:465.-> smtpd-smtps
|
||||||
mta2[Remote relay] -.SMTP inet:25.-> smtpd-smtp
|
mta2[Remote relay] -.SMTP inet:25.-> smtpd-smtp
|
||||||
mta2 -.HTTPS /mxdeliv.-> nginx
|
mta2 -.HTTPS /mxdeliv.-> nginx
|
||||||
style postfix fill:#363
|
|
||||||
style qmgr fill:#252
|
|
||||||
style authclean fill:#252
|
|
||||||
style cleanup fill:#252
|
|
||||||
style lmtp-filtermail fill:#252
|
|
||||||
style lmtp fill:#252
|
|
||||||
style bounce fill:#252
|
|
||||||
style smtpd-submission fill:#252
|
|
||||||
style smtpd-smtps fill:#252
|
|
||||||
style smtpd-reinject-outgoing fill:#252
|
|
||||||
style smtpd-reinject-incoming fill:#252
|
|
||||||
style smtpd-smtp fill:#252
|
|
||||||
style filtermail-outgoing fill:#225
|
|
||||||
style filtermail-incoming fill:#225
|
|
||||||
style filtermail-transport fill:#225
|
|
||||||
|
|
||||||
Operational details of a chatmail relay
|
Operational details of a chatmail relay
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user