|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
cat << EOF
|
|
|
|
__ _ _
|
|
|
|
/ _| | | (_)
|
|
|
|
| |_ _ __ ___ ___ _ __ ___ ___| |_ ___ _ ___
|
|
|
|
| _| '__/ _ \\/ _ \\ '_ \\ / _ \\/ __| __/ _ \\ | |/ _ \\
|
|
|
|
| | | | | __/ __/ |_) | (_) \\__ \\ || __/_| | (_)|
|
|
|
|
|_| |_| \\___|\\___| .__/ \\___/|___/\\__\\___(_)_|\\___/
|
|
|
|
| |
|
|
|
|
|_|
|
|
|
|
|
|
|
|
For documentation, please visit https://freeposte.io
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# When postfix is installed non-interactively, the file does not get copied to
|
|
|
|
# the postfix chroot, thus causing smtpd to fail, fix this at runtime
|
|
|
|
cp /etc/services /var/spool/postfix/etc/
|
|
|
|
|
|
|
|
# Create necessary directories
|
|
|
|
mkdir -p \
|
|
|
|
/data/mail \
|
|
|
|
/data/webmail/tmp \
|
|
|
|
/data/logs \
|
|
|
|
/data/logs/webmail \
|
|
|
|
/data/ssl
|
|
|
|
|
|
|
|
# Create the main database if necessary
|
|
|
|
if [ ! -f /data/freeposte.db ]; then
|
|
|
|
echo 'Initializing the database...'
|
|
|
|
cd /admin && python initdb.py
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Fixing permissions
|
|
|
|
chown www-data:mail /data/freeposte.db
|
|
|
|
chmod 664 /data/freeposte.db
|
|
|
|
chown -R mail:mail /data/mail
|
|
|
|
chown -R www-data:www-data /data/webmail /data/logs/webmail
|
|
|
|
|
|
|
|
# Copy the system snakeoil certificate if none is provided
|
|
|
|
if [ ! -f /data/ssl/cert.pem ]; then
|
|
|
|
cat << EOF
|
|
|
|
No TLS certificate is installed, a snakeoil ceritifcate is thus
|
|
|
|
being configured. You MUST NOT run a production server with this
|
|
|
|
certificate, as the private key is known publicly.
|
|
|
|
|
|
|
|
You have been warned.
|
|
|
|
EOF
|
|
|
|
cp /etc/ssl/private/ssl-cert-snakeoil.key /data/ssl/key.pem
|
|
|
|
cp /etc/ssl/certs/ssl-cert-snakeoil.pem /data/ssl/cert.pem
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Finally run the server
|
|
|
|
echo "Supervisor will now take over..."
|
|
|
|
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|