Sfoglia il codice sorgente

Deprecate smilodon

Bob Mottram 7 anni fa
parent
commit
8abeb56bea
1 ha cambiato i file con 0 aggiunte e 381 eliminazioni
  1. 0
    381
      src/freedombone-app-smilodon

+ 0
- 381
src/freedombone-app-smilodon Vedi File

@@ -1,381 +0,0 @@
1
-#!/bin/bash
2
-#
3
-# .---.                  .              .
4
-# |                      |              |
5
-# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
-# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
-# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
-#
9
-#                    Freedom in the Cloud
10
-#
11
-# Smilodon ActivityPub app
12
-#
13
-# License
14
-# =======
15
-#
16
-# Copyright (C) 2017 Bob Mottram <bob@freedombone.net>
17
-#
18
-# This program is free software: you can redistribute it and/or modify
19
-# it under the terms of the GNU Affero General Public License as published by
20
-# the Free Software Foundation, either version 3 of the License, or
21
-# (at your option) any later version.
22
-#
23
-# This program is distributed in the hope that it will be useful,
24
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
-# GNU Affero General Public License for more details.
27
-#
28
-# You should have received a copy of the GNU Affero General Public License
29
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
-
31
-VARIANTS=''
32
-
33
-IN_DEFAULT_INSTALL=0
34
-SHOW_ON_ABOUT=1
35
-SHOW_ICANN_ADDRESS_ON_ABOUT=0
36
-
37
-SMILODON_REPO="https://github.com/bashrc/smilodon"
38
-SMILODON_COMMIT='18c91b84737fbb1a106d3c495730ac3261aac335'
39
-SMILODON_ADMIN_PASSWORD=
40
-SMILODON_ONION_PORT=8054
41
-SMILODON_PATH=/etc/smilodon
42
-SMILODON_SECRET_KEY=
43
-
44
-smilodon_variables=(SMILODON_REPO
45
-                    SMILODON_ADMIN_PASSWORD
46
-                    USB_MOUNT
47
-                    SMILODON_SECRET_KEY
48
-                    MY_EMAIL_ADDRESS
49
-                    MY_USERNAME)
50
-
51
-function logging_on_smilodon {
52
-    echo -n ''
53
-}
54
-
55
-function logging_off_smilodon {
56
-    echo -n ''
57
-}
58
-
59
-function remove_user_smilodon {
60
-    remove_username="$1"
61
-}
62
-
63
-function add_user_smilodon {
64
-    new_username="$1"
65
-    new_user_password="$2"
66
-    echo '0'
67
-}
68
-
69
-function install_interactive_smilodon {
70
-    echo -n ''
71
-    APP_INSTALLED=1
72
-}
73
-
74
-function change_password_smilodon {
75
-    curr_username="$1"
76
-    new_user_password="$2"
77
-
78
-    #${PROJECT_NAME}-pass -u "$curr_username" -a smilodon -p "$new_user_password"
79
-}
80
-
81
-function smilodon_create_database {
82
-    if [ ! $SMILODON_ADMIN_PASSWORD ]; then
83
-        return
84
-    fi
85
-
86
-    function_check create_database_mongodb
87
-    create_database_mongodb smilodon "$SMILODON_ADMIN_PASSWORD" smilodon
88
-}
89
-
90
-function reconfigure_smilodon {
91
-    echo -n ''
92
-}
93
-
94
-function upgrade_smilodon {
95
-    CURR_SMILODON_COMMIT=$(get_completion_param "smilodon commit")
96
-    if [[ "$CURR_SMILODON_COMMIT" == "$SMILODON_COMMIT" ]]; then
97
-        return
98
-    fi
99
-
100
-    if [[ $(app_is_installed smilodon) == "1" ]]; then
101
-        systemctl stop smilodon
102
-        function_check set_repo_commit
103
-        set_repo_commit $SMILODON_PATH "smilodon commit" "$SMILODON_COMMIT" $SMILODON_REPO
104
-        chown -R smilodon:smilodon $SMILODON_PATH
105
-        systemctl start smilodon
106
-    fi
107
-
108
-}
109
-
110
-function backup_local_smilodon {
111
-    if [ ! -d $SMILODON_PATH ]; then
112
-        return
113
-    fi
114
-
115
-    systemctl stop smilodon
116
-
117
-    USE_MONGODB=1
118
-    function_check backup_database_to_usb
119
-    backup_database_to_usb smilodon
120
-
121
-    backup_directory_to_usb $SMILODON_PATH smilodon
122
-
123
-    systemctl start smilodon
124
-}
125
-
126
-function restore_local_smilodon {
127
-    temp_restore_dir=/root/tempsmilodon
128
-
129
-    systemctl stop smilodon
130
-
131
-    function_check smilodon_create_database
132
-    smilodon_create_database
133
-
134
-    USE_MONGODB=1
135
-    restore_database smilodon
136
-
137
-    if [ -d ${SMILODON_PATH} ]; then
138
-        if [ -d $temp_restore_dir${SMILODON_PATH} ]; then
139
-            if [ -d $temp_restore_dir${SMILODON_PATH} ]; then
140
-                rm -rf ${SMILODON_PATH}
141
-                mv $temp_restore_dir$SMILODON_PATH ${SMILODON_PATH}/
142
-            else
143
-                cp -r $temp_restore_dir/* ${SMILODON_PATH}/
144
-            fi
145
-            if [ ! "$?" = "0" ]; then
146
-                function_check backup_unmount_drive
147
-                backup_unmount_drive
148
-                systemctl start smilodon
149
-                exit 528823
150
-            fi
151
-            chown -R smilodon:smilodon ${SMILODON_PATH}
152
-        fi
153
-    fi
154
-
155
-    if [ -d $USB_MOUNT/backup/smilodon ]; then
156
-        chown -R smilodon:smilodon ${SMILODON_PATH}
157
-        if [ -d $temp_restore_dir ]; then
158
-            rm -rf $temp_restore_dir
159
-        fi
160
-    fi
161
-
162
-    systemctl start smilodon
163
-}
164
-
165
-function backup_remote_smilodon {
166
-    if [ -d $SMILODON_PATH ]; then
167
-        function_check suspend_site
168
-        suspend_site smilodon
169
-
170
-        systemctl stop smilodon
171
-
172
-        USE_MONGODB=1
173
-        function_check backup_database_to_friend
174
-        backup_database_to_friend smilodon
175
-
176
-        function_check backup_directory_to_friend
177
-        backup_directory_to_friend $SMILODON_PATH smilodon
178
-
179
-        systemctl start smilodon
180
-
181
-        function_check restart_site
182
-        restart_site
183
-    else
184
-        echo $"Smilodon domain specified but not found in $SMILODON_PATH"
185
-    fi
186
-}
187
-
188
-function restore_remote_smilodon {
189
-    temp_restore_dir=/root/tempsmilodon
190
-    if grep -q "smilodon domain" $COMPLETION_FILE; then
191
-        echo $"Restoring smilodon"
192
-        systemctl stop smilodon
193
-
194
-        function_check restore_database_from_friend
195
-
196
-        function_check smilodon_create_database
197
-        smilodon_create_database
198
-
199
-        USE_MONGODB=1
200
-        restore_database_from_friend smilodon
201
-
202
-        if [ -d $SMILODON_PATH ]; then
203
-            if [ -d $temp_restore_dir$SMILODON_PATH ]; then
204
-                rm -rf $SMILODON_PATH
205
-                mv $temp_restore_dir$SMILODON_PATH ${SMILODON_PATH}/
206
-            else
207
-                cp -r $temp_restore_dir/* ${SMILODON_PATH}/
208
-            fi
209
-            if [ ! "$?" = "0" ]; then
210
-                systemctl start smilodon
211
-                exit 6391643
212
-            fi
213
-        fi
214
-
215
-        if [ -d $SERVER_DIRECTORY/backup/smilodon ]; then
216
-            chown -R smilodon:smilodon ${SMILODON_PATH}
217
-        fi
218
-        if [ -d /root/tempsmilodon ]; then
219
-            rm -rf /root/tempsmilodon
220
-        fi
221
-
222
-        systemctl start smilodon
223
-
224
-        echo $"Restore of smilodon complete"
225
-    fi
226
-}
227
-
228
-function remove_smilodon {
229
-    nginx_dissite smilodon
230
-
231
-    systemctl stop smilodon
232
-    systemctl disable smilodon
233
-    rm /etc/systemd/system/smilodon.service
234
-
235
-    function_check remove_onion_service
236
-    remove_onion_service smilodon ${SMILODON_ONION_PORT}
237
-    if [ -f /etc/nginx/sites-available/smilodon ]; then
238
-        rm /etc/nginx/sites-available/smilodon
239
-    fi
240
-
241
-    groupdel -f smilodon
242
-    userdel -r smilodon
243
-
244
-    if [ -d $SMILODON_PATH ]; then
245
-        rm -rf $SMILODON_PATH
246
-    fi
247
-
248
-    function_check remove_mongodb_user
249
-    remove_mongodb_user smilodon
250
-
251
-    function_check drop_database_mongodb
252
-    drop_database_mongodb smilodon
253
-
254
-    function_check remove_mongodb
255
-    remove_mongodb smilodon
256
-
257
-    remove_completion_param install_smilodon
258
-    sed -i '/smilodon/d' $COMPLETION_FILE
259
-}
260
-
261
-function install_smilodon {
262
-    apt-get -yq install python3-pip
263
-
264
-    if [ -d $SMILODON_PATH ]; then
265
-        rm -rf $SMILODON_PATH
266
-    fi
267
-
268
-    if [ -d /repos/smilodon ]; then
269
-        mkdir $SMILODON_PATH
270
-        cp -r -p /repos/smilodon/. $SMILODON_PATH
271
-        cd $SMILODON_PATH
272
-        git pull
273
-    else
274
-        function_check git_clone
275
-        git_clone $SMILODON_REPO $SMILODON_PATH
276
-    fi
277
-
278
-    if [ ! -d $SMILODON_PATH ]; then
279
-        echo $'Could not clone smilodon repo'
280
-        exit 6784783
281
-    fi
282
-    cd $SMILODON_PATH
283
-    git checkout $SMILODON_COMMIT -b $SMILODON_COMMIT
284
-    set_completion_param "smilodon commit" "$SMILODON_COMMIT"
285
-
286
-    sed -i 's|https:|http:|g' $SMILODON_PATH/api/utilities.py
287
-
288
-    groupadd smilodon
289
-    useradd -c "Smilodon system account" -d $SMILODON_PATH -m -r -g smilodon smilodon
290
-
291
-    SMILODON_ONION_HOSTNAME=$(add_onion_service smilodon 80 ${SMILODON_ONION_PORT})
292
-
293
-    if [ ! $SMILODON_SECRET_KEY ]; then
294
-        SMILODON_SECRET_KEY="$(create_password 30)$(create_password 30)$(create_password 30)$(create_password 30)"
295
-    fi
296
-
297
-    if [ -f $IMAGE_PASSWORD_FILE ]; then
298
-        SMILODON_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
299
-    else
300
-        if [ ! $SMILODON_ADMIN_PASSWORD ]; then
301
-            SMILODON_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
302
-        fi
303
-    fi
304
-
305
-    export smilodon_domain_name=$SMILODON_ONION_HOSTNAME
306
-    export secret_key="$SMILODON_SECRET_KEY"
307
-    export mongodb_username='smilodon'
308
-    export mongodb_password="$SMILODON_ADMIN_PASSWORD"
309
-    export smilodon_admin_address=$MY_EMAIL_ADDRESS
310
-    export MAIL_SERVER='localhost'
311
-    export MAIL_PORT=25
312
-
313
-    function_check install_mongodb
314
-    install_mongodb smilodon
315
-
316
-    smilodon_create_database
317
-
318
-    pip3 install -r requirements.txt
319
-    if [ ! "$?" = "0" ]; then
320
-        echo $'Unable to install smilodon dependencies'
321
-        exit 87352835
322
-    fi
323
-
324
-    echo 'server {' > /etc/nginx/sites-available/smilodon
325
-    echo "  listen 127.0.0.1:${SMILODON_ONION_PORT} default_server;" >> /etc/nginx/sites-available/smilodon
326
-    echo "  server_name $SMILODON_ONION_HOSTNAME;" >> /etc/nginx/sites-available/smilodon
327
-    echo '' >> /etc/nginx/sites-available/smilodon
328
-    echo '  access_log /dev/null;' >> /etc/nginx/sites-available/smilodon
329
-    echo '  error_log /dev/null;' >> /etc/nginx/sites-available/smilodon
330
-    echo '' >> /etc/nginx/sites-available/smilodon
331
-    echo '  location / {' >> /etc/nginx/sites-available/smilodon
332
-    echo '      proxy_pass http://localhost:5000;' >> /etc/nginx/sites-available/smilodon
333
-    echo '  }' >> /etc/nginx/sites-available/smilodon
334
-    echo '}' >> /etc/nginx/sites-available/smilodon
335
-
336
-    nginx_ensite smilodon
337
-    systemctl enable mongodb
338
-    systemctl restart mongodb
339
-
340
-    chown -R smilodon:smilodon ${SMILODON_PATH}
341
-
342
-    echo '#!/bin/bash' > ${SMILODON_PATH}/run_smilodon.sh
343
-    echo "cd ${SMILODON_PATH}" >> ${SMILODON_PATH}/run_smilodon.sh
344
-    echo "export smilodon_domain_name=$SMILODON_ONION_HOSTNAME" >> ${SMILODON_PATH}/run_smilodon.sh
345
-    echo "export secret_key='$SMILODON_SECRET_KEY'" >> ${SMILODON_PATH}/run_smilodon.sh
346
-    echo "export mongodb_username='smilodon'" >> ${SMILODON_PATH}/run_smilodon.sh
347
-    echo "export mongodb_password='$SMILODON_ADMIN_PASSWORD'" >> ${SMILODON_PATH}/run_smilodon.sh
348
-    echo "export smilodon_admin_address=$MY_EMAIL_ADDRESS" >> ${SMILODON_PATH}/run_smilodon.sh
349
-    echo "export MAIL_SERVER='localhost'" >> ${SMILODON_PATH}/run_smilodon.sh
350
-    echo "export MAIL_PORT=25" >> ${SMILODON_PATH}/run_smilodon.sh
351
-    echo "export API_NAME=$SMILODON_ONION_HOSTNAME" >> ${SMILODON_PATH}/run_smilodon.sh
352
-    echo "python3 run.py" >> ${SMILODON_PATH}/run_smilodon.sh
353
-    chmod +x ${SMILODON_PATH}/run_smilodon.sh
354
-    chown smilodon:smilodon ${SMILODON_PATH}/run_smilodon.sh
355
-
356
-    echo '[Unit]' > /etc/systemd/system/smilodon.service
357
-    echo 'Description=Smilodon ActivityPub messenger' >> /etc/systemd/system/smilodon.service
358
-    echo 'After=network.target mongodb.service' >> /etc/systemd/system/smilodon.service
359
-    echo 'After=tor.service' >> /etc/systemd/system/smilodon.service
360
-    echo '' >> /etc/systemd/system/smilodon.service
361
-    echo '[Service]' >> /etc/systemd/system/smilodon.service
362
-    echo 'User=smilodon' >> /etc/systemd/system/smilodon.service
363
-    echo 'Group=smilodon' >> /etc/systemd/system/smilodon.service
364
-    echo "WorkingDirectory=${SMILODON_PATH}/" >> /etc/systemd/system/smilodon.service
365
-    echo "ExecStart=${SMILODON_PATH}/run_smilodon.sh" >> /etc/systemd/system/smilodon.service
366
-    echo 'Restart=on-failure' >> /etc/systemd/system/smilodon.service
367
-    echo 'RestartSec=10' >> /etc/systemd/system/smilodon.service
368
-    echo '' >> /etc/systemd/system/smilodon.service
369
-    echo '[Install]' >> /etc/systemd/system/smilodon.service
370
-    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/smilodon.service
371
-    systemctl enable smilodon
372
-    systemctl daemon-reload
373
-    systemctl start smilodon
374
-    systemctl restart nginx
375
-
376
-    ${PROJECT_NAME}-pass -u $MY_USERNAME -a smilodon -p "$SMILODON_ADMIN_PASSWORD"
377
-
378
-    APP_INSTALLED=1
379
-}
380
-
381
-# NOTE: deliberately no exit 0