diff options
Diffstat (limited to '')
-rwxr-xr-x | create_apache_conf.sh | 96 | ||||
-rwxr-xr-x | create_service.sh | 40 | ||||
-rwxr-xr-x | install.sh | 16 | ||||
-rwxr-xr-x | install_weboob.sh | 5 | ||||
-rwxr-xr-x | list.sh | 1 | ||||
-rwxr-xr-x | new_kresus.sh | 19 | ||||
-rwxr-xr-x | test_passwd.sh | 4 | ||||
-rwxr-xr-x | uninstall.sh | 21 |
8 files changed, 202 insertions, 0 deletions
diff --git a/create_apache_conf.sh b/create_apache_conf.sh new file mode 100755 index 0000000..28c7769 --- /dev/null +++ b/create_apache_conf.sh @@ -0,0 +1,96 @@ + +usage () { + echo "You must set a $1 !" + echo "Usage:" + echo " create_apache_conf.sh <user>" + exit 0 +} + +if [ -z $1 ]; then + usage "USER" +fi + + +USER=$1 + +cat > /etc/apache2/sites-available/$USER.kresus.neodarz.net.conf << EOF +<VirtualHost *:80> + ServerName $USER.kresus.neodarz.net + ServerAdmin me@example.net + + #Alias /.well-known/acme-challenge /tmp/.well-known/acme-challenge + + <Directory /tmp/.well-known/acme-challenge> + Options None + AllowOverride None + + Require all granted + AddDefaultCharset off + + AuthType None + Satisfy any + </Directory> + + Redirect permanent / https://$USER.kresus.neodarz.net/ + + ErrorLog /home/website/kresus-gen/logs/error.log + CustomLog /home/website/kresus-gen/logs/access.log combined +</VirtualHost> +EOF + +cat > /etc/apache2/sites-available/$USER.kresus.neodarz.net-le-ssl.conf << EOF +<IfModule mod_ssl.c> + <VirtualHost *:443> + ServerName $USER.kresus.neodarz.net + ServerAdmin me@example.net + + ProxyPass "/" "http://127.0.0.1:9876/" + ProxyPassReverse "/" "http://127.0.0.1:9876/" + + Alias /.well-known/acme-challenge /tmp/.well-known/acme-challenge + + <Directory /tmp/.well-known/acme-challenge> + Options None + AllowOverride None + + Require all granted + AddDefaultCharset off + + AuthType None + Satisfy any + </Directory> + + <Location /> + AuthUserFile /home/website/kresus-gen/$USER.kresus.neodarz.net/.htpasswd + AuthName "Authentification" + AuthType Basic + Require valid-user + </Location> + + SSLEngine on + + SSLCertificateKeyFile /etc/letsencrypt/live/$USER.kresus.neodarz.net/privkey.pem + SSLCertificateFile /etc/letsencrypt/live/$USER.kresus.neodarz.net/fullchain.pem + + Header always set Strict-Transport-Security "max-age=15768000" + + <FilesMatch "\.(cgi|shtml|phtml|php)$"> + SSLOptions +StdEnvVars + </FilesMatch> + <Directory /usr/lib/cgi-bin> + SSLOptions +StdEnvVars + </Directory> + + ErrorLog /home/website/kresus-gen/logs/error.log + CustomLog /home/website/kresus-gen/logs/access.log combined + </VirtualHost> +</IfModule> + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet +EOF + +certbot --apache -d $USER.kresus.neodarz.net + +a2ensite $USER.kresus.neodarz.net +systemctl reload apache2 + diff --git a/create_service.sh b/create_service.sh new file mode 100755 index 0000000..549230b --- /dev/null +++ b/create_service.sh @@ -0,0 +1,40 @@ +usage () { + echo "You must set a $1 !" + echo "Usage:" + echo " create-service.sh <user>" + exit 0 +} + +if [ -z $1 ]; then + usage "USER" +fi + + +USER=$1 +NODE_PATH=$(which node) + +sudo bash -c "cat << EOF > /etc/systemd/system/kresus-$USER.service +[Unit] +Description=Personal finance manager +After=network.target + +[Service] +WorkingDirectory=/home/website/kresus-gen/$USER.kresus.neodarz.net +Environment=NODE_ENV=production +ExecStart=$NODE_PATH bin/kresus.js + +Type=simple +#Restart=always + +User=neodarz + +StandardOutput=journal +StandardError=inherit +SyslogIdentifier=kresus + +[Install] +WantedBy=multi-user.target +EOF" + +sudo systemctl enable kresus-$USER.service +sudo systemctl start kresus-$USER.service diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..fc032a8 --- /dev/null +++ b/install.sh @@ -0,0 +1,16 @@ +usage () { + echo "You must set a $1 !" + echo "Usage:" + echo " install.sh <user> <password>" + exit 0 +} + +if [ -z $1 ]; then + usage "USER" +elif [ -z $2 ]; then + usage "PASSWORD" +fi + +./new_kresus.sh $1 $2 +./create_service.sh $1 +sudo ./create_apache_conf.sh $1 diff --git a/install_weboob.sh b/install_weboob.sh new file mode 100755 index 0000000..c891655 --- /dev/null +++ b/install_weboob.sh @@ -0,0 +1,5 @@ +wget http://ftp.fr.debian.org/debian/pool/main/w/weboob/weboob_1.2-1_all.deb +wget http://ftp.fr.debian.org/debian/pool/main/w/weboob/python-weboob_1.2-1_all.deb +sudo dpkg -i python-weboob_1.2-1_all.deb +sudo dpkg -i weboob_1.2-1_all.deb +rm python-weboob_1.2-1_all.deb weboob_1.2-1_all.deb @@ -0,0 +1 @@ +ls . | grep -e 'kresus.neodarz.net' diff --git a/new_kresus.sh b/new_kresus.sh new file mode 100755 index 0000000..90d281c --- /dev/null +++ b/new_kresus.sh @@ -0,0 +1,19 @@ +usage () { + echo "You must set a $1 !" + echo "Usage:" + echo " new_kresus.sh <user> <password>" + exit 0 +} + +if [ -z $1 ]; then + usage "USER" +elif [ -z $2 ]; then + usage "PASSWORD" +fi + + +USER=$1 +PASS=$2 +git clone https://framagit.org/bnjbvr/kresus.git $USER.kresus.neodarz.net +cd $USER.kresus.neodarz.net; npm install; npm install leveldown@1.5.0; ./scripts/build.sh +htpasswd -Bb -c .htpasswd $USER $PASS diff --git a/test_passwd.sh b/test_passwd.sh new file mode 100755 index 0000000..881adfc --- /dev/null +++ b/test_passwd.sh @@ -0,0 +1,4 @@ +if [ -z $1 ]; then + break + echo "error $1" +fi diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 0000000..5a6f7f3 --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,21 @@ +usage () { + echo "You must set a $1 !" + echo "Usage:" + echo " uninstall.sh <user>" + exit 0 +} + +if [ -z $1 ]; then + usage "USER" +fi + + +USER=$1 + +sudo systemctl stop kresus-$USER.service +sudo rm /etc/systemd/system/kresus-$USER.service +sudo a2dissite $USER.kresus.neodarz.net.conf +sudo a2dissite $USER.kresus.neodarz.net-le-ssl.conf +sudo rm /etc/apache2/sites-available/$USER.kresus.neodarz.net.conf +sudo rm /etc/apache2/sites-available/$USER.kresus.neodarz.net-le-ssl.conf +sudo systemctl reload apache2.service |