Compare commits

..

1 Commits

Author SHA1 Message Date
link2xt
2b806971a3 Avoid datetime overflow, cache deb for a year instead of 300k years 2025-07-08 17:53:29 +00:00
6 changed files with 6 additions and 67 deletions

View File

@@ -2,12 +2,6 @@
## untagged
- Allow custom nginx config files
([#617](https://github.com/chatmail/relay/pull/617))
- Check whether GCC is installed in initenv.sh
([#608](https://github.com/chatmail/relay/pull/608))
- Expire push notification tokens after 90 days
([#583](https://github.com/chatmail/relay/pull/583))
@@ -20,9 +14,6 @@
- Reconfigure Dovecot imap-login service to high-performance mode
([#578](https://github.com/chatmail/relay/pull/578))
- Set timezone to improve dovecot performance
([#584](https://github.com/chatmail/relay/pull/584))
- Increase nginx connection limits
([#576](https://github.com/chatmail/relay/pull/576))

View File

@@ -255,19 +255,6 @@ This starts a local live development cycle for chatmail web pages:
- Starts a browser window automatically where you can "refresh" as needed.
#### Custom web pages
If you want to include other pages,
they need their separate nginx config
under `/etc/nginx/sites-enabled/`.
Note that they need to listen on port 8443 instead of 443.
To request TLS certificates for the corresponding domains,
point the DNS records to your Server and run `acmetool want <domain>`.
You can find the TLS certificates under `/var/lib/acme/live`.
They will be automatically renewed.
## Mailbox directory layout
Fresh chatmail addresses have a mailbox directory that contains:
@@ -554,6 +541,3 @@ Here are some related projects that you may be interested in:
progress](https://github.com/mjl-/mox/issues/251) to modify it to support all
of the features and configuration settings required to operate as a chatmail
relay.
- [Maddy-Chatmail](https://github.com/sadraiiali/maddy_chatmail): a plugin for the
[Maddy email server](https://maddy.email/) which aims to implement the
chatmail relay features and configuration options.

View File

@@ -346,7 +346,7 @@ def _install_dovecot_package(package: str, arch: str):
src=url,
dest=deb_filename,
sha256sum=sha256,
cache_time=60 * 60 * 24 * 365 * 10, # never redownload the package
cache_time=60 * 60 * 24 * 365, # cache the .deb for a year,
)
apt.deb(name=f"Install dovecot-{package}", src=deb_filename)
@@ -410,13 +410,6 @@ def _configure_dovecot(config: Config, debug: bool = False) -> bool:
persist=True,
)
timezone_env = files.line(
name="Set TZ environment variable",
path="/etc/environment",
line="TZ=:/etc/localtime",
)
need_restart |= timezone_env.changed
return need_restart
@@ -424,12 +417,6 @@ def _configure_nginx(config: Config, debug: bool = False) -> bool:
"""Configures nginx HTTP server."""
need_restart = False
files.link(
name="disable nginx default site",
path="/etc/nginx/sites-enabled/default",
present=False,
)
main_config = files.template(
src=importlib.resources.files(__package__).joinpath("nginx/nginx.conf.j2"),
dest="/etc/nginx/nginx.conf",
@@ -722,10 +709,9 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
packages="postfix",
)
if not "dovecot.service" in host.get_fact(SystemdEnabled):
_install_dovecot_package("core", host.get_fact(facts.server.Arch))
_install_dovecot_package("imapd", host.get_fact(facts.server.Arch))
_install_dovecot_package("lmtpd", host.get_fact(facts.server.Arch))
_install_dovecot_package("core", host.get_fact(facts.server.Arch))
_install_dovecot_package("imapd", host.get_fact(facts.server.Arch))
_install_dovecot_package("lmtpd", host.get_fact(facts.server.Arch))
apt.packages(
name="Install nginx",
@@ -822,14 +808,8 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
name="Ensure cron is installed",
packages=["cron"],
)
try:
git_hash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode()
except Exception:
git_hash = "unknown\n"
try:
git_diff = subprocess.check_output(["git", "diff"]).decode()
except Exception:
git_diff = ""
git_hash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode()
git_diff = subprocess.check_output(["git", "diff"]).decode()
files.put(
name="Upload chatmail relay git commiit hash",
src=StringIO(git_hash + git_diff),

View File

@@ -136,7 +136,4 @@ http {
return 301 $scheme://{{ config.domain_name }}$request_uri;
access_log syslog:server=unix:/dev/log,facility=local7;
}
# Include custom pages; they need to listen on port 8443 instead of port 443
include /etc/nginx/sites-enabled/*;
}

View File

@@ -65,14 +65,6 @@ class TestSSHExecutor:
assert (now - since_date).total_seconds() < 60 * 60 * 51
def test_timezone_env(remote):
for line in remote.iter_output("env"):
print(line)
if line == "tz=:/etc/localtime":
return True
pytest.fail("TZ is not set")
def test_remote(remote, imap_or_smtp):
lineproducer = remote.iter_output(imap_or_smtp.logcmd)
imap_or_smtp.connect()

View File

@@ -9,11 +9,6 @@ if command -v lsb_release 2>&1 >/dev/null; then
echo "You need to install python3-dev for installing the other dependencies."
exit 1
fi
if ! gcc --version 2>&1 >/dev/null
then
echo "You need to install gcc for building Python dependencies."
exit 1
fi
;;
esac
fi