2022-12-22 10:41:07 +01:00
#!/bin/bash
2022-12-28 07:40:44 +01:00
WORKING_DIR = /usr/share/fastapi-dls
2022-12-28 07:03:41 +01:00
CONFIG_DIR = /etc/fastapi-dls
2023-01-04 11:02:54 +01:00
if [ [ ! -f $CONFIG_DIR /instance.private.pem ] ] ; then
echo "> Create dls-instance keypair ..."
openssl genrsa -out $CONFIG_DIR /instance.private.pem 2048
openssl rsa -in $CONFIG_DIR /instance.private.pem -outform PEM -pubout -out $CONFIG_DIR /instance.public.pem
else
echo "> Create dls-instance keypair skipped! (exists)"
2022-12-28 09:04:35 +01:00
fi
2022-12-22 10:41:07 +01:00
while true; do
2023-01-04 11:02:54 +01:00
[ [ -f $CONFIG_DIR /webserver.key ] ] && default_answer = "N" || default_answer = "Y"
[ [ $default_answer = = "Y" ] ] && V = "Y/n" || V = "y/N"
read -p " > Do you wish to create self-signed webserver certificate? [ ${ V } ] " yn
yn = ${ yn :- $default_answer } # ${parameter:-word} If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
2022-12-22 10:41:07 +01:00
case $yn in
[ Yy] *)
2023-01-04 11:02:54 +01:00
echo "> Generating keypair ..."
2022-12-22 10:41:07 +01:00
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $CONFIG_DIR /webserver.key -out $CONFIG_DIR /webserver.crt
break
; ;
2023-01-04 11:02:54 +01:00
[ Nn] *) echo "> Generating keypair skipped! (exists)" ; break ; ;
2022-12-22 10:41:07 +01:00
*) echo "Please answer [y] or [n]." ; ;
esac
done
if [ [ -f $CONFIG_DIR /webserver.key ] ] ; then
echo "> Starting service ..."
systemctl start fastapi-dls.service
if [ -x " $( command -v curl) " ] ; then
echo "> Testing API ..."
2022-12-28 09:04:35 +01:00
source $CONFIG_DIR /env
2022-12-29 10:31:25 +01:00
curl --insecure -X GET https://$DLS_URL :$DLS_PORT /-/health
2022-12-22 10:41:07 +01:00
else
echo "> Testing API failed, curl not available. Please test manually!"
fi
fi
2022-12-28 08:35:59 +01:00
chown -R www-data:www-data $CONFIG_DIR
2022-12-28 07:40:44 +01:00
chown -R www-data:www-data $WORKING_DIR
2022-12-28 07:14:24 +01:00
2022-12-22 10:41:07 +01:00
cat <<EOF
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# fastapi-dls is now installed. #
# #
# Service should be up and running. #
# Webservice is listen to https://localhost #
# #
# Configuration is stored in ${CONFIG_DIR}/env #
# #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
2022-12-27 22:18:02 +01:00
2022-12-22 10:41:07 +01:00
EOF