diff --git a/install.sh b/install.sh index 92d9c1b8be..e9c65b3283 100755 --- a/install.sh +++ b/install.sh @@ -2,14 +2,15 @@ set -o nounset set -o pipefail -create_immich_directory() { local -r Tgt='./immich-app' +create_immich_directory() { + local -r Tgt='./immich-app' echo "Creating Immich directory..." if [[ -e $Tgt ]]; then echo "Found existing directory $Tgt, will overwrite YAML files" else mkdir "$Tgt" || return - fi - cd "$Tgt" || return + fi + cd "$Tgt" || return 1 } download_docker_compose_file() { @@ -22,6 +23,16 @@ download_dot_env_file() { "${Curl[@]}" "$RepoUrl"/example.env -o ./.env } +generate_random_password() { + echo "Generate random password for .env file..." + rand_pass=$(echo "$RANDOM$(date)$RANDOM" | sha256sum | base64 | head -c10) + if [ -z "$rand_pass" ]; then + sed -i -e "s/DB_PASSWORD=postgres/DB_PASSWORD=postgres${RANDOM}${RANDOM}/" ./.env + else + sed -i -e "s/DB_PASSWORD=postgres/DB_PASSWORD=${rand_pass}/" ./.env + fi +} + start_docker_compose() { echo "Starting Immich's docker containers" @@ -40,16 +51,16 @@ start_docker_compose() { show_friendly_message() { local ip_address ip_address=$(hostname -I | awk '{print $1}') - cat << EOF + cat <<EOF Successfully deployed Immich! You can access the website at http://$ip_address:2283 and the server URL for the mobile app is http://$ip_address:2283/api --------------------------------------------------- -If you want to configure custom information of the server, including the database, Redis information, or the backup (or upload) location, etc. - - 1. First bring down the containers with the command 'docker compose down' in the immich-app directory, - - 2. Then change the information that fits your needs in the '.env' file, - +If you want to configure custom information of the server, including the database, Redis information, or the backup (or upload) location, etc. + + 1. First bring down the containers with the command 'docker compose down' in the immich-app directory, + + 2. Then change the information that fits your needs in the '.env' file, + 3. Finally, bring the containers back up with the command 'docker compose up --remove-orphans -d' in the immich-app directory EOF } @@ -66,11 +77,25 @@ main() { return 14 fi - create_immich_directory || { echo 'error creating Immich directory'; return 10; } - download_docker_compose_file || { echo 'error downloading Docker Compose file'; return 11; } - download_dot_env_file || { echo 'error downloading .env'; return 12; } - start_docker_compose || { echo 'error starting Docker'; return 13; } - return 0; } + create_immich_directory || { + echo 'error creating Immich directory' + return 10 + } + download_docker_compose_file || { + echo 'error downloading Docker Compose file' + return 11 + } + download_dot_env_file || { + echo 'error downloading .env' + return 12 + } + generate_random_password + start_docker_compose || { + echo 'error starting Docker' + return 13 + } + return 0 +} main Exit=$?