2014-08-16 17:30:53 +00:00
|
|
|
#!/bin/bash
|
|
|
|
#########################################################
|
|
|
|
# This script is intended to be run like this:
|
|
|
|
#
|
2016-01-30 16:19:51 +00:00
|
|
|
# curl https://mailinabox.email/setup.sh | sudo bash
|
2014-08-16 17:30:53 +00:00
|
|
|
#
|
|
|
|
#########################################################
|
|
|
|
|
2014-08-25 12:18:46 +00:00
|
|
|
if [ -z "$TAG" ]; then
|
2019-01-09 12:11:53 +00:00
|
|
|
# If a version to install isn't explicitly given as an environment
|
|
|
|
# variable, then install the latest version. But the latest version
|
2022-01-09 00:09:11 +00:00
|
|
|
# depends on the machine's version of Ubuntu. Existing users need to
|
|
|
|
# be able to upgrade to the latest version available for that version
|
|
|
|
# of Ubuntu to satisfy the migration requirements.
|
2019-01-09 12:11:53 +00:00
|
|
|
#
|
2019-01-12 13:24:15 +00:00
|
|
|
# Also, the system status checks read this script for TAG = (without the
|
|
|
|
# space, but if we put it in a comment it would confuse the status checks!)
|
|
|
|
# to get the latest version, so the first such line must be the one that we
|
|
|
|
# want to display in status checks.
|
2022-01-09 00:09:11 +00:00
|
|
|
#
|
|
|
|
# Allow point-release versions of the major releases, e.g. 22.04.1 is OK.
|
2022-10-12 10:11:02 +00:00
|
|
|
UBUNTU_VERSION=$( lsb_release -d | sed 's/.*:\s*//' | sed 's/\([0-9]*\.[0-9]*\)\.[0-9]/\1/' )
|
2022-01-09 00:09:11 +00:00
|
|
|
if [ "$UBUNTU_VERSION" == "Ubuntu 22.04 LTS" ]; then
|
|
|
|
# This machine is running Ubuntu 22.04, which is supported by
|
|
|
|
# Mail-in-a-Box versions 60 and later.
|
2024-04-01 14:55:17 +00:00
|
|
|
TAG=v68
|
2022-01-09 00:09:11 +00:00
|
|
|
elif [ "$UBUNTU_VERSION" == "Ubuntu 18.04 LTS" ]; then
|
|
|
|
# This machine is running Ubuntu 18.04, which is supported by
|
|
|
|
# Mail-in-a-Box versions 0.40 through 5x.
|
|
|
|
echo "Support is ending for Ubuntu 18.04."
|
|
|
|
echo "Please immediately begin to migrate your data to"
|
|
|
|
echo "a new machine running Ubuntu 22.04. See:"
|
|
|
|
echo "https://mailinabox.email/maintenance.html#upgrade"
|
2022-06-19 12:58:09 +00:00
|
|
|
TAG=v57a
|
2022-01-09 00:09:11 +00:00
|
|
|
elif [ "$UBUNTU_VERSION" == "Ubuntu 14.04 LTS" ]; then
|
|
|
|
# This machine is running Ubuntu 14.04, which is supported by
|
|
|
|
# Mail-in-a-Box versions 1 through v0.30.
|
|
|
|
echo "Ubuntu 14.04 is no longer supported."
|
|
|
|
echo "The last version of Mail-in-a-Box supporting Ubuntu 14.04 will be installed."
|
2019-01-09 12:11:53 +00:00
|
|
|
TAG=v0.30
|
|
|
|
else
|
2022-01-09 00:09:11 +00:00
|
|
|
echo "This script may be used only on a machine running Ubuntu 14.04, 18.04, or 22.04."
|
2020-04-11 18:18:44 +00:00
|
|
|
exit 1
|
2019-01-09 12:11:53 +00:00
|
|
|
fi
|
2014-08-25 12:18:46 +00:00
|
|
|
fi
|
2014-08-21 17:23:47 +00:00
|
|
|
|
2014-08-16 17:30:53 +00:00
|
|
|
# Are we running as root?
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
|
|
echo "This script must be run as root. Did you leave out sudo?"
|
2020-04-11 18:18:44 +00:00
|
|
|
exit 1
|
2014-08-16 17:30:53 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Clone the Mail-in-a-Box repository if it doesn't exist.
|
2023-12-21 14:58:34 +00:00
|
|
|
if [ ! -d "$HOME/mailinabox" ]; then
|
2015-06-10 13:33:47 +00:00
|
|
|
if [ ! -f /usr/bin/git ]; then
|
|
|
|
echo Installing git . . .
|
|
|
|
apt-get -q -q update
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get -q -q install -y git < /dev/null
|
|
|
|
echo
|
|
|
|
fi
|
2014-09-21 20:37:04 +00:00
|
|
|
|
2023-12-04 14:22:54 +00:00
|
|
|
if [ "$SOURCE" == "" ]; then
|
|
|
|
SOURCE=https://github.com/mail-in-a-box/mailinabox
|
|
|
|
fi
|
|
|
|
|
2023-12-21 14:58:34 +00:00
|
|
|
echo "Downloading Mail-in-a-Box $TAG. . ."
|
2014-10-05 17:32:52 +00:00
|
|
|
git clone \
|
2023-12-21 14:58:34 +00:00
|
|
|
-b "$TAG" --depth 1 \
|
|
|
|
"$SOURCE" \
|
|
|
|
"$HOME/mailinabox" \
|
2014-10-05 17:32:52 +00:00
|
|
|
< /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Change directory to it.
|
2023-12-21 15:02:42 +00:00
|
|
|
cd "$HOME/mailinabox" || exit
|
2014-08-16 17:30:53 +00:00
|
|
|
|
2014-10-05 17:32:52 +00:00
|
|
|
# Update it.
|
2023-12-21 16:00:26 +00:00
|
|
|
if [ "$TAG" != "$(git describe --always)" ]; then
|
2023-12-21 14:58:34 +00:00
|
|
|
echo "Updating Mail-in-a-Box to $TAG . . ."
|
|
|
|
git fetch --depth 1 --force --prune origin tag "$TAG"
|
|
|
|
if ! git checkout -q "$TAG"; then
|
2021-05-03 23:28:23 +00:00
|
|
|
echo "Update failed. Did you modify something in $(pwd)?"
|
2020-04-11 18:18:44 +00:00
|
|
|
exit 1
|
2014-08-16 17:30:53 +00:00
|
|
|
fi
|
2014-10-05 17:32:52 +00:00
|
|
|
echo
|
2014-08-16 17:30:53 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Start setup script.
|
|
|
|
setup/start.sh
|
2014-09-21 20:37:04 +00:00
|
|
|
|