rewrite
This commit is contained in:
parent
dcf29054fa
commit
c426afbae5
65
admin.sh
65
admin.sh
|
@ -1,39 +1,28 @@
|
||||||
for (( ; ; ))
|
#!/bin/sh
|
||||||
do
|
|
||||||
rm -rf available.txt
|
bestip=$(dig +short a tilde.best)
|
||||||
files=$(find /home -name tilde.json -print)
|
|
||||||
echo "$files" >> available.txt
|
for byod in /home/*/byod; do
|
||||||
if [ -s available.txt ]
|
user=$(stat -c '%U' $byod)
|
||||||
then
|
domain=$(cat $byod)
|
||||||
tilde=$(sed '1q;d' available.txt)
|
echo "$user is requesting $domain"
|
||||||
domain=$(jq -r '.domain' $tilde)
|
if [ -s /etc/nginx/sites-enabled/byod-$user-$domain.conf ]; then
|
||||||
username=$(echo "$tilde" | awk -F/ '{print $2}')
|
echo "byod already configured for $user and $domain"
|
||||||
if [ "tilde.best" == "$domain" ]; then
|
continue
|
||||||
sed -i '1d' ./available.txt
|
else
|
||||||
exit 1
|
domainip=$(dig +short a $domain)
|
||||||
else
|
if [ "$bestip" == "$domainip"]
|
||||||
if [ -s /etc/nginx/sites-enabled/$domain ]
|
then
|
||||||
then
|
sed -e "s/<user>/$user/" -e "s/<domain>/$domain/" template.conf \
|
||||||
exit 1
|
> /etc/nginx/sites-available/byod-$user-$domain.conf
|
||||||
else
|
ln -s ../sites-available/byod-$user-$domain.conf /etc/nginx/sites-enabled/byod-$user-$domain.conf
|
||||||
besta=$(dig +short a tilde.best)
|
certbot --nginx -d $domain --non-interactive --redirect
|
||||||
domaina=$(dig +short a $domain)
|
else
|
||||||
if [ "$besta" == "$domaina" ]
|
echo "domain's dns not configured correctly"
|
||||||
then
|
fi
|
||||||
echo "server {" >> /etc/nginx/sites-enabled/$domain
|
fi
|
||||||
echo " listen 80;" >> /etc/nginx/sites-enabled/$domain
|
|
||||||
echo " server_name $domain;" >> /etc/nginx/sites-enabled/$domain
|
|
||||||
echo " root /home/$username/$domain;" >> /etc/nginx/sites-enabled/$domain
|
|
||||||
echo "}" >> /etc/nginx/sites-enabled/$domain
|
|
||||||
certbot --nginx -d $domain --non-interactive --redirect --agree-tos -m root@$domain
|
|
||||||
sed -i '1d' ./available.txt
|
|
||||||
else
|
|
||||||
sed -i '1d' ./available.txt
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
rm -rf available.txt
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
nginx -t
|
||||||
|
systemctl reload nginx
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "Please enter new domain"
|
||||||
|
read domain
|
||||||
|
if [[ $(dig +short a $domain) == $(dig +short a tilde.best) ]]; then
|
||||||
|
mkdir ~/$domain
|
||||||
|
echo $domain > ~/byod
|
||||||
|
echo "once an admin confirms the domain, the webroot will be ~/$domain"
|
||||||
|
else
|
||||||
|
echo "please set an A record for $domain for $(dig +short a tilde.best)"
|
||||||
|
fi
|
||||||
|
|
12
create.sh
12
create.sh
|
@ -1,12 +0,0 @@
|
||||||
# This file needs to be added at /etc/skel
|
|
||||||
|
|
||||||
echo "Please enter new domain"
|
|
||||||
read DOMAIN
|
|
||||||
mkdir $DOMAIN
|
|
||||||
|
|
||||||
JSON_STRING=$( jq -n \
|
|
||||||
--arg d "$DOMAIN" \
|
|
||||||
'{domain: $d}' )
|
|
||||||
|
|
||||||
echo "$JSON_STRING" > tilde.json
|
|
||||||
cd $DOMAIN
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name <domain>;
|
||||||
|
root /home/<user>/<domain>;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue