- Replace $EUID with $(id -u) for root checks across all bin/*.sh and install.sh: dash (Debian's /bin/sh) never sets $EUID, so the check was silently broken everywhere. - lemp.sh: make apt-get upgrade non-interactive (--yes), align the Redis PHP module and php-fpm restart with $PHP_VERSION instead of a hardcoded 8.1, and template the nginx PHP-FPM socket path via a PHP_FPM_SOCK placeholder substituted at install time. - nginx-phpmyadmin.conf: fix docroot to match the actual phpMyAdmin symlink location created by lemp.sh. - mysql-db.sh: inline the root check instead of sourcing the nonexistent bin/checkroot.sh. - webhook.sh: fix chowm typo (chown). - urbackup.sh: copy the systemd unit from assets/ instead of a relative path to a file that doesn't exist in the repo. - _addUserSite.sh: fix invalid `$var=value` assignment and an empty if-block that was a POSIX sh syntax error. Also carries over pending fixes to deploy-drupal.sh (drush now invoked via vendor/bin/drush) and gitbarrerepos.sh (comment cleanup). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
123 lines
2.9 KiB
Bash
Executable File
123 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# bachir soussi chiadmi
|
|
|
|
# get the current position
|
|
_cwd="$(pwd)"
|
|
|
|
echo -e '\033[35m
|
|
__ __ _ _ _ _
|
|
\ \ / /__| |__| || |___ ___| |__
|
|
\ \/\/ / -_) `_ \ __ / _ \/ _ \ / /
|
|
\_/\_/\___|_.__/_||_\___/\___/_\_\
|
|
\033[0m'
|
|
|
|
# check for assets folder
|
|
_assets="$_cwd/assets"
|
|
if [ ! -d "$_assets" ]; then
|
|
_assets="$_cwd/../assets"
|
|
if [ ! -d "$_assets" ]; then
|
|
echo "!! can't find assets directory !!"
|
|
exit
|
|
fi
|
|
fi
|
|
|
|
user=""
|
|
while [ "$user" = "" ]
|
|
do
|
|
read -p "enter an existing user name ? " user
|
|
if [ "$user" != "" ]; then
|
|
# check if user already exists
|
|
if id "$user" >/dev/null 2>&1; then
|
|
read -p "is user name $user correcte [y|n] " validated
|
|
if [ "$validated" = "y" ]; then
|
|
break
|
|
else
|
|
user=""
|
|
fi
|
|
else
|
|
echo "user $user doesn't exists, you must provide an existing user"
|
|
user=""
|
|
fi
|
|
fi
|
|
done
|
|
|
|
_domain=""
|
|
while [ "$_domain" = "" ]
|
|
do
|
|
read -p "enter a domain name ? " _domain
|
|
if [ "$_domain" != "" ]; then
|
|
read -p "is domain $_domain correcte [y|n] " validated
|
|
if [ "$validated" = "y" ]; then
|
|
break
|
|
else
|
|
_domain=""
|
|
fi
|
|
fi
|
|
done
|
|
|
|
_id=$(echo "$_domain" | sed "s/\./_/g")
|
|
|
|
_remote=""
|
|
while [ "$_remote" = "" ]
|
|
do
|
|
read -p "enter teh remote git repos url to pull from ? " _remote
|
|
if [ "$_remote" != "" ]; then
|
|
read -p "is $_remote correcte [y|n] " validated
|
|
if [ "$validated" = "y" ]; then
|
|
break
|
|
else
|
|
_remote=""
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# TODO check for /home/"$user"/www/"$_domain"
|
|
if [ ! -d /home/"$user"/www/"$_domain" ]; then
|
|
echo "/home/$user/www/$_domain does not exists !"
|
|
exit
|
|
fi
|
|
|
|
# TODO check for /home/"$user"/git-repositories/"$_domain.git"
|
|
if [ ! -d /home/"$user"/git-repositories/"$_domain.git" ]; then
|
|
echo "/home/$user/git-repositories/$_domain.git does not exists !"
|
|
exit
|
|
fi
|
|
|
|
apt-get install webhook
|
|
|
|
# git bare repos remote
|
|
git --git-dir=/home/"$user"/git-repositories/"$_domain.git" remote add origin "$_remote"
|
|
|
|
# hook deploy script
|
|
cp -f "$_assets"/webhook-deploy.sh /home/"$user"/webhook-deploy-"$_id".sh
|
|
sed -i -r "s/DOMAIN/$_domain/g" /home/"$user"/webhook-deploy-"$_id".sh
|
|
sed -i -r "s/USER/$user/g" /home/"$user"/webhook-deploy-"$_id".sh
|
|
chown $user:$user /home/"$user"/webhook-deploy-"$_id".sh
|
|
chmod +x /home/"$user"/webhook-deploy-"$_id".sh
|
|
|
|
# remove git bare repos hook
|
|
mv /home/"$user"/git-repositories/"$_domain".git/hooks/post-receive /home/"$user"/git-repositories/"$_domain".git/hooks/post-receive.back
|
|
|
|
# webhook conf
|
|
touch /etc/webhooks.conf
|
|
echo "
|
|
- id: deploy_app_$_id
|
|
execute-command: /home/$user/webhook-deploy-$_id.sh
|
|
command-working-directory: /home/$user/
|
|
" >> /etc/webhooks.conf
|
|
|
|
# webhook service
|
|
cp -f "$_assets"/webhook.service /etc/systemd/system/webhook.service
|
|
systemctl enable webhook
|
|
systemctl start webhook
|
|
systemctl restart webhook
|
|
|
|
# systemctl reload webhook
|
|
|
|
ufw allow 9000
|
|
|
|
echo "webhook done"
|
|
echo "you can configure your webhook trigger with the following url :"
|
|
echo "http://$_domain:9000/hooks/deploy_app_$_id"
|