mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-22 18:55:29 +03:00
56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/sbin/openrc-run
|
|
|
|
name="Meilisearch"
|
|
description="A lightning-fast search engine"
|
|
|
|
: ${command_user:="meilisearch"}
|
|
: ${datadir:="/var/lib/meilisearch"}
|
|
: ${start_wait:=50} # milliseconds
|
|
: ${healthcheck_timer:=30}
|
|
: ${respawn_delay:=5}
|
|
|
|
command="/usr/bin/meilisearch"
|
|
command_background="yes"
|
|
directory="$datadir"
|
|
pidfile="/run/$RC_SVCNAME.pid"
|
|
|
|
start_stop_daemon_args="--wait $start_wait $start_stop_daemon_args"
|
|
# The leading space is to avoid fallback to $start_stop_daemon_args when this
|
|
# is empty (supervise-daemon doesn't support --wait).
|
|
supervise_daemon_args=" $supervise_daemon_args"
|
|
|
|
depend() {
|
|
need localmount net
|
|
after firewall
|
|
}
|
|
|
|
start_pre() {
|
|
# Replace MEILI_MASTER_KEY placeholder with a random string.
|
|
if [ "${MEILI_ENV:-}" = 'production' ] && [ "${MEILI_MASTER_KEY:-}" = 'change-me' ]; then
|
|
local conf
|
|
for conf in "/etc/conf.d/${RC_SVCNAME%%.*}" "/etc/conf.d/$RC_SVCNAME" ""; do
|
|
[ -w "$conf" ] && break
|
|
done
|
|
if [ "$conf" ]; then
|
|
einfo "Replacing MEILI_MASTER_KEY in $conf with a random string..."
|
|
local pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)
|
|
sed -Ei 's/^(MEILI_MASTER_KEY)="change-me"/\1="'"$pass"'"/' "$conf"
|
|
|
|
else # no writable config found
|
|
ewarn "Change MEILI_MASTER_KEY in /etc/conf.d/ to a random alphanumeric string!"
|
|
fi
|
|
fi
|
|
if [ "${logfile:-}" ]; then
|
|
error_log="$logfile"
|
|
checkpath -f -m 640 -o "$command_user" "$logfile" || return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
healthcheck() {
|
|
[ "${MEILI_HTTP_ADDR:-}" ] || return 0
|
|
[ -x /usr/bin/curl ] || return 0
|
|
|
|
/usr/bin/curl -fq "$MEILI_HTTP_ADDR"/health
|
|
}
|