rework UI for chatmail setup

This commit is contained in:
holger krekel 2023-12-09 13:43:56 +01:00
parent b71e24d6a1
commit 6285283b02
2 changed files with 62 additions and 35 deletions

View File

@ -1,9 +1,9 @@
<img width="800px" src="www/src/collage-top.png"/>
# Chatmail instances optimized for Delta Chat apps
# Chatmail services optimized for Delta Chat apps
This repository helps to setup a ready-to-use chatmail instance
This repository helps to setup a ready-to-use chatmail server
comprised of a minimal setup of the battle-tested
[postfix smtp](https://www.postfix.org) and [dovecot imap](https://www.dovecot.org) services.
@ -13,27 +13,72 @@ for use by [Delta Chat apps](https://delta.chat).
Chatmail accounts are automatically created by a first login,
after which the initially specified password is required for using them.
## Getting Started deploying your own chatmail instance
## Deploying your own chatmail server
1. Setup a domain with `A` and `AAAA` records for your chatmail server.
We subsequently use `CHATMAIL_DOMAIN` as a placeholder for your fully qualified
DNS domain name (FQDN), for example `chat.example.org`.
2. Prepare your local system for deploying to $CHATMAIL_DOMAIN:
1. Setup DNS `A` and `AAAA` records for your `CHATMAIL_DOMAIN`.
Verify that DNS is set and SSH root login works:
scripts/init.sh $CHATMAIL_DOMAIN
```
ssh root@CHATMAIL_DOMAIN
```
3. Edit the generated `chatmail.ini` file
2. Install the `cmdeploy` binary in a Python virtual environment:
4. Deploy chatmail services remotely:
```
python3 -m venv venv
source venv/bin/activate
pip install -e deploy-chatmail -e chatmaild
```
scripts/deploy.sh chatmail.ini
3. Create chatmail configuration file `chatmail.ini`:
5. Run `scripts/generate-dns-zone.sh` and
transfer the generated DNS `chatmail.zone` records to your DNS provider
```
cmdeploy genconfig chatmail.ini CHATMAIL_DOMAIN
```
4. Deploy to the remote chatmail server, pointing to the chatmail config file:
```
cmdeploy install chatmail.ini
```
5. To output a DNS zone file from which you can transfer DNS records
to your DNS provider for your `CHATMAIL_DOMAIN`
```
cmdeploy dns chatmail.ini
```
to generate a DNS zone file from which you can transfer records to your
DNS provider.
### Refining the web pages
```
cmdeploy webdev
```
This starts a local live development cycle for chatmail Web pages:
- uses the `www/src/page-layout.html` file for producing static
HTML pages from `www/src/*.md` files
- continously builds the web presence reading files from `www/src` directory
and generating html files and copying assets to the `www/build` directory.
- Starts a browser window automatically where you can "refresh" as needed.
### Home page and getting started for users
The `deploy.sh` script deploys
`cmdeploy install chatmail.ini` script sets up mail services,
and also creates default static Web pages and deploys them:
- a default `index.html` along with a QR code that users can click to
create accounts on your chatmail provider,
@ -42,31 +87,10 @@ The `deploy.sh` script deploys
- a default `policy.html` that is linked from the home page.
All files are generated by the according markdown `.md` file in the `www` directory.
All `.html` files are generated
by the according markdown `.md` file in the `www/src` directory.
### Refining the web pages
The `scripts/webdev.sh` script supports live development of the chatmail web presence:
```
scripts/init.sh # to locally initialize python virtual environments etc.
scripts/webdev.sh
```
- uses the `www/src/page-layout.html` file for producing html documents
from `www/src/*.md` files.
- continously builds the web presence reading files from `www/src` directory
and generating html files and copying assets to the `www/build` directory.
- Starts a browser window automatically where you can "refresh" as needed.
Note that this script is not needed for running `scripts/deploy.sh"
which deploys the whole chatmail setup remotely.
The code that generates the web pages is identical
which means that `webdev.sh` gives a pretty good preview.
### Ports
Postfix listens on ports 25 (smtp) and 587 (submission) and 465 (submissions).

View File

@ -10,6 +10,9 @@ dependencies = [
"pillow",
"qrcode",
"markdown",
"pytest",
"setuptools>=68",
"tox",
]
[tool.pytest.ini_options]