|
@@ -35,393 +35,397 @@ XMPP_PASSWORD=
|
35
|
35
|
XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
|
36
|
36
|
XMPP_ECC_CURVE='"secp384r1"'
|
37
|
37
|
|
|
38
|
+function update_prosody_modules {
|
|
39
|
+ if [ ! -d $INSTALL_DIR/prosody-modules ]; then
|
|
40
|
+ return
|
|
41
|
+ fi
|
|
42
|
+ if [ ! -d /usr/lib/prosody ]; then
|
|
43
|
+ return
|
|
44
|
+ fi
|
|
45
|
+
|
|
46
|
+ cd $INSTALL_DIR/prosody-modules
|
|
47
|
+ hg pull
|
|
48
|
+ hg update
|
|
49
|
+
|
|
50
|
+ # support onion addresses
|
|
51
|
+ if [ -f $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua ]; then
|
|
52
|
+ cp $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua /usr/lib/prosody/modules/mod_onions.lua
|
|
53
|
+ fi
|
|
54
|
+
|
|
55
|
+ # XEP-0313 message archive management
|
|
56
|
+ # https://modules.prosody.im/mod_mam.html
|
|
57
|
+ # Allows you to download your previous messages onto a new client
|
|
58
|
+ # This only applies if you are not using forward secret crypto
|
|
59
|
+ # such as OTR or OMEMO (eg. OpenPGP)
|
|
60
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_mam ]; then
|
|
61
|
+ cp $INSTALL_DIR/prosody-modules/mod_mam/*.lua /usr/lib/prosody/modules
|
|
62
|
+ fi
|
|
63
|
+
|
|
64
|
+ # XEP-0352 Client State Indication
|
|
65
|
+ # Notifies the server if the app is in the background or not
|
|
66
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_csi ]; then
|
|
67
|
+ cp $INSTALL_DIR/prosody-modules/mod_csi/*.lua /usr/lib/prosody/modules
|
|
68
|
+ fi
|
|
69
|
+
|
|
70
|
+ # XEP-0280 Message Carbons
|
|
71
|
+ # Ensures all messages get delivered to all clients (if you have a mobile and desktop client)
|
|
72
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_carbons ]; then
|
|
73
|
+ cp $INSTALL_DIR/prosody-modules/mod_carbons/*.lua /usr/lib/prosody/modules
|
|
74
|
+ fi
|
|
75
|
+
|
|
76
|
+ # XEP-0198 Stream management
|
|
77
|
+ # Helps mobile apps recover when a device switches networks.
|
|
78
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_smacks ]; then
|
|
79
|
+ cp $INSTALL_DIR/prosody-modules/mod_smacks/*.lua /usr/lib/prosody/modules
|
|
80
|
+ fi
|
|
81
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_smacks_offline ]; then
|
|
82
|
+ cp $INSTALL_DIR/prosody-modules/mod_smacks_offline/*.lua /usr/lib/prosody/modules
|
|
83
|
+ fi
|
|
84
|
+
|
|
85
|
+ # XEP-0191: blocking
|
|
86
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_blocking ]; then
|
|
87
|
+ cp $INSTALL_DIR/prosody-modules/mod_blocking/*.lua /usr/lib/prosody/modules
|
|
88
|
+ fi
|
|
89
|
+
|
|
90
|
+ # XEP-0016 Privacy lists
|
|
91
|
+ if [ -d $INSTALL_DIR/prosody-modules/mod_privacy_lists ]; then
|
|
92
|
+ cp $INSTALL_DIR/prosody-modules/mod_privacy_lists/*.lua /usr/lib/prosody/modules
|
|
93
|
+ fi
|
|
94
|
+}
|
|
95
|
+
|
38
|
96
|
function upgrade_xmpp {
|
39
|
|
- echo ''
|
|
97
|
+ if ! grep -Fxq "install_xmpp_main" $COMPLETION_FILE; then
|
|
98
|
+ return
|
|
99
|
+ fi
|
|
100
|
+ function_check update_prosody_modules
|
|
101
|
+ update_prosody_modules
|
40
|
102
|
}
|
41
|
103
|
|
42
|
104
|
function backup_local_xmpp {
|
43
|
|
- echo ''
|
|
105
|
+ echo ''
|
44
|
106
|
}
|
45
|
107
|
|
46
|
108
|
function backup_remote_xmpp {
|
47
|
|
- echo ''
|
|
109
|
+ echo ''
|
48
|
110
|
}
|
49
|
111
|
|
50
|
112
|
function configure_firewall_for_xmpp {
|
51
|
|
- if [ ! -d /etc/prosody ]; then
|
52
|
|
- return
|
53
|
|
- fi
|
54
|
|
- if grep -Fxq "configure_firewall_for_xmpp" $COMPLETION_FILE; then
|
55
|
|
- return
|
56
|
|
- fi
|
57
|
|
- if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
|
58
|
|
- # docker does its own firewalling
|
59
|
|
- return
|
60
|
|
- fi
|
61
|
|
- if [[ $ONION_ONLY != "no" ]]; then
|
62
|
|
- return
|
63
|
|
- fi
|
64
|
|
- iptables -A INPUT -p tcp --dport 5222:5223 -j ACCEPT
|
65
|
|
- iptables -A INPUT -p tcp --dport 5269 -j ACCEPT
|
66
|
|
- iptables -A INPUT -p tcp --dport 5280:5281 -j ACCEPT
|
67
|
|
- function_check save_firewall_settings
|
68
|
|
- save_firewall_settings
|
69
|
|
-
|
70
|
|
- OPEN_PORTS+=('XMPP 5222-5223')
|
71
|
|
- OPEN_PORTS+=('XMPP 5269')
|
72
|
|
- OPEN_PORTS+=('XMPP 5280-5281')
|
73
|
|
- echo 'configure_firewall_for_xmpp' >> $COMPLETION_FILE
|
74
|
|
-}
|
75
|
|
-
|
76
|
|
-function update_prosody_modules {
|
77
|
|
- if [ ! -d $INSTALL_DIR/prosody-modules ]; then
|
78
|
|
- return
|
79
|
|
- fi
|
80
|
|
- if [ ! -d /usr/lib/prosody ]; then
|
81
|
|
- return
|
82
|
|
- fi
|
83
|
|
-
|
84
|
|
- cd $INSTALL_DIR/prosody-modules
|
85
|
|
- hg pull
|
86
|
|
- hg update
|
87
|
|
-
|
88
|
|
- # support onion addresses
|
89
|
|
- if [ -f $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua ]; then
|
90
|
|
- cp $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua /usr/lib/prosody/modules/mod_onions.lua
|
91
|
|
- fi
|
92
|
|
-
|
93
|
|
- # XEP-0313 message archive management
|
94
|
|
- # https://modules.prosody.im/mod_mam.html
|
95
|
|
- # Allows you to download your previous messages onto a new client
|
96
|
|
- # This only applies if you are not using forward secret crypto
|
97
|
|
- # such as OTR or OMEMO (eg. OpenPGP)
|
98
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_mam ]; then
|
99
|
|
- cp $INSTALL_DIR/prosody-modules/mod_mam/*.lua /usr/lib/prosody/modules
|
100
|
|
- fi
|
101
|
|
-
|
102
|
|
- # XEP-0352 Client State Indication
|
103
|
|
- # Notifies the server if the app is in the background or not
|
104
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_csi ]; then
|
105
|
|
- cp $INSTALL_DIR/prosody-modules/mod_csi/*.lua /usr/lib/prosody/modules
|
106
|
|
- fi
|
107
|
|
-
|
108
|
|
- # XEP-0280 Message Carbons
|
109
|
|
- # Ensures all messages get delivered to all clients (if you have a mobile and desktop client)
|
110
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_carbons ]; then
|
111
|
|
- cp $INSTALL_DIR/prosody-modules/mod_carbons/*.lua /usr/lib/prosody/modules
|
112
|
|
- fi
|
113
|
|
-
|
114
|
|
- # XEP-0198 Stream management
|
115
|
|
- # Helps mobile apps recover when a device switches networks.
|
116
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_smacks ]; then
|
117
|
|
- cp $INSTALL_DIR/prosody-modules/mod_smacks/*.lua /usr/lib/prosody/modules
|
118
|
|
- fi
|
119
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_smacks_offline ]; then
|
120
|
|
- cp $INSTALL_DIR/prosody-modules/mod_smacks_offline/*.lua /usr/lib/prosody/modules
|
121
|
|
- fi
|
122
|
|
-
|
123
|
|
- # XEP-0191: blocking
|
124
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_blocking ]; then
|
125
|
|
- cp $INSTALL_DIR/prosody-modules/mod_blocking/*.lua /usr/lib/prosody/modules
|
126
|
|
- fi
|
127
|
|
-
|
128
|
|
- # XEP-0016 Privacy lists
|
129
|
|
- if [ -d $INSTALL_DIR/prosody-modules/mod_privacy_lists ]; then
|
130
|
|
- cp $INSTALL_DIR/prosody-modules/mod_privacy_lists/*.lua /usr/lib/prosody/modules
|
131
|
|
- fi
|
|
113
|
+ if [ ! -d /etc/prosody ]; then
|
|
114
|
+ return
|
|
115
|
+ fi
|
|
116
|
+ if grep -Fxq "configure_firewall_for_xmpp" $COMPLETION_FILE; then
|
|
117
|
+ return
|
|
118
|
+ fi
|
|
119
|
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
|
|
120
|
+ # docker does its own firewalling
|
|
121
|
+ return
|
|
122
|
+ fi
|
|
123
|
+ if [[ $ONION_ONLY != "no" ]]; then
|
|
124
|
+ return
|
|
125
|
+ fi
|
|
126
|
+ iptables -A INPUT -p tcp --dport 5222:5223 -j ACCEPT
|
|
127
|
+ iptables -A INPUT -p tcp --dport 5269 -j ACCEPT
|
|
128
|
+ iptables -A INPUT -p tcp --dport 5280:5281 -j ACCEPT
|
|
129
|
+ function_check save_firewall_settings
|
|
130
|
+ save_firewall_settings
|
|
131
|
+
|
|
132
|
+ OPEN_PORTS+=('XMPP 5222-5223')
|
|
133
|
+ OPEN_PORTS+=('XMPP 5269')
|
|
134
|
+ OPEN_PORTS+=('XMPP 5280-5281')
|
|
135
|
+ echo 'configure_firewall_for_xmpp' >> $COMPLETION_FILE
|
132
|
136
|
}
|
133
|
137
|
|
134
|
138
|
function remove_xmpp_client {
|
135
|
|
- if ! grep -Fxq "install_xmpp_client" $COMPLETION_FILE; then
|
136
|
|
- return
|
137
|
|
- fi
|
138
|
|
- apt-get -y remove --purge profanity
|
139
|
|
- sed '/install_xmpp_client/d' $COMPLETION_FILE
|
|
139
|
+ if ! grep -Fxq "install_xmpp_client" $COMPLETION_FILE; then
|
|
140
|
+ return
|
|
141
|
+ fi
|
|
142
|
+ apt-get -y remove --purge profanity
|
|
143
|
+ sed '/install_xmpp_client/d' $COMPLETION_FILE
|
140
|
144
|
}
|
141
|
145
|
|
142
|
146
|
function remove_xmpp {
|
143
|
|
- remove_xmpp_client
|
144
|
|
- if ! grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
145
|
|
- return
|
146
|
|
- fi
|
147
|
|
- iptables -D INPUT -p tcp --dport 5222:5223 -j ACCEPT
|
148
|
|
- iptables -D INPUT -p tcp --dport 5269 -j ACCEPT
|
149
|
|
- iptables -D INPUT -p tcp --dport 5280:5281 -j ACCEPT
|
150
|
|
- function_check save_firewall_settings
|
151
|
|
- save_firewall_settings
|
152
|
|
-
|
153
|
|
- function_check remove_onion_service
|
154
|
|
- remove_onion_service xmpp 5222 5223 5269
|
155
|
|
-
|
156
|
|
- apt-get -y remove --purge prosody prosody-modules
|
157
|
|
- if [ -d $INSTALL_DIR/prosody-modules ]; then
|
158
|
|
- rm -rf $INSTALL_DIR/prosody-modules
|
159
|
|
- fi
|
160
|
|
- if [ -d /etc/prosody ]; then
|
161
|
|
- rm -rf /etc/prosody
|
162
|
|
- fi
|
163
|
|
-
|
164
|
|
- sed '/install_xmpp/d' $COMPLETION_FILE
|
165
|
|
- sed '/XMPP /d' $COMPLETION_FILE
|
|
147
|
+ remove_xmpp_client
|
|
148
|
+ if ! grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
|
149
|
+ return
|
|
150
|
+ fi
|
|
151
|
+ iptables -D INPUT -p tcp --dport 5222:5223 -j ACCEPT
|
|
152
|
+ iptables -D INPUT -p tcp --dport 5269 -j ACCEPT
|
|
153
|
+ iptables -D INPUT -p tcp --dport 5280:5281 -j ACCEPT
|
|
154
|
+ function_check save_firewall_settings
|
|
155
|
+ save_firewall_settings
|
|
156
|
+
|
|
157
|
+ function_check remove_onion_service
|
|
158
|
+ remove_onion_service xmpp 5222 5223 5269
|
|
159
|
+
|
|
160
|
+ apt-get -y remove --purge prosody prosody-modules
|
|
161
|
+ if [ -d $INSTALL_DIR/prosody-modules ]; then
|
|
162
|
+ rm -rf $INSTALL_DIR/prosody-modules
|
|
163
|
+ fi
|
|
164
|
+ if [ -d /etc/prosody ]; then
|
|
165
|
+ rm -rf /etc/prosody
|
|
166
|
+ fi
|
|
167
|
+
|
|
168
|
+ sed '/install_xmpp/d' $COMPLETION_FILE
|
|
169
|
+ sed '/XMPP /d' $COMPLETION_FILE
|
166
|
170
|
}
|
167
|
171
|
|
168
|
172
|
function install_xmpp_main {
|
169
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
170
|
|
- return
|
171
|
|
- fi
|
172
|
|
-
|
173
|
|
- update_prosody_modules
|
174
|
|
-
|
175
|
|
- if grep -Fxq "install_xmpp_main" $COMPLETION_FILE; then
|
176
|
|
- return
|
177
|
|
- fi
|
178
|
|
- apt-get -y install lua-sec lua-bitop
|
179
|
|
- apt-get -y install prosody prosody-modules mercurial
|
180
|
|
-
|
181
|
|
- if [ ! -d /etc/prosody ]; then
|
182
|
|
- echo $"ERROR: prosody does not appear to have installed. $CHECK_MESSAGE"
|
183
|
|
- exit 52
|
184
|
|
- fi
|
185
|
|
-
|
186
|
|
- # obtain the prosody modules
|
187
|
|
- cd $INSTALL_DIR
|
188
|
|
- hg clone https://hg.prosody.im/prosody-modules/ prosody-modules
|
189
|
|
- if [ ! -d $INSTALL_DIR/prosody-modules/mod_onions ]; then
|
190
|
|
- echo $'mod_onions prosody module could not be found'
|
191
|
|
- exit 73254
|
192
|
|
- fi
|
193
|
|
-
|
194
|
|
- # install the onions module
|
195
|
|
- update_prosody_modules
|
196
|
|
- if [ ! -f /usr/lib/prosody/modules/mod_onions.lua ]; then
|
197
|
|
- echo $'mod_onions.lua could not be copied to the prosody modules directory'
|
198
|
|
- exit 63952
|
199
|
|
- fi
|
200
|
|
-
|
201
|
|
- # create a certificate
|
202
|
|
- if [ ! -f /etc/ssl/certs/xmpp.dhparam ]; then
|
203
|
|
- ${PROJECT_NAME}-addcert -h xmpp --dhkey $DH_KEYLENGTH
|
204
|
|
- check_certificates xmpp
|
205
|
|
- fi
|
206
|
|
- chown prosody:prosody /etc/ssl/private/xmpp.key
|
207
|
|
- chown prosody:prosody /etc/ssl/certs/xmpp.*
|
208
|
|
- cp -a /etc/prosody/conf.avail/example.com.cfg.lua /etc/prosody/conf.avail/xmpp.cfg.lua
|
209
|
|
-
|
210
|
|
- sed -i 's|/etc/prosody/certs/example.com.key|/etc/ssl/private/xmpp.key|g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
211
|
|
- sed -i 's|/etc/prosody/certs/example.com.crt|/etc/ssl/certs/xmpp.crt|g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
212
|
|
- if ! grep -q "xmpp.dhparam" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
213
|
|
- sed -i '/certificate =/a\ dhparam = "/etc/ssl/certs/xmpp.dhparam";' /etc/prosody/conf.avail/xmpp.cfg.lua
|
214
|
|
- fi
|
215
|
|
- if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
216
|
|
- sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/conf.avail/xmpp.cfg.lua
|
217
|
|
- fi
|
218
|
|
- if ! grep -q 'ciphers =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
219
|
|
- sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/conf.avail/xmpp.cfg.lua
|
220
|
|
- fi
|
221
|
|
- if ! grep -q 'depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
222
|
|
- sed -i '/certificate =/a\ depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua
|
223
|
|
- fi
|
224
|
|
- if ! grep -q 'curve =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
225
|
|
- sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/conf.avail/xmpp.cfg.lua
|
226
|
|
- fi
|
227
|
|
-
|
228
|
|
- sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/conf.avail/xmpp.cfg.lua
|
229
|
|
- sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
230
|
|
-
|
231
|
|
- if ! grep -q "modules_enabled" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
232
|
|
- echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
233
|
|
- echo 'modules_enabled = {' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
234
|
|
- echo ' "bosh"; -- Enable mod_bosh' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
235
|
|
- echo ' "tls"; -- Enable mod_tls' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
236
|
|
- echo ' "saslauth"; -- Enable mod_saslauth' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
237
|
|
- echo ' "onions"; -- Enable chat via onion service' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
238
|
|
- echo ' "mam"; -- Message archive management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
239
|
|
- echo ' "csi"; -- Client state indication' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
240
|
|
- echo ' "carbons"; -- Message carbons' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
241
|
|
- echo ' "smacks"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
242
|
|
- echo ' "smacks_offline"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
243
|
|
- echo ' "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
244
|
|
- echo ' "privacy"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
245
|
|
- echo ' "privacy_lists"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
246
|
|
- echo ' "blocking"; -- Blocking command' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
247
|
|
- echo ' "roster"; -- Roster versioning' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
248
|
|
- echo '}' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
249
|
|
- echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
250
|
|
- echo 'c2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
251
|
|
- echo 's2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
252
|
|
- echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
253
|
|
- fi
|
254
|
|
- ln -sf /etc/prosody/conf.avail/xmpp.cfg.lua /etc/prosody/conf.d/xmpp.cfg.lua
|
255
|
|
-
|
256
|
|
- sed -i 's|/etc/prosody/certs/localhost.key|/etc/ssl/private/xmpp.key|g' /etc/prosody/prosody.cfg.lua
|
257
|
|
- sed -i 's|/etc/prosody/certs/localhost.crt|/etc/ssl/certs/xmpp.crt|g' /etc/prosody/prosody.cfg.lua
|
258
|
|
- if ! grep -q "xmpp.dhparam" /etc/prosody/prosody.cfg.lua; then
|
259
|
|
- sed -i '/certificate =/a\ dhparam = "/etc/ssl/certs/xmpp.dhparam";' /etc/prosody/prosody.cfg.lua
|
260
|
|
- fi
|
261
|
|
- if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/prosody.cfg.lua; then
|
262
|
|
- sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/prosody.cfg.lua
|
263
|
|
- fi
|
264
|
|
- if ! grep -q 'ciphers =' /etc/prosody/prosody.cfg.lua; then
|
265
|
|
- sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/prosody.cfg.lua
|
266
|
|
- fi
|
267
|
|
- if ! grep -q 'depth = "1";' /etc/prosody/prosody.cfg.lua; then
|
268
|
|
- sed -i '/certificate =/a\ depth = "1";' /etc/prosody/prosody.cfg.lua
|
269
|
|
- fi
|
270
|
|
- if ! grep -q 'curve =' /etc/prosody/prosody.cfg.lua; then
|
271
|
|
- sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/prosody.cfg.lua
|
272
|
|
- fi
|
273
|
|
- sed -i 's/c2s_require_encryption = false/c2s_require_encryption = true/g' /etc/prosody/prosody.cfg.lua
|
274
|
|
- if ! grep -q "s2s_require_encryption" /etc/prosody/prosody.cfg.lua; then
|
275
|
|
- sed -i '/c2s_require_encryption/a\s2s_require_encryption = true' /etc/prosody/prosody.cfg.lua
|
276
|
|
- fi
|
277
|
|
- if ! grep -q "allow_unencrypted_plain_auth" /etc/prosody/prosody.cfg.lua; then
|
278
|
|
- echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
279
|
|
- fi
|
280
|
|
- sed -i 's/--"bosh";/"bosh";/g' /etc/prosody/prosody.cfg.lua
|
281
|
|
- sed -i 's/authentication = "internal_plain"/authentication = "internal_hashed"/g' /etc/prosody/prosody.cfg.lua
|
282
|
|
- sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/prosody.cfg.lua
|
283
|
|
- sed -i 's|key = "/etc/prosody/certs/example.com.key"|key = "/etc/ssl/private/xmpp.key"|g' /etc/prosody/prosody.cfg.lua
|
284
|
|
- sed -i 's|certificate = "/etc/prosody/certs/example.com.crt"|certificate = "/etc/ssl/certs/xmpp.crt"|g' /etc/prosody/prosody.cfg.lua
|
285
|
|
- sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/prosody.cfg.lua
|
286
|
|
-
|
287
|
|
- systemctl restart prosody
|
288
|
|
- touch /home/$MY_USERNAME/README
|
289
|
|
-
|
290
|
|
- if [ ! -d /var/lib/tor ]; then
|
291
|
|
- echo $'No Tor installation found. XMPP onion site cannot be configured.'
|
292
|
|
- exit 877367
|
293
|
|
- fi
|
294
|
|
- if ! grep -q "hidden_service_xmpp" /etc/tor/torrc; then
|
295
|
|
- echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/' >> /etc/tor/torrc
|
296
|
|
- echo "HiddenServicePort 5222 127.0.0.1:5222" >> /etc/tor/torrc
|
297
|
|
- echo "HiddenServicePort 5269 127.0.0.1:5269" >> /etc/tor/torrc
|
298
|
|
- echo $'Added onion site for XMPP chat'
|
299
|
|
- fi
|
300
|
|
-
|
301
|
|
- systemctl restart tor
|
302
|
|
- wait_for_onion_service 'xmpp'
|
303
|
|
-
|
304
|
|
- if [ ! -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
|
305
|
|
- echo $'XMPP onion site hostname not found'
|
306
|
|
- exit 65349
|
307
|
|
- fi
|
308
|
|
- XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
|
309
|
|
- if ! grep -q "${XMPP_ONION_HOSTNAME}" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
310
|
|
- echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
311
|
|
- echo "VirtualHost \"${XMPP_ONION_HOSTNAME}\"" >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
312
|
|
- echo ' modules_enabled = { "onions" };' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
313
|
|
- fi
|
314
|
|
- if ! grep -q "XMPP onion domain" $COMPLETION_FILE; then
|
315
|
|
- echo "XMPP onion domain:${XMPP_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
316
|
|
- else
|
317
|
|
- sed -i "s|XMPP onion domain.*|XMPP onion domain:${XMPP_ONION_HOSTNAME}|g" $COMPLETION_FILE
|
318
|
|
- fi
|
319
|
|
-
|
320
|
|
- if ! grep -q "Your XMPP password is" /home/$MY_USERNAME/README; then
|
321
|
|
- if [ ${#XMPP_PASSWORD} -lt 8 ]; then
|
322
|
|
- if [ -f $IMAGE_PASSWORD_FILE ]; then
|
323
|
|
- XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
|
324
|
|
- else
|
325
|
|
- XMPP_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
|
326
|
|
- fi
|
327
|
|
- fi
|
328
|
|
- prosodyctl register $MY_USERNAME $DEFAULT_DOMAIN_NAME $XMPP_PASSWORD
|
329
|
|
- echo '' >> /home/$MY_USERNAME/README
|
330
|
|
- echo '' >> /home/$MY_USERNAME/README
|
331
|
|
- echo $'XMPP' >> /home/$MY_USERNAME/README
|
332
|
|
- echo '====' >> /home/$MY_USERNAME/README
|
333
|
|
- echo $"XMPP onion domain: ${XMPP_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
334
|
|
- echo $"Your XMPP password is: $XMPP_PASSWORD" >> /home/$MY_USERNAME/README
|
335
|
|
- echo $'You can change it with: ' >> /home/$MY_USERNAME/README
|
336
|
|
- echo '' >> /home/$MY_USERNAME/README
|
337
|
|
- echo " prosodyctl passwd $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/README
|
338
|
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
339
|
|
- chmod 600 /home/$MY_USERNAME/README
|
340
|
|
- fi
|
341
|
|
-
|
342
|
|
- function_check configure_firewall_for_xmpp
|
343
|
|
- configure_firewall_for_xmpp
|
344
|
|
-
|
345
|
|
- echo 'install_xmpp_main' >> $COMPLETION_FILE
|
|
173
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
174
|
+ return
|
|
175
|
+ fi
|
|
176
|
+
|
|
177
|
+ update_prosody_modules
|
|
178
|
+
|
|
179
|
+ if grep -Fxq "install_xmpp_main" $COMPLETION_FILE; then
|
|
180
|
+ return
|
|
181
|
+ fi
|
|
182
|
+ apt-get -y install lua-sec lua-bitop
|
|
183
|
+ apt-get -y install prosody prosody-modules mercurial
|
|
184
|
+
|
|
185
|
+ if [ ! -d /etc/prosody ]; then
|
|
186
|
+ echo $"ERROR: prosody does not appear to have installed. $CHECK_MESSAGE"
|
|
187
|
+ exit 52
|
|
188
|
+ fi
|
|
189
|
+
|
|
190
|
+ # obtain the prosody modules
|
|
191
|
+ cd $INSTALL_DIR
|
|
192
|
+ hg clone https://hg.prosody.im/prosody-modules/ prosody-modules
|
|
193
|
+ if [ ! -d $INSTALL_DIR/prosody-modules/mod_onions ]; then
|
|
194
|
+ echo $'mod_onions prosody module could not be found'
|
|
195
|
+ exit 73254
|
|
196
|
+ fi
|
|
197
|
+
|
|
198
|
+ # install the onions module
|
|
199
|
+ update_prosody_modules
|
|
200
|
+ if [ ! -f /usr/lib/prosody/modules/mod_onions.lua ]; then
|
|
201
|
+ echo $'mod_onions.lua could not be copied to the prosody modules directory'
|
|
202
|
+ exit 63952
|
|
203
|
+ fi
|
|
204
|
+
|
|
205
|
+ # create a certificate
|
|
206
|
+ if [ ! -f /etc/ssl/certs/xmpp.dhparam ]; then
|
|
207
|
+ ${PROJECT_NAME}-addcert -h xmpp --dhkey $DH_KEYLENGTH
|
|
208
|
+ check_certificates xmpp
|
|
209
|
+ fi
|
|
210
|
+ chown prosody:prosody /etc/ssl/private/xmpp.key
|
|
211
|
+ chown prosody:prosody /etc/ssl/certs/xmpp.*
|
|
212
|
+ cp -a /etc/prosody/conf.avail/example.com.cfg.lua /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
213
|
+
|
|
214
|
+ sed -i 's|/etc/prosody/certs/example.com.key|/etc/ssl/private/xmpp.key|g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
215
|
+ sed -i 's|/etc/prosody/certs/example.com.crt|/etc/ssl/certs/xmpp.crt|g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
216
|
+ if ! grep -q "xmpp.dhparam" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
217
|
+ sed -i '/certificate =/a\ dhparam = "/etc/ssl/certs/xmpp.dhparam";' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
218
|
+ fi
|
|
219
|
+ if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
220
|
+ sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
221
|
+ fi
|
|
222
|
+ if ! grep -q 'ciphers =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
223
|
+ sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
224
|
+ fi
|
|
225
|
+ if ! grep -q 'depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
226
|
+ sed -i '/certificate =/a\ depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
227
|
+ fi
|
|
228
|
+ if ! grep -q 'curve =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
229
|
+ sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
230
|
+ fi
|
|
231
|
+
|
|
232
|
+ sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
233
|
+ sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
234
|
+
|
|
235
|
+ if ! grep -q "modules_enabled" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
236
|
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
237
|
+ echo 'modules_enabled = {' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
238
|
+ echo ' "bosh"; -- Enable mod_bosh' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
239
|
+ echo ' "tls"; -- Enable mod_tls' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
240
|
+ echo ' "saslauth"; -- Enable mod_saslauth' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
241
|
+ echo ' "onions"; -- Enable chat via onion service' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
242
|
+ echo ' "mam"; -- Message archive management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
243
|
+ echo ' "csi"; -- Client state indication' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
244
|
+ echo ' "carbons"; -- Message carbons' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
245
|
+ echo ' "smacks"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
246
|
+ echo ' "smacks_offline"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
247
|
+ echo ' "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
248
|
+ echo ' "privacy"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
249
|
+ echo ' "privacy_lists"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
250
|
+ echo ' "blocking"; -- Blocking command' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
251
|
+ echo ' "roster"; -- Roster versioning' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
252
|
+ echo '}' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
253
|
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
254
|
+ echo 'c2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
255
|
+ echo 's2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
256
|
+ echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
257
|
+ fi
|
|
258
|
+ ln -sf /etc/prosody/conf.avail/xmpp.cfg.lua /etc/prosody/conf.d/xmpp.cfg.lua
|
|
259
|
+
|
|
260
|
+ sed -i 's|/etc/prosody/certs/localhost.key|/etc/ssl/private/xmpp.key|g' /etc/prosody/prosody.cfg.lua
|
|
261
|
+ sed -i 's|/etc/prosody/certs/localhost.crt|/etc/ssl/certs/xmpp.crt|g' /etc/prosody/prosody.cfg.lua
|
|
262
|
+ if ! grep -q "xmpp.dhparam" /etc/prosody/prosody.cfg.lua; then
|
|
263
|
+ sed -i '/certificate =/a\ dhparam = "/etc/ssl/certs/xmpp.dhparam";' /etc/prosody/prosody.cfg.lua
|
|
264
|
+ fi
|
|
265
|
+ if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/prosody.cfg.lua; then
|
|
266
|
+ sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/prosody.cfg.lua
|
|
267
|
+ fi
|
|
268
|
+ if ! grep -q 'ciphers =' /etc/prosody/prosody.cfg.lua; then
|
|
269
|
+ sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/prosody.cfg.lua
|
|
270
|
+ fi
|
|
271
|
+ if ! grep -q 'depth = "1";' /etc/prosody/prosody.cfg.lua; then
|
|
272
|
+ sed -i '/certificate =/a\ depth = "1";' /etc/prosody/prosody.cfg.lua
|
|
273
|
+ fi
|
|
274
|
+ if ! grep -q 'curve =' /etc/prosody/prosody.cfg.lua; then
|
|
275
|
+ sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/prosody.cfg.lua
|
|
276
|
+ fi
|
|
277
|
+ sed -i 's/c2s_require_encryption = false/c2s_require_encryption = true/g' /etc/prosody/prosody.cfg.lua
|
|
278
|
+ if ! grep -q "s2s_require_encryption" /etc/prosody/prosody.cfg.lua; then
|
|
279
|
+ sed -i '/c2s_require_encryption/a\s2s_require_encryption = true' /etc/prosody/prosody.cfg.lua
|
|
280
|
+ fi
|
|
281
|
+ if ! grep -q "allow_unencrypted_plain_auth" /etc/prosody/prosody.cfg.lua; then
|
|
282
|
+ echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
283
|
+ fi
|
|
284
|
+ sed -i 's/--"bosh";/"bosh";/g' /etc/prosody/prosody.cfg.lua
|
|
285
|
+ sed -i 's/authentication = "internal_plain"/authentication = "internal_hashed"/g' /etc/prosody/prosody.cfg.lua
|
|
286
|
+ sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/prosody.cfg.lua
|
|
287
|
+ sed -i 's|key = "/etc/prosody/certs/example.com.key"|key = "/etc/ssl/private/xmpp.key"|g' /etc/prosody/prosody.cfg.lua
|
|
288
|
+ sed -i 's|certificate = "/etc/prosody/certs/example.com.crt"|certificate = "/etc/ssl/certs/xmpp.crt"|g' /etc/prosody/prosody.cfg.lua
|
|
289
|
+ sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/prosody.cfg.lua
|
|
290
|
+
|
|
291
|
+ systemctl restart prosody
|
|
292
|
+ touch /home/$MY_USERNAME/README
|
|
293
|
+
|
|
294
|
+ if [ ! -d /var/lib/tor ]; then
|
|
295
|
+ echo $'No Tor installation found. XMPP onion site cannot be configured.'
|
|
296
|
+ exit 877367
|
|
297
|
+ fi
|
|
298
|
+ if ! grep -q "hidden_service_xmpp" /etc/tor/torrc; then
|
|
299
|
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/' >> /etc/tor/torrc
|
|
300
|
+ echo "HiddenServicePort 5222 127.0.0.1:5222" >> /etc/tor/torrc
|
|
301
|
+ echo "HiddenServicePort 5269 127.0.0.1:5269" >> /etc/tor/torrc
|
|
302
|
+ echo $'Added onion site for XMPP chat'
|
|
303
|
+ fi
|
|
304
|
+
|
|
305
|
+ systemctl restart tor
|
|
306
|
+ wait_for_onion_service 'xmpp'
|
|
307
|
+
|
|
308
|
+ if [ ! -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
|
|
309
|
+ echo $'XMPP onion site hostname not found'
|
|
310
|
+ exit 65349
|
|
311
|
+ fi
|
|
312
|
+ XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
|
|
313
|
+ if ! grep -q "${XMPP_ONION_HOSTNAME}" /etc/prosody/conf.avail/xmpp.cfg.lua; then
|
|
314
|
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
315
|
+ echo "VirtualHost \"${XMPP_ONION_HOSTNAME}\"" >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
316
|
+ echo ' modules_enabled = { "onions" };' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
317
|
+ fi
|
|
318
|
+ if ! grep -q "XMPP onion domain" $COMPLETION_FILE; then
|
|
319
|
+ echo "XMPP onion domain:${XMPP_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
|
320
|
+ else
|
|
321
|
+ sed -i "s|XMPP onion domain.*|XMPP onion domain:${XMPP_ONION_HOSTNAME}|g" $COMPLETION_FILE
|
|
322
|
+ fi
|
|
323
|
+
|
|
324
|
+ if ! grep -q "Your XMPP password is" /home/$MY_USERNAME/README; then
|
|
325
|
+ if [ ${#XMPP_PASSWORD} -lt 8 ]; then
|
|
326
|
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
|
|
327
|
+ XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
|
|
328
|
+ else
|
|
329
|
+ XMPP_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
|
|
330
|
+ fi
|
|
331
|
+ fi
|
|
332
|
+ prosodyctl register $MY_USERNAME $DEFAULT_DOMAIN_NAME $XMPP_PASSWORD
|
|
333
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
334
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
335
|
+ echo $'XMPP' >> /home/$MY_USERNAME/README
|
|
336
|
+ echo '====' >> /home/$MY_USERNAME/README
|
|
337
|
+ echo $"XMPP onion domain: ${XMPP_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
|
338
|
+ echo $"Your XMPP password is: $XMPP_PASSWORD" >> /home/$MY_USERNAME/README
|
|
339
|
+ echo $'You can change it with: ' >> /home/$MY_USERNAME/README
|
|
340
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
341
|
+ echo " prosodyctl passwd $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/README
|
|
342
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
343
|
+ chmod 600 /home/$MY_USERNAME/README
|
|
344
|
+ fi
|
|
345
|
+
|
|
346
|
+ function_check configure_firewall_for_xmpp
|
|
347
|
+ configure_firewall_for_xmpp
|
|
348
|
+
|
|
349
|
+ echo 'install_xmpp_main' >> $COMPLETION_FILE
|
346
|
350
|
}
|
347
|
351
|
|
348
|
352
|
function install_xmpp_client {
|
349
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
350
|
|
- return
|
351
|
|
- fi
|
352
|
|
- if grep -Fxq "install_xmpp_client" $COMPLETION_FILE; then
|
353
|
|
- return
|
354
|
|
- fi
|
355
|
|
- apt-get -y install profanity
|
356
|
|
-
|
357
|
|
- XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
|
358
|
|
- XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
|
359
|
|
- if [ ! -d $XMPP_CLIENT_DIR ]; then
|
360
|
|
- mkdir -p $XMPP_CLIENT_DIR
|
361
|
|
- fi
|
362
|
|
-
|
363
|
|
- if [[ $ONION_ONLY == 'no' ]]; then
|
364
|
|
- echo "[${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}]" > $XMPP_CLIENT_ACCOUNTS
|
365
|
|
- echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
|
366
|
|
- echo "jid=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
|
367
|
|
- echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
|
368
|
|
- echo "muc.service=conference.${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
|
369
|
|
- echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
370
|
|
- echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
|
371
|
|
- echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
|
372
|
|
- echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
|
373
|
|
- echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
|
374
|
|
- echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
|
375
|
|
- echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
|
376
|
|
- echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
|
377
|
|
- if [ ${#XMPP_PASSWORD} -gt 2 ]; then
|
378
|
|
- echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
|
379
|
|
- fi
|
380
|
|
- fi
|
381
|
|
-
|
382
|
|
- if [ -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
|
383
|
|
- XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
|
384
|
|
- echo "[${MY_USERNAME}@${XMPP_ONION_HOSTNAME}]" >> $XMPP_CLIENT_ACCOUNTS
|
385
|
|
- if [[ $ONION_ONLY == 'no' ]]; then
|
386
|
|
- echo 'enabled=false' >> $XMPP_CLIENT_ACCOUNTS
|
387
|
|
- else
|
388
|
|
- echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
|
389
|
|
- fi
|
390
|
|
- echo "jid=${MY_USERNAME}@${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
391
|
|
- echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
|
392
|
|
- echo "muc.service=conference.${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
393
|
|
- echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
394
|
|
- echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
|
395
|
|
- echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
|
396
|
|
- echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
|
397
|
|
- echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
|
398
|
|
- echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
|
399
|
|
- echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
|
400
|
|
- echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
|
401
|
|
- if [ ${#XMPP_PASSWORD} -gt 2 ]; then
|
402
|
|
- echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
|
403
|
|
- fi
|
404
|
|
- fi
|
405
|
|
-
|
406
|
|
- if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
|
407
|
|
- mkdir /home/$MY_USERNAME/.config/profanity
|
408
|
|
- fi
|
409
|
|
- echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
|
410
|
|
- echo "account=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
|
411
|
|
-
|
412
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
|
413
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
|
414
|
|
-
|
415
|
|
- echo 'install_xmpp_client' >> $COMPLETION_FILE
|
|
353
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
354
|
+ return
|
|
355
|
+ fi
|
|
356
|
+ if grep -Fxq "install_xmpp_client" $COMPLETION_FILE; then
|
|
357
|
+ return
|
|
358
|
+ fi
|
|
359
|
+ apt-get -y install profanity
|
|
360
|
+
|
|
361
|
+ XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
|
|
362
|
+ XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
|
|
363
|
+ if [ ! -d $XMPP_CLIENT_DIR ]; then
|
|
364
|
+ mkdir -p $XMPP_CLIENT_DIR
|
|
365
|
+ fi
|
|
366
|
+
|
|
367
|
+ if [[ $ONION_ONLY == 'no' ]]; then
|
|
368
|
+ echo "[${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}]" > $XMPP_CLIENT_ACCOUNTS
|
|
369
|
+ echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
|
|
370
|
+ echo "jid=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
371
|
+ echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
|
|
372
|
+ echo "muc.service=conference.${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
373
|
+ echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
374
|
+ echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
|
|
375
|
+ echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
|
|
376
|
+ echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
377
|
+ echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
378
|
+ echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
379
|
+ echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
380
|
+ echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
381
|
+ if [ ${#XMPP_PASSWORD} -gt 2 ]; then
|
|
382
|
+ echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
|
|
383
|
+ fi
|
|
384
|
+ fi
|
|
385
|
+
|
|
386
|
+ if [ -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
|
|
387
|
+ XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
|
|
388
|
+ echo "[${MY_USERNAME}@${XMPP_ONION_HOSTNAME}]" >> $XMPP_CLIENT_ACCOUNTS
|
|
389
|
+ if [[ $ONION_ONLY == 'no' ]]; then
|
|
390
|
+ echo 'enabled=false' >> $XMPP_CLIENT_ACCOUNTS
|
|
391
|
+ else
|
|
392
|
+ echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
|
|
393
|
+ fi
|
|
394
|
+ echo "jid=${MY_USERNAME}@${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
395
|
+ echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
|
|
396
|
+ echo "muc.service=conference.${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
397
|
+ echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
|
398
|
+ echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
|
|
399
|
+ echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
|
|
400
|
+ echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
401
|
+ echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
402
|
+ echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
403
|
+ echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
404
|
+ echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
|
|
405
|
+ if [ ${#XMPP_PASSWORD} -gt 2 ]; then
|
|
406
|
+ echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
|
|
407
|
+ fi
|
|
408
|
+ fi
|
|
409
|
+
|
|
410
|
+ if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
|
|
411
|
+ mkdir /home/$MY_USERNAME/.config/profanity
|
|
412
|
+ fi
|
|
413
|
+ echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
|
|
414
|
+ echo "account=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
|
|
415
|
+
|
|
416
|
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
|
|
417
|
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
|
|
418
|
+
|
|
419
|
+ echo 'install_xmpp_client' >> $COMPLETION_FILE
|
416
|
420
|
}
|
417
|
421
|
|
418
|
422
|
function install_xmpp {
|
419
|
|
- if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
420
|
|
- return
|
421
|
|
- fi
|
422
|
|
- install_xmpp_main
|
423
|
|
- install_xmpp_client
|
424
|
|
- echo 'install_xmpp' >> $COMPLETION_FILE
|
|
423
|
+ if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
|
424
|
+ return
|
|
425
|
+ fi
|
|
426
|
+ install_xmpp_main
|
|
427
|
+ install_xmpp_client
|
|
428
|
+ echo 'install_xmpp' >> $COMPLETION_FILE
|
425
|
429
|
}
|
426
|
430
|
|
427
|
431
|
# NOTE: deliberately no exit 0
|