build files for making podman containers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2.1 KiB

steps needed to deploy mailserver

create dirs

sudo mkdir -p /srv/vol/mailsrv/{db,mail,ssl}
sudo chown -R 5000:5000 /srv/vol/mailsrv
sudo chmod go-rwx /srv/vol/mailsrv/ssl

put your users and aliases.d in the db directory. Mail will go in the mail directory.

sudo -i
cd /srv/vol/mailsrv/db
mkdir aliases.d

create aliases as needed

vi /srv/vol/mailsrv/db/users

format is like a passwd file with user:passwd (no spaces between)

make sure that all files are owned by 5000:5000

make sure mail ports are open

add the following directives to the myfirewall chain in /etc/nftables.conf:

                # accept incoming SMTP(s) connections
                tcp dport {25, 587} accept

                # accept incoming IMAP(s) connections
                tcp dport {143, 993} accept

then make sure configuration has taken place by running:

nft -f /etc/nftables

set up domain name

Set up a DNS A Record pointing to your host machine. Make sure it works by running:

ping ${dnsname:?}

get SSL certificates from letsencrypt

install certbot:

apt install certbot

if you are using a firewall, you need to figure out how to define a temporary rule allowing http access. For nftables, the rule would be nft insert rule inet myfilter myfirewall tcp dport 80 accept.

Get a certificate for your domain by running:

certbot certonly --standalone --pre-hook "nft insert rule inet myfilter myfirewall tcp dport 80 accept" --post-hook "nft -f /etc/nftables.conf" --deploy-hook "rsync -vaSHL /etc/letsencrypt/live/${domain:?}/ /srv/volumes/mailsrv/ssl/; chown -R 5000:5000 /srv/volumes/mailsrv/ssl" -d ${domain:?}

the application may ask you a few questions. Answer them as you would like. Including the appropriate hooks in the issue command should ensure that those hooks are also included in subsequent renew commands.

make users and aliases

cd /srv/volumes/mailsrv/db
mkdir aliases.d
touch users
chmod go= users

then edit users and add aliases lists to aliases.d. Don't forget to change its ownership once you're done:

chown -R 5000:5000 /srv/volumes/mailsrv/db