Add Domain Monitor script

This commit is contained in:
tremor021 2025-11-07 16:31:57 +01:00
parent a37f2a00cf
commit ceb7b22c13
2 changed files with 137 additions and 0 deletions

59
ct/domain-monitor.sh Normal file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Hosteroid/domain-monitor
APP="Domain Monitor"
var_tags="${var_tags:-proxy}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/domain-monitor ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "domain-monitor" "Hosteroid/domain-monitor"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_info "Service stopped"
setup_composer
fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
msg_info "Updating Domain Monitor"
cd /opt/domain-monitor
$STD composer install
msg_ok "Updated Domain Monitor"
msg_info "Restarting Services"
systemctl reload apache2
msg_ok "Restarted Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3002${CL}"

View File

@ -0,0 +1,78 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/Hosteroid/domain-monitor
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 --no-install-recommends \
libicu-dev \
libzip-dev \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
libxml2-dev \
libcurl4-openssl-dev \
libonig-dev \
pkg-config
msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="mysql" setup_php
setup_composer
setup_mariadb
fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
msg_info "Configuring Database"
DB_NAME=domain_monitor
DB_USER=domainmonitor
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "Domain Monitor Credentials"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
} >>~/domain-monitor.creds
msg_ok "Configured Database"
msg_info "Setting up Domain Monitor"
ENC_KEY=$(openssl rand -base64 48 | tr -dc 'A-Za-z0-9' | head -c 32)
cd /opt/domain-monitor
$STD composer install
cp env.example.txt .env
sed -i -e "s|^APP_ENV=.*|APP_ENV=production|" \
-e "s|^APP_ENCRYPTION_KEY=.*|APP_ENCRYPTION_KEY=$ENC_KEY|" \
-e "s|^SESSION_COOKIE_HTTPONLY=.*|SESSION_COOKIE_HTTPONLY=0|" \
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" \
-e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" .env
cat <<EOF >/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName domainmonitor.local
DocumentRoot "/opt/domain-monitor/public"
<Directory "/opt/domain-monitor/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
$STD a2enmod rewrite headers
$STD systemctl reload apache2
msg_ok "Setup Domain Monitor"
motd_ssh
customize
cleanup_lxc