101 private links
Map functions are hard to "get" in the abstract. This looks at two mental models that helped me understand them better.
Switching from primitive types to product types can improve confidence in correctness and compiler errors, but not without a cost.
logrotate for docker logs
Good example for generating password using different wrappers or bindings of the crypt() function
I use this to manually change password in /etc/shadow for users created only as opensmtpd users which has no shell access (/usr/sbin/nologin)
The quickest way, using python3 is:
python -c 'import crypt; print(crypt.crypt("password",crypt.METHOD_SHA512))'
Concise example to setup an opensmtpd server with virtual domains and virtual users
Had some problems with the passwd table which where solved by following this example:
http://misc.opensmtpd.narkive.com/OpKS0DRj/table-passwd-invialid-without-the-shell
The guide is a bit too simplistic but covers some topics like spf and client configuration
Blog series to install opensmtp and dovecot with filters for spam, antivirus, dkim plus roundcube webmail
A couple of details are missing like reverse DNS (test with mail-tester):
- set the droplet name as the domain you are using for the emails (eg mail.example.com) if using digitalocean
- set the same domain in /etc/mailname
Corso di Sistemi Operativi di Marco Cesati