mirror of
https://git.collinwebdesigns.de/oscar.krause/fastapi-dls.git
synced 2024-12-26 21:49:34 +03:00
61 lines
2.4 KiB
Bash
61 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
WORKING_DIR=/usr/share/fastapi-dls
|
|
CONFIG_DIR=/etc/fastapi-dls
|
|
|
|
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)"
|
|
fi
|
|
|
|
while true; do
|
|
[ -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.
|
|
case $yn in
|
|
[Yy]*)
|
|
echo "> Generating keypair ..."
|
|
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $CONFIG_DIR/webserver.key -out $CONFIG_DIR/webserver.crt
|
|
break
|
|
;;
|
|
[Nn]*) echo "> Generating keypair skipped! (exists)"; break ;;
|
|
*) 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 ..."
|
|
source $CONFIG_DIR/env
|
|
curl --insecure -X GET https://$DLS_URL:$DLS_PORT/-/health
|
|
else
|
|
echo "> Testing API failed, curl not available. Please test manually!"
|
|
fi
|
|
fi
|
|
|
|
chown -R www-data:www-data $CONFIG_DIR
|
|
chown -R www-data:www-data $WORKING_DIR
|
|
|
|
cat <<EOF
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# #
|
|
# fastapi-dls is now installed. #
|
|
# #
|
|
# Service should be up and running. #
|
|
# Webservice is listen to https://localhost #
|
|
# #
|
|
# Configuration is stored in /etc/fastapi-dls/env. #
|
|
# #
|
|
# #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
EOF
|