DeadmanDAO Mail Server: Difference between revisions

From Traxel Wiki
Jump to navigation Jump to search
 
(45 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:OpenDevOps]]
[[Category:OpenDevOps]]


AWS SES may be the solution: https://docs.aws.amazon.com/ses/latest/dg/lists-and-subscriptions.html


No, it doesn't have nearly the capabilities of a real mailing list system.
= Host Machine =
 
Mailchimp is out because it was bought for so much money that the money squeeze is going to be intense.
 
Other commercial providers are not significantly less risky than Mailchimp.
 
Mailman is robust once deployed and the initial build-out is not too painful.
 
[[MailingListDeadmanFirstPass]]
 
 
= DeadmanDAO Mailman Build-out =


== Create Instance ==
== Create Instance ==
Line 22: Line 10:
# create an instance
# create an instance
## Single Slice ($6/mo at this time)
## Single Slice ($6/mo at this time)
## Debian
## Debian 9 (Deb 9 has Mailman 2, Deb 10 has Mailman 3)
## KVM
## KVM
# set reverse DNS to diffie.deadmandao.com
# set reverse DNS to diffie.deadmandao.com
Line 39: Line 27:


=== Add User Account ===
=== Add User Account ===
Log in root@ip.address
<pre>
<pre>
apt-get -y install sudo
apt-get -y install sudo
Line 45: Line 36:
exit
exit
</pre>
</pre>
= Host MX Settings =


Log in to bob@ip.address
Log in to bob@ip.address
Line 85: Line 78:
dnsdomainname
dnsdomainname
</pre>
</pre>
= Postfix =


== SMTP Server ==
== SMTP Server ==
Line 92: Line 87:
</pre>
</pre>


deadmandao.com is the host domain
* Internet Site
* deadmandao.com is the host domain
* send a test email


== Mailman ==
* https://docs.mailman3.org/en/latest/pre-installation-guide.html
=== Install PIP ===
<pre>
<pre>
sudo apt install python3-pip
echo "Subject: sendmail test" | /usr/sbin/sendmail -v emailaddress
</pre>
</pre>


=== Django Command Reference ===
Had trouble with IPv6 in Debian 9 ("Network is unreachable"). Used the following in main.cf to switch to IPv4 only.


Run the dev webserver
<pre>
<pre>
cd /path/to/project
# inet_protocols = all
sudo python manage.py runserver
inet_protocols = ipv4
</pre>
</pre>


Pull all the static files to a single location (for serving via Apache, for example)
= Mailman Install =
<pre>
python manage.py collectstatic
</pre>


=== Install Mailman3 Full Suite ===
[[DeadmanDAO_Mailman_Attempt]]


Lots of dependencies here.
= Client-Side =


<pre>
== GMail ==
sudo apt install mailman3-full
</pre>


== Webserver ==
* https://www.digitalocean.com/community/questions/using-gmail-with-postfix-smtp-server


<pre>
== FairEmail (Android App) ==
sudo apt-get install apache2
</pre>


=== Enable UWSGI, Link Mailman ===
* https://email.faircode.eu/
 
Something Like
<pre>
sudo a2enmod proxy_uwsgi
sudo ln -s /etc/mailman3/apache.conf /etc/apache2/sites-available/100-mailman.conf
sudo a2ensite 100-mailman
sudo service apache2 restart
</pre>
 
=== Add TLS/SSL ===
 
https://certbot.eff.org/instructions?ws=apache&os=debianbuster
 
==== Add Snapd ====
 
<pre>
sudo apt update
sudo apt install snapd
sudo snap install core
sudo snap refresh core
</pre>
 
==== Snap Install Certbot ====
 
<pre>
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
</pre>
 
==== Get a Cert for Apache ====
 
<pre>
sudo certbot --apache -d deadmandao.com -d www.deadmandao.com -d mail.deadmandao.com -d diffie.deadmandao.com
</pre>

Latest revision as of 20:50, 12 June 2022


Host Machine

Create Instance

Interserver Web Interface

  1. go to interserver
  2. create an instance
    1. Single Slice ($6/mo at this time)
    2. Debian 9 (Deb 9 has Mailman 2, Deb 10 has Mailman 3)
    3. KVM
  3. set reverse DNS to diffie.deadmandao.com
  4. Note the IP address

Update to Latest

Log in root@ip.address using password you provided

apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade # if needed
reboot

Add User Account

Log in root@ip.address

apt-get -y install sudo
adduser bob
usermod -G sudo bob
exit

Host MX Settings

Log in to bob@ip.address

Set SPF

sudo apt-get install net-tools
sudo ifconfig

That'll give you the ip4 and ip6 addresses, which go into the DNS text record:

  • v=spf1 ip4:66.23.226.216 ip6:fe80::216:3eff:fe24:10e1 -all

Set Other DNS

  • A Record, diffie, 66.23.226.216
  • A Record, @, 66.23.226.216
  • CNAME Record, www, diffie.deadmandao.com
  • CNAME Record, mail, diffie.deadmandao.com
  • TXT Record, diffe, v=spf1 ip4:66.23.226.216 ip6:fe80::216:3eff:fe24:10e1 -all
  • MX Record, deadmandao.com, mail.deadmandao.com, 10

Set Hostname

sudo apt-get install emacs-nox
sudo emacs -nw /etc/hostname
> diffie
sudo emacs -nw /etc/hosts
> 66.23.226.216	diffie.deadmandao.com diffie
sudo reboot

Log in to bob@diffie.deadmandao.com

hostname
hostname --all-fqdn
dnsdomainname

Postfix

SMTP Server

sudo apt-get install postfix
  • Internet Site
  • deadmandao.com is the host domain
  • send a test email
echo "Subject: sendmail test" | /usr/sbin/sendmail -v emailaddress

Had trouble with IPv6 in Debian 9 ("Network is unreachable"). Used the following in main.cf to switch to IPv4 only.

# inet_protocols = all
inet_protocols = ipv4

Mailman Install

DeadmanDAO_Mailman_Attempt

Client-Side

GMail

FairEmail (Android App)