|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
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/ssl
|
|
|
|
|
|
|
|
# Create the main database if necessary
|
|
|
|
if [ ! -f /data/freeposte.db ]
|
|
|
|
sqlite3 /data/freeposte.db .databases > /dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Fixing permissions
|
|
|
|
chown mail:mail /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
|
|
|
|
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|