mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 13:09:00 +00:00
85 lines
2.2 KiB
Bash
Executable File
85 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# This script will set up a Marginalia instance in a given directory.
|
|
# It will create a docker-compose.yml file, and a directory structure
|
|
# with the necessary files. It will also create a MariaDB database
|
|
# in docker, and run the flyway migrations to set up the database.
|
|
#
|
|
# After the script is run, the instance can be started with
|
|
# $ docker-compose up -d
|
|
#
|
|
# The instance can be stopped with
|
|
# $ docker-compose down -v
|
|
#
|
|
# It is likely that you will want to edit the docker-compose.yml file
|
|
# to change the ports that the services are exposed on, and to change
|
|
# the volumes that are mounted. The default configuration is provided
|
|
# a starting point.
|
|
|
|
set -e
|
|
|
|
if [ -z "${1}" ]; then
|
|
echo "Usage: $0 <install directory>"
|
|
exit 1
|
|
fi
|
|
if [ -e "${1}" ]; then
|
|
echo "ERROR: Destination ${1} already exists, refusing to overwrite"
|
|
exit 1
|
|
fi
|
|
|
|
INSTALL_DIR=$(realpath ${1})
|
|
|
|
echo "Would you like to set up a:"
|
|
echo
|
|
echo "1) barebones instance (1 node)"
|
|
echo "2) barebones instance (2 nodes)"
|
|
echo "3) full Marginalia Search instance?"
|
|
echo "4) non-docker install? (not recommended)"
|
|
echo
|
|
|
|
read -p "Enter 1, 2, 3, or 4: " INSTANCE_TYPE
|
|
|
|
## Validate
|
|
if [ "${INSTANCE_TYPE}" != "1" ] && [ "${INSTANCE_TYPE}" != "2" ] && [ "${INSTANCE_TYPE}" != "3" ] && [ "${INSTANCE_TYPE}" != "4" ]; then
|
|
echo
|
|
echo "ERROR: Invalid instance type, choose 1, 2 or 3"
|
|
exit 1
|
|
fi
|
|
|
|
echo
|
|
echo "We're going to set up a Mariadb database in docker, please enter some details"
|
|
|
|
read -p "MariaDB user (e.g. marginalia): " MARIADB_USER
|
|
read -s -p "MariaDB password (e.g. hunter2, or leave blank to generate one): " MARIADB_PASSWORD
|
|
echo
|
|
if [ ! -z "${MARIADB_PASSWORD}" ]; then
|
|
echo
|
|
read -s -p "MariaDB password (again): " MARIADB_PASSWORD2
|
|
echo
|
|
fi
|
|
|
|
export MARIADB_USER
|
|
export MARIADB_PASSWORD
|
|
if [ "${INSTANCE_TYPE}" == "4" ]; then
|
|
export MARIADB_HOST="localhost"
|
|
else
|
|
export MARIADB_HOST="mariadb"
|
|
fi
|
|
|
|
if [ "${MARIADB_PASSWORD}" != "${MARIADB_PASSWORD2}" ]; then
|
|
echo "ERROR: Passwords do not match"
|
|
exit 1
|
|
fi
|
|
|
|
echo
|
|
echo "Will install to ${INSTALL_DIR}"
|
|
read -p "Press enter to continue, or Ctrl-C to abort"
|
|
|
|
export INSTALL_DIR
|
|
export INSTANCE_TYPE
|
|
export MARIADB_USER
|
|
export MARIADB_PASSWORD
|
|
export MARIADB_HOST
|
|
|
|
bash $(dirname $0)/install-noninteractive.sh ${INSTALL_DIR} |