Immich addition

This commit is contained in:
Alexandre
2023-01-12 10:31:21 +01:00
parent bd3d04db1c
commit b9ce90ee74
12 changed files with 512 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
#!/bin/bash
echo "Starting..."
####################
# Starting scripts #
####################
for SCRIPTS in /etc/cont-init.d/*; do
[ -e "$SCRIPTS" ] || continue
echo "$SCRIPTS: executing"
chown "$(id -u)":"$(id -g)" "$SCRIPTS"
chmod a+x "$SCRIPTS"
# Change shebang if no s6 supervision
sed -i 's|/usr/bin/with-contenv bashio|/usr/bin/env bashio|g' "$SCRIPTS"
/."$SCRIPTS" || echo "$SCRIPTS: exiting $?"
done

View File

@@ -0,0 +1,21 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
#################
# DATA_LOCATION #
#################
PUID="$(bashio::config 'PUID')"
PGID="$(bashio::config 'PGID')"
bashio::log.info "Setting data location"
DATA_LOCATION="$(bashio::config 'data_location')"
echo "... check $DATA_LOCATION folder exists"
mkdir -p "$DATA_LOCATION"
echo "... setting permissions"
chown -R "$PUID":"$PGID" "$DATA_LOCATION"
echo "... correcting official script"
for file in $(grep -sril '/photos' /etc); do sed -i "s|/photos|$DATA_LOCATION|g" "$file"; done

View File

@@ -0,0 +1,111 @@
#!/usr/bin/env bashio
# shellcheck shell=bash
# shellcheck disable=SC2155,SC2016
###################################
# Export all addon options as env #
###################################
bashio::log.info "Setting variables"
# For all keys in options.json
JSONSOURCE="/data/options.json"
# Export keys as env variables
# echo "All addon options were exported as variables"
mapfile -t arr < <(jq -r 'keys[]' "${JSONSOURCE}")
for KEYS in "${arr[@]}"; do
# export key
VALUE=$(jq ."$KEYS" "${JSONSOURCE}")
line="${KEYS}='${VALUE//[\"\']/}'"
# text
if bashio::config.false "verbose" || [[ "${KEYS}" == *"PASS"* ]]; then
bashio::log.blue "${KEYS}=******"
else
bashio::log.blue "$line"
fi
# Use locally
export "${KEYS}=${VALUE//[\"\']/}"
done
###################
# Define database #
###################
bashio::log.info "Defining database"
bashio::log.info "-----------------"
case $(bashio::config 'database') in
"external_postgresql")
bashio::log.info "Using external postgresql"
bashio::log.info ""
# Check if values exist
if ! bashio::config.has_value 'DB_USERNAME' && \
! bashio::config.has_value 'DB_HOSTNAME' && \
! bashio::config.has_value 'DB_PASSWORD' && \
! bashio::config.has_value 'DB_DATABASE_NAME' && \
! bashio::config.has_value 'JWT_SECRET' && \
! bashio::config.has_value 'DB_PORT'
then
! bashio::exit.nok "Please make sure that the following options are set : DB_USERNAME, DB_HOSTNAME, DB_PASSWORD, DB_DATABASE_NAME, DB_PORT"
fi
# Settings parameters
export DB_USERNAME=$(bashio::config 'DB_USERNAME')
export DB_HOSTNAME=$(bashio::config 'DB_HOSTNAME')
export DB_PASSWORD=$(bashio::config 'DB_PASSWORD')
export DB_DATABASE_NAME=$(bashio::config 'DB_DATABASE_NAME')
export DB_PORT=$(bashio::config 'DB_PORT')
export JWT_SECRET=$(bashio::config 'JWT_SECRET')
;;
**)
bashio::log.info "Using internal postgresql"
bashio::log.info ""
# Settings files & permissions
ln -s /usr/lib/postgresql/14/bin/postgres /usr/bin || true
ln -s /usr/lib/postgresql/14/bin/psql /usr/psql || true
cp -rnf /var/lib/postgresql/14/main/* /data/postgresql/
mkdir -p /data/postgresql
chown -R postgres /data/postgresql
chmod -R 700 /data/postgresql
# Start postgresql
/etc/init.d/postgresql start
# Create database
echo "CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'securepassword';
CREATE DATABASE immich; CREATE USER immich WITH ENCRYPTED PASSWORD 'immich';
GRANT ALL PRIVILEGES ON DATABASE immich to immich;
\q"> setup_postgres.sql
chown postgres setup_postgres.sql
sudo -iu postgres psql < setup_postgres.sql
rm setup_postgres.sql
# Settings parameters
export DB_USERNAME=immich
export DB_HOSTNAME=localhost
export DB_PASSWORD=immich
export DB_DATABASE_NAME=immich
export DB_PORT=5432
export JWT_SECRET=$(bashio::config 'JWT_SECRET')
;;
esac
##################
# Starting redis #
##################
exec redis-server & bashio::log.info "Starting redis"
################
# Starting app #
################
bashio::log.info "Starting app"
/./usr/bin/supervisord