mirror of
https://github.com/chatmail/relay.git
synced 2026-05-17 15:48:58 +00:00
Compare commits
4 Commits
sk/fix_typ
...
tweak-read
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bfbff4400 | ||
|
|
0a42fd1a9f | ||
|
|
8a338f1320 | ||
|
|
d437b8a943 |
18
README.md
18
README.md
@@ -15,8 +15,8 @@ after which the initially specified password is required for using them.
|
|||||||
|
|
||||||
## Deploying your own chatmail server
|
## Deploying your own chatmail server
|
||||||
|
|
||||||
We subsequently use `CHATMAIL_DOMAIN` as a placeholder for your fully qualified
|
We use `chat.example.org` as the chatmail domain in the following steps.
|
||||||
DNS domain name (FQDN), for example `chat.example.org`.
|
Please substitute it with your own domain.
|
||||||
|
|
||||||
1. Install the `cmdeploy` command in a virtualenv
|
1. Install the `cmdeploy` command in a virtualenv
|
||||||
|
|
||||||
@@ -25,19 +25,19 @@ DNS domain name (FQDN), for example `chat.example.org`.
|
|||||||
cd chatmail
|
cd chatmail
|
||||||
scripts/initenv.sh
|
scripts/initenv.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Create chatmail configuration file `chatmail.ini`:
|
2. Create chatmail configuration file `chatmail.ini`:
|
||||||
|
|
||||||
```
|
```
|
||||||
scripts/cmdeploy init CHATMAIL_DOMAIN
|
scripts/cmdeploy init chat.example.org # <-- use your domain
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Setup first DNS records for your `CHATMAIL_DOMAIN`,
|
3. Setup first DNS records for your chatmail domain,
|
||||||
according to the hints provided by `cmdeploy init`.
|
according to the hints provided by `cmdeploy init`.
|
||||||
Verify that SSH root login works:
|
Verify that SSH root login works:
|
||||||
|
|
||||||
```
|
```
|
||||||
ssh root@CHATMAIL_DOMAIN
|
ssh root@chat.example.org # <-- use your domain
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Deploy to the remote chatmail server:
|
4. Deploy to the remote chatmail server:
|
||||||
@@ -75,7 +75,7 @@ scripts/cmdeploy bench
|
|||||||
|
|
||||||
## Overview of this repository
|
## Overview of this repository
|
||||||
|
|
||||||
This repository drives the development of "chatmail instances",
|
This repository drives the development of chatmail services,
|
||||||
comprised of minimal setups of
|
comprised of minimal setups of
|
||||||
|
|
||||||
- [postfix smtp server](https://www.postfix.org)
|
- [postfix smtp server](https://www.postfix.org)
|
||||||
@@ -91,7 +91,7 @@ as well as custom services that are integrated with these two:
|
|||||||
to send mails for them.
|
to send mails for them.
|
||||||
|
|
||||||
- `chatmaild/src/chatmaild/filtermail.py` prevents
|
- `chatmaild/src/chatmaild/filtermail.py` prevents
|
||||||
unencrypted e-mail from leaving the chatmail instance
|
unencrypted e-mail from leaving the chatmail service
|
||||||
and is integrated into postfix's outbound mail pipelines.
|
and is integrated into postfix's outbound mail pipelines.
|
||||||
|
|
||||||
There is also the `cmdeploy/src/cmdeploy/cmdeploy.py` command line tool
|
There is also the `cmdeploy/src/cmdeploy/cmdeploy.py` command line tool
|
||||||
@@ -104,7 +104,7 @@ to automatically install all chatmail components on a server.
|
|||||||
### Home page and getting started for users
|
### Home page and getting started for users
|
||||||
|
|
||||||
`cmdeploy run` also creates default static Web pages and deploys them
|
`cmdeploy run` also creates default static Web pages and deploys them
|
||||||
to an nginx web server under `https://CHATMAIL_DOMAIN`.
|
to a nginx web server with:
|
||||||
|
|
||||||
- a default `index.html` along with a QR code that users can click to
|
- a default `index.html` along with a QR code that users can click to
|
||||||
create accounts on your chatmail provider,
|
create accounts on your chatmail provider,
|
||||||
|
|||||||
@@ -4,16 +4,22 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import random
|
import random
|
||||||
|
import secrets
|
||||||
|
import string
|
||||||
|
|
||||||
from chatmaild.config import read_config, Config
|
from chatmaild.config import read_config, Config
|
||||||
|
|
||||||
CONFIG_PATH = "/usr/local/lib/chatmaild/chatmail.ini"
|
CONFIG_PATH = "/usr/local/lib/chatmaild/chatmail.ini"
|
||||||
|
ALPHANUMERIC = string.ascii_lowercase + string.digits
|
||||||
|
ALPHANUMERIC_PUNCT = string.ascii_letters + string.digits + string.punctuation
|
||||||
|
|
||||||
|
|
||||||
def create_newemail_dict(config: Config):
|
def create_newemail_dict(config: Config):
|
||||||
alphanumeric = "abcdefghijklmnopqrstuvwxyz1234567890"
|
user = "".join(random.choices(ALPHANUMERIC, k=config.username_min_length))
|
||||||
user = "".join(random.choices(alphanumeric, k=config.username_min_length))
|
password = "".join(
|
||||||
password = "".join(random.choices(alphanumeric, k=config.password_min_length + 3))
|
secrets.choice(ALPHANUMERIC_PUNCT)
|
||||||
|
for _ in range(config.password_min_length + 3)
|
||||||
|
)
|
||||||
return dict(email=f"{user}@{config.mail_domain}", password=f"{password}")
|
return dict(email=f"{user}@{config.mail_domain}", password=f"{password}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user