Public Access
72 lines
2.0 KiB
Bash
72 lines
2.0 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
EGEYA_DATA_DIR="${EGEYA_DATA_DIR:-/var/www/egeya-data}"
|
|
EGEYA_DEFAULTS_DIR="${EGEYA_DEFAULTS_DIR:-/opt/egeya-defaults}"
|
|
PHP_RUNTIME_INI="/usr/local/etc/php/conf.d/zz-egeya-runtime.ini"
|
|
|
|
PHP_MEMORY_LIMIT="${PHP_MEMORY_LIMIT:-512M}"
|
|
PHP_UPLOAD_MAX_FILESIZE="${PHP_UPLOAD_MAX_FILESIZE:-512M}"
|
|
PHP_POST_MAX_SIZE="${PHP_POST_MAX_SIZE:-1024M}"
|
|
PHP_MAX_EXECUTION_TIME="${PHP_MAX_EXECUTION_TIME:-300}"
|
|
PHP_MAX_INPUT_TIME="${PHP_MAX_INPUT_TIME:-300}"
|
|
|
|
copy_defaults_if_empty() {
|
|
local name="$1"
|
|
local source_dir="${EGEYA_DEFAULTS_DIR}/${name}"
|
|
local target_dir="${EGEYA_DATA_DIR}/${name}"
|
|
|
|
mkdir -p "$target_dir"
|
|
|
|
if [ -d "$source_dir" ] && [ -z "$(find "$target_dir" -mindepth 1 -print -quit)" ]; then
|
|
cp -a "$source_dir"/. "$target_dir"/
|
|
fi
|
|
}
|
|
|
|
read_secret_to_env() {
|
|
local env_name="$1"
|
|
local file_env_name="${env_name}_FILE"
|
|
local file_path="${!file_env_name:-}"
|
|
|
|
if [ -n "$file_path" ]; then
|
|
if [ ! -r "$file_path" ]; then
|
|
printf 'Secret file is not readable: %s\n' "$file_path" >&2
|
|
exit 1
|
|
fi
|
|
printf -v "$env_name" '%s' "$(cat "$file_path")"
|
|
export "$env_name"
|
|
fi
|
|
}
|
|
|
|
copy_defaults_if_empty user
|
|
copy_defaults_if_empty pictures
|
|
|
|
mkdir -p \
|
|
"$EGEYA_DATA_DIR/tmp" \
|
|
"$EGEYA_DATA_DIR/tmp/sessions" \
|
|
"$EGEYA_DATA_DIR/user/logs"
|
|
|
|
touch "$EGEYA_DATA_DIR/user/logs/main.log"
|
|
|
|
chown -R www-data:www-data \
|
|
"$EGEYA_DATA_DIR/user" \
|
|
"$EGEYA_DATA_DIR/pictures" \
|
|
"$EGEYA_DATA_DIR/tmp"
|
|
|
|
chmod 0700 "$EGEYA_DATA_DIR/tmp" "$EGEYA_DATA_DIR/tmp/sessions"
|
|
|
|
read_secret_to_env E2_DB_PASSW
|
|
|
|
cat > "$PHP_RUNTIME_INI" <<EOF_INI
|
|
memory_limit = ${PHP_MEMORY_LIMIT}
|
|
upload_max_filesize = ${PHP_UPLOAD_MAX_FILESIZE}
|
|
post_max_size = ${PHP_POST_MAX_SIZE}
|
|
max_execution_time = ${PHP_MAX_EXECUTION_TIME}
|
|
max_input_time = ${PHP_MAX_INPUT_TIME}
|
|
upload_tmp_dir = ${EGEYA_DATA_DIR}/tmp
|
|
sys_temp_dir = ${EGEYA_DATA_DIR}/tmp
|
|
session.save_path = ${EGEYA_DATA_DIR}/tmp/sessions
|
|
EOF_INI
|
|
|
|
exec /usr/local/bin/docker-php-entrypoint "$@"
|