|
@@ -1,5 +1,5 @@
|
1
|
1
|
#!/bin/bash
|
2
|
|
-# postinst script for jitsi-meet
|
|
2
|
+# postinst script for jitsi-meet-web-config
|
3
|
3
|
#
|
4
|
4
|
# see: dh_installdeb(1)
|
5
|
5
|
|
|
@@ -20,13 +20,19 @@ set -e
|
20
|
20
|
case "$1" in
|
21
|
21
|
configure)
|
22
|
22
|
|
23
|
|
- JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
|
24
|
|
-
|
25
|
|
- . $JVB_ETC_CONFIG
|
26
|
|
-
|
27
|
23
|
# loading debconf
|
28
|
24
|
. /usr/share/debconf/confmodule
|
29
|
25
|
|
|
26
|
+ # try to get host from jitsi-videobridge
|
|
27
|
+ db_get jitsi-videobridge/jvb-hostname
|
|
28
|
+ if [ -z "$RET" ] ; then
|
|
29
|
+ # server hostname
|
|
30
|
+ db_set jitsi-videobridge/jvb-hostname "localhost"
|
|
31
|
+ db_input critical jitsi-videobridge/jvb-hostname || true
|
|
32
|
+ db_go
|
|
33
|
+ fi
|
|
34
|
+ JVB_HOSTNAME="$RET"
|
|
35
|
+
|
30
|
36
|
# detect dpkg-reconfigure
|
31
|
37
|
RECONFIGURING="false"
|
32
|
38
|
db_get jitsi-meet/jvb-hostname
|
|
@@ -49,22 +55,54 @@ case "$1" in
|
49
|
55
|
if [ "$NGINX_INSTALL_CHECK" = "installed" ] || [ "$NGINX_INSTALL_CHECK" = "unpacked" ] ; then
|
50
|
56
|
FORCE_NGINX="true"
|
51
|
57
|
fi
|
|
58
|
+ APACHE_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'apache2' 2>/dev/null | awk '{print $3}' || true)"
|
|
59
|
+ if [ "$APACHE_INSTALL_CHECK" = "installed" ] || [ "$APACHE_INSTALL_CHECK" = "unpacked" ] ; then
|
|
60
|
+ FORCE_APACHE="true"
|
|
61
|
+ fi
|
52
|
62
|
|
53
|
|
- # SSL for nginx
|
54
|
|
- db_get jitsi-meet/cert-choice
|
55
|
|
- CERT_CHOICE="$RET"
|
56
|
|
- UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
|
|
63
|
+ # if first time config ask for certs, or if we are reconfiguring
|
|
64
|
+ if [ -z "$JVB_HOSTNAME_OLD" ] || [ "$RECONFIGURING" = "true" ] ; then
|
|
65
|
+ # SSL for nginx
|
|
66
|
+ db_get jitsi-meet/cert-choice
|
|
67
|
+ CERT_CHOICE="$RET"
|
|
68
|
+ UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
|
|
69
|
+
|
|
70
|
+ if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
|
71
|
+ db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
|
|
72
|
+ db_input critical jitsi-meet/cert-path-key || true
|
|
73
|
+ db_go
|
|
74
|
+ db_get jitsi-meet/cert-path-key
|
|
75
|
+ CERT_KEY="$RET"
|
|
76
|
+ db_set jitsi-meet/cert-path-crt "/etc/ssl/$JVB_HOSTNAME.crt"
|
|
77
|
+ db_input critical jitsi-meet/cert-path-crt || true
|
|
78
|
+ db_go
|
|
79
|
+ db_get jitsi-meet/cert-path-crt
|
|
80
|
+ CERT_CRT="$RET"
|
|
81
|
+ else
|
|
82
|
+ # create self-signed certs
|
|
83
|
+ CERT_KEY="/etc/jitsi/meet/$JVB_HOSTNAME.key"
|
|
84
|
+ CERT_CRT="/etc/jitsi/meet/$JVB_HOSTNAME.crt"
|
|
85
|
+ HOST="$( (hostname -s; echo localhost) | head -n 1)"
|
|
86
|
+ DOMAIN="$( (hostname -d; echo localdomain) | head -n 1)"
|
|
87
|
+ openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \
|
|
88
|
+ "/O=$DOMAIN/OU=$HOST/CN=$JVB_HOSTNAME/emailAddress=webmaster@$HOST.$DOMAIN" \
|
|
89
|
+ -keyout $CERT_KEY \
|
|
90
|
+ -out $CERT_CRT
|
|
91
|
+ fi
|
|
92
|
+ fi
|
57
|
93
|
|
58
|
94
|
# jitsi meet
|
59
|
95
|
JITSI_MEET_CONFIG="/etc/jitsi/meet/$JVB_HOSTNAME-config.js"
|
60
|
96
|
if [ ! -f $JITSI_MEET_CONFIG ] ; then
|
61
|
|
- cp /usr/share/doc/jitsi-meet/config.js $JITSI_MEET_CONFIG
|
|
97
|
+ cp /usr/share/doc/jitsi-meet-web/config.js $JITSI_MEET_CONFIG
|
62
|
98
|
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" $JITSI_MEET_CONFIG
|
63
|
99
|
fi
|
64
|
100
|
|
65
|
101
|
# this is new install let's configure jvb to serve meet
|
66
|
|
- if [[ -z $FORCE_NGINX && ( -z $JVB_HOSTNAME_OLD || "$JVB_SERVE" = "true" ) ]] ; then
|
|
102
|
+ # no-nginx, no-apache installed on machine, this is new install or reconfiguring old one which have jvb_serve set
|
|
103
|
+ if [[ -z "$FORCE_NGINX" && -z "$FORCE_APACHE" && ( -z "$JVB_HOSTNAME_OLD" || ( "$JVB_SERVE" = "true" && "$RECONFIGURING" = "true" )) ]] ; then
|
67
|
104
|
|
|
105
|
+ JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
|
68
|
106
|
JVB_CONFIG="/etc/jitsi/videobridge/sip-communicator.properties"
|
69
|
107
|
|
70
|
108
|
# this is a reconfigure, lets just delete old links
|
|
@@ -112,34 +150,19 @@ case "$1" in
|
112
|
150
|
chmod 755 /etc/authbind/byport/443
|
113
|
151
|
fi
|
114
|
152
|
|
115
|
|
- if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
116
|
|
- # create jks from uploaded certs
|
117
|
|
- openssl pkcs12 -export \
|
118
|
|
- -in /etc/ssl/$JVB_HOSTNAME.crt \
|
119
|
|
- -inkey /etc/ssl/$JVB_HOSTNAME.key \
|
120
|
|
- -passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
|
121
|
|
- keytool -importkeystore \
|
122
|
|
- -srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
|
123
|
|
- -destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
|
124
|
|
- -srcstoretype pkcs12 \
|
125
|
|
- -noprompt -storepass changeit -srcstorepass changeit
|
126
|
|
- else
|
127
|
|
- # create jks from self-signed certs
|
128
|
|
- openssl pkcs12 -export \
|
129
|
|
- -in /var/lib/prosody/$JVB_HOSTNAME.crt \
|
130
|
|
- -inkey /var/lib/prosody/$JVB_HOSTNAME.key \
|
131
|
|
- -passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
|
132
|
|
- keytool -importkeystore \
|
133
|
|
- -srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
|
134
|
|
- -destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
|
135
|
|
- -srcstoretype pkcs12 \
|
136
|
|
- -noprompt -storepass changeit -srcstorepass changeit
|
137
|
|
- fi
|
|
153
|
+ CERT_P12="/etc/jitsi/videobridge/$JVB_HOSTNAME.p12"
|
|
154
|
+ CERT_JKS="/etc/jitsi/videobridge/$JVB_HOSTNAME.jks"
|
|
155
|
+ # create jks from certs
|
|
156
|
+ openssl pkcs12 -export \
|
|
157
|
+ -in $CERT_CRT -inkey $CERT_KEY -passout pass:changeit > $CERT_P12
|
|
158
|
+ keytool -importkeystore -destkeystore $CERT_JKS \
|
|
159
|
+ -srckeystore $CERT_P12 -srcstoretype pkcs12 \
|
|
160
|
+ -noprompt -storepass changeit -srcstorepass changeit
|
138
|
161
|
|
139
|
162
|
db_set jitsi-meet/jvb-serve "true"
|
140
|
163
|
|
141
|
164
|
invoke-rc.d jitsi-videobridge restart
|
142
|
|
- elif [[ "$FORCE_NGINX" = "true" || ( -n $JVB_HOSTNAME_OLD && "$JVB_SERVE" = "false" ) ]] ; then
|
|
165
|
+ elif [[ "$FORCE_NGINX" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
|
143
|
166
|
# this is a reconfigure, lets just delete old links
|
144
|
167
|
if [ "$RECONFIGURING" = "true" ] ; then
|
145
|
168
|
rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME_OLD.conf
|
|
@@ -148,7 +171,7 @@ case "$1" in
|
148
|
171
|
|
149
|
172
|
# nginx conf
|
150
|
173
|
if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ] ; then
|
151
|
|
- cp /usr/share/doc/jitsi-meet/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
|
174
|
+ cp /usr/share/doc/jitsi-meet-web/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
152
|
175
|
if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ] ; then
|
153
|
176
|
ln -s /etc/nginx/sites-available/$JVB_HOSTNAME.conf /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
|
154
|
177
|
fi
|
|
@@ -156,28 +179,21 @@ case "$1" in
|
156
|
179
|
fi
|
157
|
180
|
|
158
|
181
|
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
159
|
|
- db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
|
160
|
|
- db_input critical jitsi-meet/cert-path-key || true
|
161
|
|
- db_go
|
162
|
|
- db_get jitsi-meet/cert-path-key
|
163
|
|
- CERT_KEY="$RET"
|
164
|
|
- db_set jitsi-meet/cert-path-crt "/etc/ssl/$JVB_HOSTNAME.crt"
|
165
|
|
- db_input critical jitsi-meet/cert-path-crt || true
|
166
|
|
- db_go
|
167
|
|
- db_get jitsi-meet/cert-path-crt
|
168
|
|
- CERT_CRT="$RET"
|
169
|
182
|
# replace self-signed certificate paths with user provided ones
|
170
|
183
|
CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g')
|
171
|
184
|
CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g')
|
172
|
|
- sed -i "s/ssl_certificate_key\ \/var\/lib\/prosody\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/g" \
|
|
185
|
+ sed -i "s/ssl_certificate_key\ \/etc\/jitsi\/meet\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/g" \
|
173
|
186
|
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
174
|
187
|
CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
|
175
|
188
|
CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
|
176
|
|
- sed -i "s/ssl_certificate\ \/var\/lib\/prosody\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
|
|
189
|
+ sed -i "s/ssl_certificate\ \/etc\/jitsi\/meet\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
|
177
|
190
|
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
178
|
191
|
fi
|
179
|
192
|
|
180
|
193
|
invoke-rc.d nginx reload
|
|
194
|
+ elif [[ "$FORCE_APACHE" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
|
|
195
|
+ echo "Apache2 server is installed, automatic configuration is not supported at this time."
|
|
196
|
+ echo "You need to configure yourselve the virtual host for your domain."
|
181
|
197
|
fi
|
182
|
198
|
|
183
|
199
|
# and we're done with debconf
|