From 8e6ce363d18a9371e95d5d2b49ef4e10f5b3040f Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Tue, 26 Sep 2023 21:15:23 +0200 Subject: [PATCH] Refactor both scripts into one setup_static_website? --- .../setup_scripts/setup_static_website.sh | 59 +++++++++++++++++++ .../setup_tube.plomlompom.com.sh | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 bookworm/setup_scripts/setup_static_website.sh diff --git a/bookworm/setup_scripts/setup_static_website.sh b/bookworm/setup_scripts/setup_static_website.sh new file mode 100644 index 0000000..4d290a5 --- /dev/null +++ b/bookworm/setup_scripts/setup_static_website.sh @@ -0,0 +1,59 @@ +#!/bin/sh +set -e +. ./misc.sh + +expect_setup_finished_file setup_web_has_been_run setup_web.sh + +expect_n_args 1 "(website template, i.e. status.plomlompom, tube.plomlompom.com …)" "$@" +website_template="$1" +shift 1 + +mirror_ip="" +mirror_state="not mirroring automatically" +domain="${website_template}" +mail="plom+webmaster@plomlompom.com" +if [ "$#" -gt 0 ]; then + domain="$1" + if [ "$#" -gt 1 ]; then + mail="plom+testing@plomlompom.com" + if [ "$#" -gt 2 ]; then + mirror_ip="$3" + mirror_state="mirroring automatically from ${mirror_ip}" + fi + fi +fi +echo "Assuming domain ${domain} and letsencrypt support mail address ${mail} and ${mirror_state}, abort and provide as arguments in this order if other desired! (Otherwise just hit Return.)" +read _ + +if [ ! -z "${mirror_ip}" ]; then + # Set up connection to old server. + cp "${setup_scripts_dir}/misc.sh" /home/plom/ + cp "${setup_scripts_dir}/prepare_to_meet_server.sh" /home/plom/ + chown plom:plom /home/plom/prepare_to_meet_server.sh + su -lc "./prepare_to_meet_server.sh ${mirror_ip}" plom + read -p 'Hit Enter when you are done.' ignore + rm /home/plom/prepare_to_meet_server.sh + + # Mirror dirs. + cp "${setup_scripts_dir}/mirror_dir.sh" /home/plom/ + su -lc "./mirror_dir.sh ${mirror_ip} /var/www/${website_template}" plom + rm /home/plom/mirror_dir.sh + rm /home/plom/misc.sh +fi + +# Install configs, set up firewall. +./install_for_target.sh "${website_template}" +./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" "${website_template}" +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 + +# Prepare NGINX. +sed -i "s/REPLACE_fqdn_ECALPER/${domain}/g" "/etc/nginx/sites-available/${website_template}.nginx" +ln -s "/etc/nginx/sites-available/{website_template}.nginx" "/etc/nginx/sites-enabled/${website_template}.nginx" + +service nginx restart + diff --git a/bookworm/setup_scripts/setup_tube.plomlompom.com.sh b/bookworm/setup_scripts/setup_tube.plomlompom.com.sh index a68ee39..246f8bc 100755 --- a/bookworm/setup_scripts/setup_tube.plomlompom.com.sh +++ b/bookworm/setup_scripts/setup_tube.plomlompom.com.sh @@ -46,7 +46,7 @@ if [ ! -z "${mirror_ip}" ]; then # Mirror dirs. cp "${setup_scripts_dir}/mirror_dir.sh" /home/plom/ - su -lc "./mirror_dir.sh ${mirror_ip} /var/www/status.plomlompom.com" plom + su -lc "./mirror_dir.sh ${mirror_ip} /var/www/tube.plomlompom.com" plom rm /home/plom/mirror_dir.sh rm /home/plom/misc.sh fi -- 2.30.2