This commit is contained in:
samialazar 2020-05-07 12:01:02 +02:00
parent 97f5bb58ec
commit b216bbf7d0
11 changed files with 89 additions and 2 deletions

View File

@ -0,0 +1 @@
__sample_bottle_hosting --projectname sample --user app --domain $__target_host sample

View File

@ -0,0 +1 @@
echo "service nginx restart"

View File

@ -0,0 +1,43 @@
os=$(cat "$__global/explorer/os")
case "$os" in
ubuntu)
:
;;
*)
echo "OS $os currently not supported" >&2
exit 1
;;
esac
user="$(cat "$__object/parameter/user")"
home="/home/$user"
apphome="$home/app"
# create user
__user "$user" --home "$home" --shell /bin/bash
# create user home dir
require="__user/$user" __directory "$home" \
--owner "$user" --group "$user" --mode 0755
# create app home dir
require="__user/$user __directory/$home" __directory "$apphome" \
--state present --owner "$user" --group "$user" --mode 0755
# define packages that need to be installed
packages_to_install="nginx uwsgi-plugin-python3 python3-dev python3-pip postgresql postgresql-contrib libpq-dev python3-venv uwsgi python3-psycopg2"
# update package index
__apt_update_index
# install packages
for package in $packages_to_install
do require="__apt_update_index" __package $package --state=present
done
# install pip3 packages
for package in bottle bottle-pgsql; do
__package_pip --pip pip3 $package
done

View File

@ -0,0 +1,4 @@
# required parameter
projectname
user
domain

View File

@ -0,0 +1,13 @@
domain="$(cat "$__object/parameter/domain")"
webroot="/var/www/html"
__sample_nginx_http_letsencrypt_and_ssl_redirect "$domain" --webroot "$webroot"
# create SSL cert
require="__package/nginx __sample_nginx_http_letsencrypt_and_ssl_redirect/$domain" \
__letsencrypt_cert --admin-email samuel.hailu@ungleich.ch \
--webroot "$webroot" \
--automatic-renewal \
--renew-hook "service nginx reload" \
--domain "$domain" \
"$domain"

View File

@ -0,0 +1 @@
echo "service nginx reload"

View File

@ -0,0 +1,25 @@
domain="$__object_id"
webroot="$(cat "$__object/parameter/webroot")"
# make sure we have nginx package
__package nginx
# setup Let's Encrypt HTTP acme challenge, redirect HTTP to HTTPS
require="__package/nginx" __file "/etc/nginx/sites-enabled/http-$domain" \
--source - --mode 0644 << EOF
server {
listen *:80;
listen [::]:80;
server_name $domain;
# Let's Encrypt
location /.well-known/acme-challenge/ {
root $webroot;
}
# Everything else -> SSL
location / {
return 301 https://\$host\$request_uri;
}
}
EOF

View File

@ -1,2 +0,0 @@
# required parameter
servername="$(cat "$__object/parameter/servername")"