mirror of
https://github.com/chatmail/relay.git
synced 2026-05-14 18:04:38 +00:00
Compare commits
4 Commits
test-witho
...
custom-ngi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bedfc09e8e | ||
|
|
3ce350de9e | ||
|
|
1e05974970 | ||
|
|
577c04d537 |
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
## untagged
|
## 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
|
- Expire push notification tokens after 90 days
|
||||||
([#583](https://github.com/chatmail/relay/pull/583))
|
([#583](https://github.com/chatmail/relay/pull/583))
|
||||||
|
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -255,6 +255,19 @@ This starts a local live development cycle for chatmail web pages:
|
|||||||
|
|
||||||
- Starts a browser window automatically where you can "refresh" as needed.
|
- 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
|
## Mailbox directory layout
|
||||||
|
|
||||||
Fresh chatmail addresses have a mailbox directory that contains:
|
Fresh chatmail addresses have a mailbox directory that contains:
|
||||||
|
|||||||
@@ -321,14 +321,14 @@ def _configure_postfix(config: Config, debug: bool = False) -> bool:
|
|||||||
def _install_dovecot_package(package: str, arch: str):
|
def _install_dovecot_package(package: str, arch: str):
|
||||||
arch = "amd64" if arch == "x86_64" else arch
|
arch = "amd64" if arch == "x86_64" else arch
|
||||||
arch = "arm64" if arch == "aarch64" else arch
|
arch = "arm64" if arch == "aarch64" else arch
|
||||||
url = f"https://download.delta.chat/dovecot/staging-drop-libicu/dovecot-{package}_2.3.21%2Bdfsg1-3_{arch}.deb"
|
url = f"https://download.delta.chat/dovecot/dovecot-{package}_2.3.21%2Bdfsg1-3_{arch}.deb"
|
||||||
deb_filename = "/root/" + url.split("/")[-1]
|
deb_filename = "/root/" + url.split("/")[-1]
|
||||||
|
|
||||||
match (package, arch):
|
match (package, arch):
|
||||||
case ("core", "amd64"):
|
case ("core", "amd64"):
|
||||||
sha256 = "dd060706f52a306fa863d874717210b9fe10536c824afe1790eec247ded5b27d"
|
sha256 = "43f593332e22ac7701c62d58b575d2ca409e0f64857a2803be886c22860f5587"
|
||||||
case ("core", "arm64"):
|
case ("core", "arm64"):
|
||||||
sha256 = "e7548e8a82929722e973629ecc40fcfa886894cef3db88f23535149e7f730dc9"
|
sha256 = "4d21eba1a83f51c100f08f2e49f0c9f8f52f721ebc34f75018e043306da993a7"
|
||||||
case ("imapd", "amd64"):
|
case ("imapd", "amd64"):
|
||||||
sha256 = "8d8dc6fc00bbb6cdb25d345844f41ce2f1c53f764b79a838eb2a03103eebfa86"
|
sha256 = "8d8dc6fc00bbb6cdb25d345844f41ce2f1c53f764b79a838eb2a03103eebfa86"
|
||||||
case ("imapd", "arm64"):
|
case ("imapd", "arm64"):
|
||||||
@@ -424,6 +424,12 @@ def _configure_nginx(config: Config, debug: bool = False) -> bool:
|
|||||||
"""Configures nginx HTTP server."""
|
"""Configures nginx HTTP server."""
|
||||||
need_restart = False
|
need_restart = False
|
||||||
|
|
||||||
|
files.link(
|
||||||
|
name="disable nginx default site",
|
||||||
|
path="/etc/nginx/sites-enabled/default",
|
||||||
|
present=False,
|
||||||
|
)
|
||||||
|
|
||||||
main_config = files.template(
|
main_config = files.template(
|
||||||
src=importlib.resources.files(__package__).joinpath("nginx/nginx.conf.j2"),
|
src=importlib.resources.files(__package__).joinpath("nginx/nginx.conf.j2"),
|
||||||
dest="/etc/nginx/nginx.conf",
|
dest="/etc/nginx/nginx.conf",
|
||||||
@@ -816,8 +822,14 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
|||||||
name="Ensure cron is installed",
|
name="Ensure cron is installed",
|
||||||
packages=["cron"],
|
packages=["cron"],
|
||||||
)
|
)
|
||||||
git_hash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode()
|
try:
|
||||||
git_diff = subprocess.check_output(["git", "diff"]).decode()
|
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 = ""
|
||||||
files.put(
|
files.put(
|
||||||
name="Upload chatmail relay git commiit hash",
|
name="Upload chatmail relay git commiit hash",
|
||||||
src=StringIO(git_hash + git_diff),
|
src=StringIO(git_hash + git_diff),
|
||||||
|
|||||||
@@ -136,4 +136,7 @@ http {
|
|||||||
return 301 $scheme://{{ config.domain_name }}$request_uri;
|
return 301 $scheme://{{ config.domain_name }}$request_uri;
|
||||||
access_log syslog:server=unix:/dev/log,facility=local7;
|
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/*;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ if command -v lsb_release 2>&1 >/dev/null; then
|
|||||||
echo "You need to install python3-dev for installing the other dependencies."
|
echo "You need to install python3-dev for installing the other dependencies."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if ! gcc --version 2>&1 >/dev/null
|
||||||
|
then
|
||||||
|
echo "You need to install gcc for building Python dependencies."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user