-
Notifications
You must be signed in to change notification settings - Fork 21
/
installer-contrib-cloudron-latest-offirepo-24.04.conf
142 lines (111 loc) · 3.3 KB
/
installer-contrib-cloudron-latest-offirepo-24.04.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/bin/bash
if [ -f "include/startup.sh" ]; then
. include/startup.sh
chmod -R u+x *
elif [ -f "../include/startup.sh" ]; then
. ../include/startup.sh
chmod -R u+x ../*
fi
sudo timedatectl set-ntp true
sudo systemctl restart systemd-timesyncd
sudo timedatectl status
install_apache() {
echo "Installing apache2..." | log
apt update && apt install -y apache2
systemctl start apache2
}
idxHTMLPath="/var/www/html"
if [ ! -d "$idxHTMLPath" ]; then
mkdir -p "$idxHTMLPath"
fi
if [ -f "$idxHTMLPath/index.html" ]; then
rm -f "$idxHTMLPath/index.html"
fi
confPath="/etc/apache2/sites-available"
if [ ! -d "$confPath" ]; then
mkdir -p "$confPath"
fi
# Define variables
update_status="include/updateInstallStatus.sh"
web_path="/var/www/html"
logo_img_root="include/Logos"
logo_img_name="CloudRon_logo.png"
logo_img_root_path="$logo_img_root/$logo_img_name"
html_path="/var/www/html/index.html"
local_html_path="include/index.html"
install_apache
if [ ! -d "$web_path" ]; then
mkdir -p "$web_path"
fi
echo "Writing apache configuration file..." | log
cat <<_EOF_ > /etc/apache2/sites-available/installProgress.conf
<VirtualHost *:80>
ServerName _
DocumentRoot $idxHTMLPath
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName _
DocumentRoot $idxHTMLPath
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
_EOF_
echo "Copying HTML related files..."
cp -r "$local_html_path" "$html_path"
cp -r "$logo_img_root_path" "$web_path/$logo_img_name"
chmod 644 "$web_path/$logo_img_name"
a2enmod ssl
a2ensite installProgress
a2dissite 000-default
systemctl start apache2
apache_status=$(systemctl is-active apache2)
if [ "$apache_status" != "active" ]; then
echo "Apache2 service failed to start." | log
systemctl status apache2 | log
else
echo "Apache2 service is running successfully." | log
fi
"$update_status" "$html_path" -uf "$logo_img_name"
"$update_status" "$html_path" -ut "CloudRon Installation"
"$update_status" "$html_path" -ui "$logo_img_name"
"$update_status" "$html_path" -uh "CloudRon Installation"
"$update_status" "$html_path" -rp "Initializing setup..."
tag httpd.success
tag apache2.success
# Define execute list
declare -a steps=(
"tweaks/cwm-settimezone"
"tweaks/ubuntu-sysctl-swap"
"include/checkInternetConnectivity"
"tweaks/ubuntu-disable-openssl-randfile"
"tweaks/ubuntu-ufw-enable"
"tweaks/ubuntu-ufw-allowhttp"
"tweaks/apache-enable-ssl-light"
"tweaks/ubuntu-updateos-noupgrade"
"apps/cloudron-latest-offirepo-24.04"
)
for run in "${steps[@]}"; do
printf "Executing %s\n" "$run" | log
if ! $run; then
script_exit_code=$?
printf "Exit Code: %d\n" "$script_exit_code" | log
case "$script_exit_code" in
0) printf "Done. (0)\n" | log ;;
1) printf "Error during %s. Exiting.\n" "$run" | log
return 1
;;
98) printf "Exit Code 98. Script already executed, can run only once. Continuing. (98)\n" | log ;;
99) printf "Exit Code 99. Continuing. (99)\n" | log ;;
127) printf "Error. %s not found. Exiting. (127)\n" "$run" | log
return 1
;;
*) printf "Exit Code not configured. Exiting. (%d)\n" "$script_exit_code" | log
return 1
;;
esac
fi
done
tag Script.success