mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-12-22 07:17:05 +00:00
73fbcd7fa3
Querying dpkg for each package is slow, and we have way too much output on installation because of it.
55 lines
1.9 KiB
Bash
Executable File
55 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
source setup/functions.sh
|
|
|
|
echo "Installing Mail-in-a-Box system management daemon..."
|
|
|
|
# build-essential libssl-dev libffi-dev python3-dev: Required to pip install cryptography.
|
|
apt_install python3-flask links duplicity libyaml-dev python3-dnspython python3-dateutil \
|
|
build-essential libssl-dev libffi-dev python3-dev python-pip
|
|
hide_output pip3 install --upgrade rtyaml email_validator idna cryptography boto
|
|
|
|
# duplicity uses python 2 so we need to use the python 2 package of boto
|
|
hide_output pip install --upgrade boto
|
|
|
|
# email_validator is repeated in setup/questions.sh
|
|
|
|
# Create a backup directory and a random key for encrypting backups.
|
|
mkdir -p $STORAGE_ROOT/backup
|
|
if [ ! -f $STORAGE_ROOT/backup/secret_key.txt ]; then
|
|
$(umask 077; openssl rand -base64 2048 > $STORAGE_ROOT/backup/secret_key.txt)
|
|
fi
|
|
|
|
# Link the management server daemon into a well known location.
|
|
rm -f /usr/local/bin/mailinabox-daemon
|
|
ln -s `pwd`/management/daemon.py /usr/local/bin/mailinabox-daemon
|
|
|
|
# Create an init script to start the management daemon and keep it
|
|
# running after a reboot.
|
|
rm -f /etc/init.d/mailinabox
|
|
ln -s $(pwd)/conf/management-initscript /etc/init.d/mailinabox
|
|
hide_output update-rc.d mailinabox defaults
|
|
|
|
# Perform a daily backup.
|
|
cat > /etc/cron.daily/mailinabox-backup << EOF;
|
|
#!/bin/bash
|
|
# Mail-in-a-Box --- Do not edit / will be overwritten on update.
|
|
# Perform a backup.
|
|
$(pwd)/management/backup.py
|
|
EOF
|
|
chmod +x /etc/cron.daily/mailinabox-backup
|
|
|
|
# Perform daily status checks. Compare each day to the previous
|
|
# for changes and mail the changes to the administrator.
|
|
cat > /etc/cron.daily/mailinabox-statuschecks << EOF;
|
|
#!/bin/bash
|
|
# Mail-in-a-Box --- Do not edit / will be overwritten on update.
|
|
# Run status checks.
|
|
$(pwd)/management/status_checks.py --show-changes --smtp
|
|
EOF
|
|
chmod +x /etc/cron.daily/mailinabox-statuschecks
|
|
|
|
|
|
# Start it.
|
|
restart_service mailinabox
|