Ver código fonte

Get radicale from tarball

Bob Mottram 8 anos atrás
pai
commit
f72c1550a1
1 arquivos alterados com 83 adições e 87 exclusões
  1. 83
    87
      src/freedombone-app-radicale

+ 83
- 87
src/freedombone-app-radicale Ver arquivo

@@ -36,6 +36,8 @@ VARIANTS='full full-vim'
36 36
 IN_DEFAULT_INSTALL=1
37 37
 SHOW_ON_ABOUT=1
38 38
 
39
+RADICALE_VERSION='1.1.1'
40
+RADICALE_HASH='e2c9812913c464ab88ae1f66b29e81f87a4cc6ee1c94d167b33508c530dab4b0'
39 41
 RADICALE_PASSWORD=
40 42
 RADICALE_ONION_PORT=8106
41 43
 RADICALE_PORT=5232
@@ -83,12 +85,7 @@ function reconfigure_radicale {
83 85
 }
84 86
 
85 87
 function upgrade_radicale {
86
-    if [ -f /etc/init.d/radicale ]; then
87
-        systemctl stop radicale
88
-        rm /etc/init.d/radicale
89
-        systemctl daemon-reload
90
-        systemctl start radicale
91
-    fi
88
+    echo -n ''
92 89
 }
93 90
 
94 91
 function backup_local_radicale {
@@ -98,6 +95,12 @@ function backup_local_radicale {
98 95
         function_check backup_directory_to_usb
99 96
         backup_directory_to_usb $source_directory $dest_directory
100 97
     fi
98
+    source_directory=/var/www/radicale/collections
99
+    if [ -d $source_directory ]; then
100
+        dest_directory=radicalecollections
101
+        function_check backup_directory_to_usb
102
+        backup_directory_to_usb $source_directory $dest_directory
103
+    fi
101 104
 }
102 105
 
103 106
 function restore_local_radicale {
@@ -112,6 +115,18 @@ function restore_local_radicale {
112 115
             exit 46872
113 116
         fi
114 117
         rm -rf $temp_restore_dir
118
+
119
+        temp_restore_dir=/root/tempradicalecollections
120
+        restore_directory_from_usb $temp_restore_dir radicalecollections
121
+        cp -r $temp_restore_dir/var/www/radicale/collections/* /var/www/radicale/collections
122
+        if [ ! "$?" = "0" ]; then
123
+            function_check backup_unmount_drive
124
+            backup_unmount_drive
125
+            exit 367363
126
+        fi
127
+        rm -rf $temp_restore_dir
128
+        chown -R www-data:www-data /var/www/radicale
129
+
115 130
         systemctl restart radicale
116 131
     fi
117 132
 }
@@ -120,6 +135,7 @@ function backup_remote_radicale {
120 135
     if [ -d ${RADICALE_DIRECTORY} ]; then
121 136
         echo $"Backing up the radicale settings"
122 137
         backup_directory_to_friend ${RADICALE_DIRECTORY} radicale
138
+        backup_directory_to_friend /var/www/radicale/collections radicalecollections
123 139
         echo $"Backup of radicale settings complete"
124 140
     fi
125 141
 }
@@ -131,26 +147,21 @@ function restore_remote_radicale {
131 147
         restore_directory_from_friend $temp_restore_dir radicale
132 148
         cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
133 149
         if [ ! "$?" = "0" ]; then
134
-            exit 463735
150
+            exit 236746
135 151
         fi
136 152
         rm -rf $temp_restore_dir
137
-        systemctl restart radicale
138
-    fi
139
-}
140 153
 
141
-function configure_firewall_for_radicale {
142
-    if [ ! -d ${RADICALE_DIRECTORY} ]; then
143
-        return
144
-    fi
145
-    if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
146
-        # docker does its own firewalling
147
-        return
148
-    fi
149
-    if [[ $ONION_ONLY != "no" ]]; then
150
-        return
154
+        temp_restore_dir=/root/tempradicalecollections
155
+        restore_directory_from_friend $temp_restore_dir radicalecollections
156
+        cp -r $temp_restore_dir/var/www/radicale/collections/* /var/www/radicale/collections
157
+        if [ ! "$?" = "0" ]; then
158
+            exit 3674284
159
+        fi
160
+        rm -rf $temp_restore_dir
161
+        chown -R www-data:www-data /var/www/radicale
162
+
163
+        systemctl restart radicale
151 164
     fi
152
-    firewall_add radicale ${RADICALE_PORT} tcp
153
-    mark_completed $FUNCNAME
154 165
 }
155 166
 
156 167
 function remove_radicale {
@@ -205,6 +216,9 @@ function install_radicale {
205 216
         fi
206 217
     fi
207 218
 
219
+    apt-get -yq remove --purge radicale python-radicale
220
+
221
+    # create directories
208 222
     if [ ! -d /var/log/radicale ]; then
209 223
         mkdir /var/log/radicale
210 224
     fi
@@ -213,22 +227,44 @@ function install_radicale {
213 227
     fi
214 228
     chown -R www-data:www-data /var/log/radicale
215 229
 
216
-    apt-get -yq install python-radicale uwsgi uwsgi-plugin-python radicale apache2-utils
230
+    apt-get -yq install apache2-utils
217 231
 
218
-    if [ ! -d ${RADICALE_DIRECTORY} ]; then
219
-        echo $"ERROR: radicale does not appear to have installed"
220
-        exit 46372
232
+    if [ ! -d /var/www/radicale ]; then
233
+        mkdir -p /var/www/radicale
221 234
     fi
222
-    systemctl stop radicale
223
-    if [ -f /etc/init.d/radicale ]; then
224
-        rm /etc/init.d/radicale
235
+
236
+    # get the source
237
+    cd /var/www/radicale
238
+    wget http://pypi.python.org/packages/source/R/Radicale/Radicale-${RADICALE_VERSION}.tar.gz
239
+
240
+    # check the hash
241
+    hash=$(sha256sum Radicale-${RADICALE_VERSION}.tar.gz | awk -F ' ' '{print $1}')
242
+    if [[ "$hash" != "$RADICALE_HASH" ]]; then
243
+        echo $'radicale hash does not match'
244
+        exit 638532
245
+    fi
246
+
247
+    tar -xzf Radicale-${RADICALE_VERSION}.tar.gz
248
+    if [ ! -d Radicale-${RADICALE_VERSION} ]; then
249
+        exit 623252
250
+    fi
251
+    rm Radicale-${RADICALE_VERSION}.tar.gz
252
+    cd Radicale-${RADICALE_VERSION}
253
+    python setup.py install
254
+    if [ ! -f /usr/local/bin/radicale ]; then
255
+        echo $'Radicale did not install'
256
+        exit 7283554
225 257
     fi
226 258
 
227
-    if [ ! -d ${RADICALE_DIRECTORY}/collections ]; then
228
-        mkdir -p ${RADICALE_DIRECTORY}/collections
259
+    if [ ! -d ${RADICALE_DIRECTORY} ]; then
260
+        mkdir ${RADICALE_DIRECTORY}
261
+    fi
262
+    if [ ! -d /var/www/radicale/collections ]; then
263
+        mkdir -p /var/www/radicale/collections
229 264
     fi
230
-    chown www-data:www-data ${RADICALE_DIRECTORY}/collections
265
+    chown -R www-data:www-data /var/www/radicale
231 266
 
267
+    # create the configuration
232 268
     echo '[server]' >  ${RADICALE_DIRECTORY}/config
233 269
     echo 'hosts=127.0.0.1:52322' >> ${RADICALE_DIRECTORY}/config
234 270
     echo 'ssl = False' >> ${RADICALE_DIRECTORY}/config
@@ -244,8 +280,9 @@ function install_radicale {
244 280
     echo '' >> ${RADICALE_DIRECTORY}/config
245 281
     echo '[storage]' >> ${RADICALE_DIRECTORY}/config
246 282
     echo 'type = filesystem' >> ${RADICALE_DIRECTORY}/config
247
-    echo "filesystem_folder = ${RADICALE_DIRECTORY}/collections" >> ${RADICALE_DIRECTORY}/config
283
+    echo "filesystem_folder = /var/www/radicale/collections" >> ${RADICALE_DIRECTORY}/config
248 284
 
285
+    # create an admin password
249 286
     if [ ${#RADICALE_PASSWORD} -lt 8 ]; then
250 287
         if [ -f $IMAGE_PASSWORD_FILE ]; then
251 288
             RADICALE_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
@@ -255,53 +292,15 @@ function install_radicale {
255 292
     fi
256 293
     add_user_radicale "$MY_USERNAME" "$RADICALE_PASSWORD"
257 294
 
258
-    if [ ! -f /var/www/radicale ]; then
259
-        mkdir /var/www/radicale
260
-    fi
261
-    #echo 'import radicale' > /var/www/radicale/radicale.py
262
-    #echo 'radicale.log.start()' >> /var/www/radicale/radicale.py
263
-    #echo 'application = radicale.Application()' >> /var/www/radicale/radicale.py
264
-
265
-    #echo '[uwsgi]' > /var/www/radicale/uwsgi.ini
266
-    #echo 'plugins = python' >> /var/www/radicale/uwsgi.ini
267
-    #echo 'socket = /var/run/uwsgi/radicale.sock' >> /var/www/radicale/uwsgi.ini
268
-    #echo 'chmod-socket = 660' >> /var/www/radicale/uwsgi.ini
269
-    #echo '' >> /var/www/radicale/uwsgi.ini
270
-    #echo 'wsgi-file = /var/www/radicale/radicale.py' >> /var/www/radicale/uwsgi.ini
271
-    #echo 'master' >> /var/www/radicale/uwsgi.ini
272
-    #echo 'workers = 1' >> /var/www/radicale/uwsgi.ini
273
-    #echo 'max-requests = 100' >> /var/www/radicale/uwsgi.ini
274
-    #echo 'harakiri = 30' >> /var/www/radicale/uwsgi.ini
275
-    #echo 'die-on-term' >> /var/www/radicale/uwsgi.ini
276
-
277
-    #echo '#!/bin/sh' > /usr/local/bin/uwsgi_rundir.sh
278
-    #echo 'mkdir -p /var/run/uwsgi' >> /usr/local/bin/uwsgi_rundir.sh
279
-    #echo 'chown www-data:www-data /var/run/uwsgi' >> /usr/local/bin/uwsgi_rundir.sh
280
-    #chmod +x /usr/local/bin/uwsgi_rundir.sh
281
-
282
-    #echo '[Unit]' > /etc/systemd/system/uwsgi_rundir.service
283
-    #echo 'Description=UWSGI socket directory' >> /etc/systemd/system/uwsgi_rundir.service
284
-    #echo 'After=network.target' >> /etc/systemd/system/uwsgi_rundir.service
285
-    #echo '' >> /etc/systemd/system/uwsgi_rundir.service
286
-    #echo '[Service]' >> /etc/systemd/system/uwsgi_rundir.service
287
-    #echo 'Type=simple' >> /etc/systemd/system/uwsgi_rundir.service
288
-    #echo 'User=root' >> /etc/systemd/system/uwsgi_rundir.service
289
-    #echo 'ExecStart=/usr/local/bin/uwsgi_rundir.sh' >> /etc/systemd/system/uwsgi_rundir.service
290
-    #echo '' >> /etc/systemd/system/uwsgi_rundir.service
291
-    #echo '[Install]' >> /etc/systemd/system/uwsgi_rundir.service
292
-    #echo 'WantedBy=multi-user.target' >> /etc/systemd/system/uwsgi_rundir.service
293
-    #systemctl enable uwsgi_rundir
294
-
295 295
     echo '[Unit]' > /etc/systemd/system/radicale.service
296 296
     echo 'Description=Radicale CalDAV Server' >> /etc/systemd/system/radicale.service
297 297
     echo 'After=network.target' >> /etc/systemd/system/radicale.service
298
-    #echo 'Requires=uwsgi_rundir.service' >> /etc/systemd/system/radicale.service
299 298
     echo '' >> /etc/systemd/system/radicale.service
300 299
     echo '[Service]' >> /etc/systemd/system/radicale.service
301 300
     echo 'Type=simple' >> /etc/systemd/system/radicale.service
302 301
     echo 'User=www-data' >> /etc/systemd/system/radicale.service
303 302
     echo 'Group=www-data' >> /etc/systemd/system/radicale.service
304
-    echo "ExecStart=/usr/bin/radicale --config ${RADICALE_DIRECTORY}/config" >> /etc/systemd/system/radicale.service
303
+    echo "ExecStart=/usr/local/bin/radicale --config ${RADICALE_DIRECTORY}/config" >> /etc/systemd/system/radicale.service
305 304
     echo '' >> /etc/systemd/system/radicale.service
306 305
     echo '[Install]' >> /etc/systemd/system/radicale.service
307 306
     echo 'WantedBy=multi-user.target' >> /etc/systemd/system/radicale.service
@@ -327,9 +326,9 @@ function install_radicale {
327 326
         echo '    error_log /var/log/radicale/radicale.log warn;' >> /etc/nginx/sites-available/radicale
328 327
         echo '' >> /etc/nginx/sites-available/radicale
329 328
         echo '    location / {' >> /etc/nginx/sites-available/radicale
329
+        echo '        auth basic "Radicale";' >> /etc/nginx/sites-available/radicale
330
+        echo "        auth basic user file ${RADICALE_DIRECTORY}/users;" >> /etc/nginx/sites-available/radicale
330 331
         echo '        proxy_pass http://localhost:52322;' >> /etc/nginx/sites-available/radicale
331
-        #echo '        uwsgi_pass unix:/var/run/uwsgi/radicale.sock;' >> /etc/nginx/sites-available/radicale
332
-        #echo '        include uwsgi_params;' >> /etc/nginx/sites-available/radicale
333 332
         echo '    }' >> /etc/nginx/sites-available/radicale
334 333
         echo '}' >> /etc/nginx/sites-available/radicale
335 334
         echo '' >> /etc/nginx/sites-available/radicale
@@ -345,12 +344,20 @@ function install_radicale {
345 344
     echo '    error_log /var/log/radicale/radicale.log warn;' >> /etc/nginx/sites-available/radicale
346 345
     echo '' >> /etc/nginx/sites-available/radicale
347 346
     echo '    location / {' >> /etc/nginx/sites-available/radicale
347
+    echo '        auth basic "Radicale";' >> /etc/nginx/sites-available/radicale
348
+    echo "        auth basic user file ${RADICALE_DIRECTORY}/users;" >> /etc/nginx/sites-available/radicale
348 349
     echo '        proxy_pass http://localhost:52322;' >> /etc/nginx/sites-available/radicale
349
-    #echo '        uwsgi_pass unix:/var/run/uwsgi/radicale.sock;' >> /etc/nginx/sites-available/radicale
350
-    #echo '        include uwsgi_params;' >> /etc/nginx/sites-available/radicale
351 350
     echo '    }' >> /etc/nginx/sites-available/radicale
352 351
     echo '}' >> /etc/nginx/sites-available/radicale
353 352
 
353
+    # create a certificate
354
+    if [ ! -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
355
+        if [ ! -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.crt ]; then
356
+            ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --dhkey ${DH_KEYLENGTH}
357
+            check_certificates $DEFAULT_DOMAIN_NAME
358
+        fi
359
+    fi
360
+
354 361
     if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
355 362
         sed -i "s|radicale.crt|${DEFAULT_DOMAIN_NAME}.pem|g" /etc/nginx/sites-available/radicale
356 363
         sed -i "s|radicale.pem|${DEFAULT_DOMAIN_NAME}.pem|g" /etc/nginx/sites-available/radicale
@@ -358,14 +365,6 @@ function install_radicale {
358 365
     sed -i "s|radicale.key|${DEFAULT_DOMAIN_NAME}.key|g" /etc/nginx/sites-available/radicale
359 366
     sed -i "s|radicale.dhparam|${DEFAULT_DOMAIN_NAME}.dhparam|g" /etc/nginx/sites-available/radicale
360 367
 
361
-    # create a certificate
362
-    #if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
363
-    #    if [[ "$(cert_exists $DEFAULT_DOMAIN_NAME)" == "0" ]]; then
364
-    #        ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --dhkey ${DH_KEYLENGTH}
365
-    #        check_certificates $DEFAULT_DOMAIN_NAME
366
-    #    fi
367
-    #fi
368
-
369 368
     update_default_domain
370 369
 
371 370
     nginx_ensite radicale
@@ -385,9 +384,6 @@ function install_radicale {
385 384
         sed -i "s|Your Radicale password is.*|Your Radicale password is: ${RADICALE_PASSWORD}|g" /home/$MY_USERNAME/README
386 385
     fi
387 386
 
388
-    function_check configure_firewall_for_radicale
389
-    configure_firewall_for_radicale
390
-
391 387
     APP_INSTALLED=1
392 388
 }
393 389