Skip to content

Commit 9bf5af5

Browse files
committed
first commit
1 parent 999a1c1 commit 9bf5af5

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

nginx.sh

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#!/bin/bash
2+
if [ -z echo$(which nginx) ]; then
3+
echo "nginx not installed"
4+
exit 1
5+
fi
6+
echo $(systemctl enable nginx)
7+
echo $(systemctl start nginx)
8+
#get domain name and folder name
9+
while [ "$domain" = "" ]
10+
do
11+
read -p "What is your domain-name? " domain
12+
done
13+
while [ "$prefix" = "" ]
14+
do
15+
read -p 'Does this domain have a www prefix?(yn) ' prefix
16+
done
17+
use=""
18+
case $prefix in [yY]* )
19+
www="www.$domain"
20+
esac
21+
while [ "$folder" = "" ]
22+
do
23+
read -p 'What would you like to call folders? ' folder
24+
done
25+
#adding html content
26+
echo $(chmod -R 755 /var/www)
27+
echo $(mkdir -p /var/www/$folder/html)
28+
echo "welcome to $domain" > /var/www/$folder/html/index.html
29+
# remove existing and default entires
30+
echo $(rm /etc/nginx/sites-available/$folder)
31+
echo $(rm /etc/nginx/sites-enabled/$folder)
32+
echo $(rm -r /var/www/html)
33+
echo $(rm /etc/nginx/sites-available/default)
34+
echo $(rm /etc/nginx/sites-enabled/default)
35+
echo "
36+
server {
37+
listen 80;
38+
listen [::]:80;
39+
server_name $use $domain;
40+
location / {
41+
root /var/www/$folder/html;
42+
index index.html index.htm index.php;
43+
}
44+
}
45+
" > /etc/nginx/sites-available/$folder
46+
#generating certificate
47+
read -p 'Do you wish to generate a new certificate?(yn) ' cert
48+
case $cert in [yY]* )
49+
if [ -z echo$(which certbot) ]; then
50+
echo "certbot is not installed"
51+
exit 1
52+
fi
53+
certbot="certbot certonly --standalone -d $domain"
54+
read -p "What's your mail address? (If you have allready typed it in the past you can leave it empty): " mail
55+
if [ "$www" != "" ]; then
56+
certbot="$certbot -d $www"
57+
fi
58+
if [ "$mail" != "" ]; then
59+
certbot="$certbot --non-interactive --agree-tos -m $mail"
60+
fi
61+
echo $(systemctl stop nginx)
62+
echo $($certbot)
63+
esac
64+
#create conf file and linking it
65+
read -p 'Do you want to use ssl?(yn) ' ssl
66+
case $ssl in [yY]* )
67+
echo "
68+
server {
69+
listen 443 ssl http2;
70+
listen [::]:443 ssl http2;
71+
server_name $use $domain;
72+
ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem;
73+
ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem;
74+
ssl_session_cache shared:SSL:1m;
75+
ssl_session_timeout 5m;
76+
ssl_ciphers HIGH:!aNULL:!MD5;
77+
ssl_prefer_server_ciphers on;
78+
location / {
79+
root /var/www/$folder/html;
80+
index index.html index.htm index.php;
81+
}
82+
}
83+
server {
84+
listen 80;
85+
listen [::]:80;
86+
server_name $use $domain;
87+
"'return 301 https://$host$request_uri;
88+
}' > /etc/nginx/sites-available/$folder
89+
esac
90+
echo $(ln -s /etc/nginx/sites-available/$folder /etc/nginx/sites-enabled/$folder)
91+
echo $(systemctl restart nginx)
92+
echo 'All done!'

0 commit comments

Comments
 (0)