-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathinstaller-contrib-cloudron-latest-offirepo
149 lines (114 loc) · 3.42 KB
/
installer-contrib-cloudron-latest-offirepo
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
143
144
145
146
147
148
149
#!/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
export DEBIAN_FRONTEND=noninteractive
install_apache() {
echo "Installing apache2..." | log
apt update && apt install -y apache2
echo "Installing passenger module for apache2..." | log
apt install -y libapache2-mod-passenger
}
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
a2dissite 000-default
a2ensite installProgress
systemctl start apache2
"$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 apache.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"
"tweaks/ubuntu-updateos-noupgrade"
)
UBUNTU_VERSION=$(lsb_release -rs)
if [[ "$UBUNTU_VERSION" == "22.04" ]]; then
steps+=("apps/cloudron-latest-offirepo-22.04")
elif [[ "$UBUNTU_VERSION" == "24.04" ]]; then
steps+=("apps/cloudron-latest-offirepo-24.04")
else
echo "[ERROR] Unsupported Ubuntu version: $UBUNTU_VERSION"
exit 1
fi
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
if [[ "$run" == "apps/cloudron-latest-offirepo" ]]; then
return 0
fi
done
tag Script.success