#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: sudofly # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://webtrees.net/ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os msg_info "Installing Dependencies" $STD apt install -y \ caddy \ unzip msg_ok "Installed Dependencies" PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_mysql,mbstring,curl" setup_php setup_mariadb MARIADB_DB_NAME="webtrees" MARIADB_DB_USER="webtrees" setup_mariadb_db $STD mariadb -u root -e "GRANT ALL ON \`webtrees\`.* TO 'webtrees'@'127.0.0.1' IDENTIFIED BY '${MARIADB_DB_PASS}'; FLUSH PRIVILEGES;" fetch_and_deploy_gh_release "webtrees" "fisharebest/webtrees" "prebuild" "latest" "/opt/webtrees" "webtrees-*.zip" msg_info "Setting up Webtrees" chown -R www-data:www-data /opt/webtrees msg_ok "Set up Webtrees" msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') cat </etc/caddy/Caddyfile :80 { root * /opt/webtrees php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock file_server encode gzip } EOF usermod -aG www-data caddy msg_ok "Configured Caddy" systemctl enable -q --now php${PHP_VER}-fpm systemctl restart caddy msg_info "Automating Webtrees Setup" sleep 5 WT_ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c15) curl -sS -X POST "http://127.0.0.1/" \ -d "step=6" \ --data-urlencode "baseurl=http://${LOCAL_IP}" \ -d "lang=en-US" \ -d "dbtype=mysql" \ -d "dbhost=127.0.0.1" \ -d "dbport=3306" \ -d "dbuser=webtrees" \ --data-urlencode "dbpass=${MARIADB_DB_PASS}" \ -d "dbname=webtrees" \ -d "tblpfx=wt_" \ -d "wtname=Administrator" \ -d "wtuser=Admin" \ --data-urlencode "wtpass=${WT_ADMIN_PASS}" \ -d "wtemail=admin@example.com" >/dev/null cat <>~/webtrees.creds Webtrees Admin User: Admin Webtrees Admin Password: ${WT_ADMIN_PASS} EOF msg_ok "Webtrees Setup Automated" motd_ssh customize cleanup_lxc