From 9b2b910c1f40c11589e06c67656d43ebbcb9617b Mon Sep 17 00:00:00 2001 From: bucde Date: Thu, 23 Sep 2021 18:23:04 +0200 Subject: [PATCH] feat: update to new configuration --- docker-compose.yml | 4 +-- setup | 78 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 62 insertions(+), 20 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b82aad1..0dcff29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,12 +30,12 @@ version: "3.4" services: broker: - container_name: paperless_broker + container_name: ${PAPERLESS_BROKER_CONTAINER_NAME:-paperless_broker} image: redis:6.0 restart: unless-stopped core: - container_name: paperless_core + container_name: ${PAPERLESS_CORE_CONTAINER_NAME:-paperless_core} image: jonaswinkler/paperless-ng:${PAPERLESS_VERSION:-latest} restart: unless-stopped depends_on: diff --git a/setup b/setup index 9048071..ccb7303 100755 --- a/setup +++ b/setup @@ -12,9 +12,16 @@ echo "# (everything in plain text, even the password) #" echo "####################################################################" echo "" +DATE=$(date +'%y%m%d%H%M%S') + CONFIG_EXISTS="false" -KEEP_CONFIG="" +USE_EXISTING_CONFIG="" +DELETE_CONFIG="" +PAPERLESS_PROJECT_NAME="paperless_${DATE}" +PAPERLESS_PROJECT_NAME_SUFFIX="" +PAPERLESS_CORE_CONTAINER_NAME="${PAPERLESS_PROJECT_NAME}_core" +PAPERLESS_BROKER_CONTAINER_NAME="${PAPERLESS_PROJECT_NAME}_broker" PAPERLESS_VERSION="" PAPERLESS_HOST_IP_ADDRESS="" PAPERLESS_HOST_PORT="" @@ -26,12 +33,26 @@ PAPERLESS_DB_NAME="" PAPERLESS_DB_USER="" PAPERLESS_DB_PASSWORD="" -if [ -f ".env" ]; then +read -p "Enter paperless project name suffix (leave empty for none): " PAPERLESS_PROJECT_NAME_SUFFIX + +if [ -n "$PAPERLESS_PROJECT_NAME_SUFFIX" ]; then + PAPERLESS_PROJECT_NAME="${PAPERLESS_PROJECT_NAME}_${PAPERLESS_PROJECT_NAME_SUFFIX}" + PAPERLESS_CORE_CONTAINER_NAME="${PAPERLESS_CORE_CONTAINER_NAME}_${PAPERLESS_PROJECT_NAME_SUFFIX}" + PAPERLESS_BROKER_CONTAINER_NAME="${PAPERLESS_BROKER_CONTAINER_NAME}_${PAPERLESS_PROJECT_NAME_SUFFIX}" +fi + +rm -f .env +touch .env +echo "COMPOSE_PROJECT_NAME="$PAPERLESS_PROJECT_NAME >> .env +echo "PAPERLESS_CORE_CONTAINER_NAME="$PAPERLESS_CORE_CONTAINER_NAME >> .env +echo "PAPERLESS_BROKER_CONTAINER_NAME="$PAPERLESS_BROKER_CONTAINER_NAME >> .env + +if [ -f "config" ]; then CONFIG_EXISTS="true" - read -p "Config file '.env' already exists! Would you like to use this? (y/n)" KEEP_CONFIG + read -p "Config file 'config' already exists! Would you like to use this? (y/n)" USE_EXISTING_CONFIG fi -if [ $CONFIG_EXISTS == "false" ] || [ $KEEP_CONFIG == "n" ]; then +if [ $CONFIG_EXISTS == "false" ] || [ $USE_EXISTING_CONFIG == "n" ]; then read -p "Enter paperless version which should be used: " PAPERLESS_VERSION read -p "Enter host (vm) ip address on which paperless should be accessible: " PAPERLESS_HOST_IP_ADDRESS read -p "Enter host (vm) port on which paperless should be accessible: " PAPERLESS_HOST_PORT @@ -43,26 +64,47 @@ if [ $CONFIG_EXISTS == "false" ] || [ $KEEP_CONFIG == "n" ]; then read -p "Enter database user name for paperless: " PAPERLESS_DB_USER read -p "Enter database user password for paperless: " PAPERLESS_DB_PASSWORD - rm -f .env - touch .env - echo "PAPERLESS_VERSION="$PAPERLESS_VERSION >> .env - echo "PAPERLESS_HOST_IP_ADDRESS="$PAPERLESS_HOST_IP_ADDRESS >> .env - echo "PAPERLESS_HOST_PORT="$PAPERLESS_HOST_PORT >> .env - echo "PAPERLESS_ADMIN_USER="$PAPERLESS_ADMIN_USER >> .env - echo "PAPERLESS_ADMIN_PASSWORD="$PAPERLESS_ADMIN_PASSWORD >> .env - echo "PAPERLESS_DB_HOST="$PAPERLESS_DB_HOST >> .env - echo "PAPERLESS_DB_PORT="$PAPERLESS_DB_PORT >> .env - echo "PAPERLESS_DB_NAME="$PAPERLESS_DB_NAME >> .env - echo "PAPERLESS_DB_USER="$PAPERLESS_DB_USER >> .env - echo "PAPERLESS_DB_PASSWORD="$PAPERLESS_DB_PASSWORD >> .env + rm -f config + touch config + echo "PAPERLESS_VERSION="$PAPERLESS_VERSION >> config + echo "PAPERLESS_HOST_IP_ADDRESS="$PAPERLESS_HOST_IP_ADDRESS >> config + echo "PAPERLESS_HOST_PORT="$PAPERLESS_HOST_PORT >> config + echo "PAPERLESS_ADMIN_USER="$PAPERLESS_ADMIN_USER >> config + echo "PAPERLESS_ADMIN_PASSWORD="$PAPERLESS_ADMIN_PASSWORD >> config + echo "PAPERLESS_DB_HOST="$PAPERLESS_DB_HOST >> config + echo "PAPERLESS_DB_PORT="$PAPERLESS_DB_PORT >> config + echo "PAPERLESS_DB_NAME="$PAPERLESS_DB_NAME >> config + echo "PAPERLESS_DB_USER="$PAPERLESS_DB_USER >> config + echo "PAPERLESS_DB_PASSWORD="$PAPERLESS_DB_PASSWORD >> config + + echo "Config file 'config' created!" +else + echo "Use existing config file 'config'!" fi +cat "config" >> ".env" + +read -p "Should the config file 'config' be deleted after creating the container? (y/n)" DELETE_CONFIG + mkdir -p consume export docker-compose up -d -echo "Wait a few seconds for the container to spin up ..." +echo -n "Wait until paperless is ready ..." + +while [[ "$(curl -fLs -w ''%{http_code}'' $PAPERLESS_HOST_IP_ADDRESS:$PAPERLESS_HOST_PORT -o /dev/null)" != "200" ]] ; do + echo -n "." + sleep 1 +done + +echo -e "\nPaperless is ready!" + +if [ $DELETE_CONFIG == "y" ]; then + rm -f config + + echo "Config file 'config' deleted!" +fi -sleep 15 +rm -f .env echo "Done!"