1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-22 18:55:29 +03:00
aports/community/meilisearch/meilisearch.initd
2022-11-16 01:19:37 +00:00

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
}