X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;ds=sidebyside;f=bullseye%2Fsetup_scripts%2Fsetup_microblogpub.sh;fp=bullseye%2Fsetup_scripts%2Fsetup_microblogpub.sh;h=814f6b9d49f8f2a32d12e110171dc8a8f28557ca;hb=118c58477dea1bbcbf1d7768469f43839f249a80;hp=0000000000000000000000000000000000000000;hpb=ea681bb816cf1bb90b2b9ddb9caf4569306597bc;p=config diff --git a/bullseye/setup_scripts/setup_microblogpub.sh b/bullseye/setup_scripts/setup_microblogpub.sh new file mode 100755 index 0000000..814f6b9 --- /dev/null +++ b/bullseye/setup_scripts/setup_microblogpub.sh @@ -0,0 +1,47 @@ +#!/bin/sh +set -e +set -x + +if [ "$#" -ne 3 ] && [ "$#" -ne 4 ]; then + echo 'Need domain name and mail and init state and possibly old server IP as argument.' + false +fi +if [ ! "$3" = "copy" ] && [ ! "$3" = "new" ]; then + echo "Need init state to be either 'copy' or 'new'." + false +fi +if [ ! "$3" = "new" ] && [ "$#" -ne 4 ]; then + echo "With init state != 'new' need fifth argument old server IP." + false +fi +domain="$1" +mail="$2" +init_state="$3" +old_server="$4" + +# Install configs, set up firewall. +config_tree_prefix="${HOME}/config/bullseye" +./install_for_target.sh web +./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" web microblogpub +nft -f /etc/nftables.conf + +# Set up letsencrypt certificate. TODO: Is it auto-renewed? +ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default +certbot --nginx --agree-tos --redirect --no-eff-email -m "${mail}" -d "${domain}" +rm /etc/nginx/sites-enabled/default + +# Install Python 3.10 from source (Bullseye only has 3.9). +apt build-dep python3 +python_version=3.11.1 +python_dirname="Python-3.1.11.1" +su -lc "wget https://www.python.org/ftp/python/3.11.1/${python_dirname}.tgz" plom +su -lc "tar -xvf ${python_dirname}.tgz" plom +su -lc "cd ${python_dirname} && ./configure && make && make test" +cd /home/plom/${python_dirname}/ +make altinstall +cd + +# Prepare and start NGINX config. +sed -i "s/REPLACE_fqdn_ECALPER/${domain}/g" /etc/nginx/sites-available/microblogpub.nginx +ln -s /etc/nginx/sites-available/microblogpub.nginx /etc/nginx/sites-enabled/microblogpub.nginx +service nginx restart