132 lines
4.8 KiB
Bash
Executable File
132 lines
4.8 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# This script is meant for quick & easy install via:
|
|
# $ curl -fsSL get.mayan-edms.com -o get-mayan-edms.sh
|
|
# $ sh get-mayan-edms.sh
|
|
#
|
|
# NOTE: Make sure to verify the contents of the script
|
|
# you downloaded matches the contents of docker.sh
|
|
# located at https://gitlab.com/mayan-edms/mayan-edms/blob/master/contrib/scripts/install/docker.sh
|
|
# before executing.
|
|
|
|
: ${VERBOSE:=true}
|
|
: ${INSTALL_DOCKER:=false}
|
|
: ${DELETE_VOLUMES:=false}
|
|
: ${DATABASE_USER:=mayan}
|
|
: ${DATABASE_NAME:=mayan}
|
|
: ${DATABASE_PASSWORD:=mayanuserpass}
|
|
: ${DOCKER_POSTGRES_IMAGE:=postgres:9.5}
|
|
: ${DOCKER_POSTGRES_CONTAINER:=mayan-edms-postgres}
|
|
: ${DOCKER_POSTGRES_VOLUME:=/docker-volumes/mayan-edms/postgres}
|
|
: ${DOCKER_POSTGRES_PORT:=5432}
|
|
: ${DOCKER_MAYAN_IMAGE:=mayanedms/mayanedms:latest}
|
|
: ${DOCKER_MAYAN_CONTAINER:=mayan-edms}
|
|
: ${DOCKER_MAYAN_VOLUME:=/docker-volumes/mayan-edms/media}
|
|
|
|
cat << EOF
|
|
|
|
███╗ ███╗ █████╗ ██╗ ██╗ █████╗ ███╗ ██╗
|
|
████╗ ████║██╔══██╗╚██╗ ██╔╝██╔══██╗████╗ ██║
|
|
██╔████╔██║███████║ ╚████╔╝ ███████║██╔██╗ ██║
|
|
██║╚██╔╝██║██╔══██║ ╚██╔╝ ██╔══██║██║╚██╗██║
|
|
██║ ╚═╝ ██║██║ ██║ ██║ ██║ ██║██║ ╚████║
|
|
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
|
|
Docker deploy script
|
|
|
|
NOTE: Make sure to verify the contents of this script
|
|
matches the contents of docker.sh located at https://gitlab.com/mayan-edms/mayan-edms/blob/master/contrib/scripts/install/docker.sh before executing.
|
|
|
|
EOF
|
|
|
|
if [ "$VERBOSE" = true ]; then
|
|
echo "Variable values to be used:"
|
|
echo "---------------------------"
|
|
echo "INSTALL_DOCKER: $INSTALL_DOCKER"
|
|
echo "DELETE_VOLUMES: $DELETE_VOLUMES"
|
|
echo "DATABASE_USER: $DATABASE_USER"
|
|
echo "DATABASE_NAME: $DATABASE_NAME"
|
|
echo "DATABASE_PASSWORD: $DATABASE_PASSWORD"
|
|
echo "DOCKER_POSTGRES_IMAGE: $DOCKER_POSTGRES_IMAGE"
|
|
echo "DOCKER_POSTGRES_CONTAINER: $DOCKER_POSTGRES_CONTAINER"
|
|
echo "DOCKER_POSTGRES_VOLUME: $DOCKER_POSTGRES_VOLUME"
|
|
echo "DOCKER_POSTGRES_PORT: $DOCKER_POSTGRES_PORT"
|
|
echo "DOCKER_MAYAN_IMAGE: $DOCKER_MAYAN_IMAGE"
|
|
echo "DOCKER_MAYAN_CONTAINER: $DOCKER_MAYAN_CONTAINER"
|
|
echo "DOCKER_MAYAN_VOLUME: $DOCKER_MAYAN_VOLUME"
|
|
echo "\nStarting in 10 seconds."
|
|
sleep 10
|
|
fi
|
|
|
|
if [ "$INSTALL_DOCKER" = true ]; then
|
|
echo -n "* Installing Docker..."
|
|
curl -fsSL get.docker.com -o get-docker.sh >/dev/null
|
|
sh get-docker.sh >/dev/null 2>&1
|
|
rm get-docker.sh
|
|
echo "Done"
|
|
fi
|
|
|
|
if [ -z `which docker` ]; then
|
|
echo "Docker is not installed. Rerun this script with the variable INSTALL_DOCKER set to true."
|
|
exit 1
|
|
fi
|
|
|
|
echo -n "* Removing existing Mayan EDMS and PostgreSQL containers (no data will be lost)..."
|
|
true || docker stop $DOCKER_MAYAN_CONTAINER >/dev/null 2>&1
|
|
true || docker rm $DOCKER_MAYAN_CONTAINER >/dev/null 2>&1
|
|
true || docker stop $DOCKER_POSTGRES_CONTAINER >/dev/null 2>&1
|
|
true || docker rm $DOCKER_POSTGRES_CONTAINER >/dev/null 2>&1
|
|
echo "Done"
|
|
|
|
if [ "$DELETE_VOLUMES" = true ]; then
|
|
echo -n "* Deleting Docker volumes in 5 seconds (warning: this delete all document data)..."
|
|
sleep 5
|
|
true || rm DOCKER_MAYAN_VOLUME -Rf
|
|
true || rm DOCKER_POSTGRES_VOLUME -Rf
|
|
echo "Done"
|
|
fi
|
|
|
|
echo -n "* Pulling (downloading) the Mayan EDMS Docker image..."
|
|
docker pull $DOCKER_MAYAN_IMAGE >/dev/null
|
|
echo "Done"
|
|
|
|
echo -n "* Pulling (downloading) the PostgreSQL Docker image..."
|
|
docker pull $DOCKER_POSTGRES_IMAGE > /dev/null
|
|
echo "Done"
|
|
|
|
echo -n "* Deploying the PostgreSQL container..."
|
|
docker run -d \
|
|
--name $DOCKER_POSTGRES_CONTAINER \
|
|
--restart=always \
|
|
-p $DOCKER_POSTGRES_PORT:5432 \
|
|
-e POSTGRES_USER=$DATABASE_USER \
|
|
-e POSTGRES_DB=$DATABASE_NAME \
|
|
-e POSTGRES_PASSWORD=$DATABASE_PASSWORD \
|
|
-v $DOCKER_POSTGRES_VOLUME:/var/lib/postgresql/data \
|
|
$DOCKER_POSTGRES_IMAGE >/dev/null
|
|
echo "Done"
|
|
|
|
echo -n "* Waiting for the PostgreSQL container to be ready (10 seconds)..."
|
|
sleep 10
|
|
echo "Done"
|
|
|
|
echo -n "* Deploying Mayan EDMS container..."
|
|
docker run -d \
|
|
--name $DOCKER_MAYAN_CONTAINER \
|
|
--restart=always \
|
|
-p 80:8000 \
|
|
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
|
|
-e MAYAN_DATABASE_HOST=172.17.0.1 \
|
|
-e MAYAN_DATABASE_NAME=$DATABASE_NAME \
|
|
-e MAYAN_DATABASE_PASSWORD=$DATABASE_PASSWORD \
|
|
-e MAYAN_DATABASE_USER=$DATABASE_USER \
|
|
-e MAYAN_DATABASE_PORT=$DOCKER_POSTGRES_PORT \
|
|
-e MAYAN_DATABASE_CONN_MAX_AGE=60 \
|
|
-v $DOCKER_MAYAN_VOLUME:/var/lib/mayan \
|
|
$DOCKER_MAYAN_IMAGE >/dev/null
|
|
echo "Done"
|
|
|
|
echo -n "* Waiting for the Mayan EDMS container to be ready (might take a few minutes)..."
|
|
while ! curl --output /dev/null --silent --head --fail http://localhost:80; do sleep 1 && echo -n .; done;
|
|
echo "Done"
|