Pārlūkot izejas kodu

Beginning of Let's Encrypt implementation

Bob Mottram 9 gadus atpakaļ
vecāks
revīzija
c26b60bd39
1 mainītis faili ar 71 papildinājumiem un 0 dzēšanām
  1. 71
    0
      src/freedombone

+ 71
- 0
src/freedombone Parādīt failu

2606
       echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2606
       echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2607
   fi
2607
   fi
2608
 
2608
 
2609
+  echo 'if [ -d /etc/letsencrypt ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2610
+  echo '    echo "Backing up Lets Encrypt settings"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2611
+  echo '    backup_directory_to_usb /etc/letsencrypt letsencrypt' >> /usr/bin/$BACKUP_SCRIPT_NAME
2612
+  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2613
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2614
+  
2609
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
2615
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
2610
       BACKUP_INCLUDES_DATABASES="yes"
2616
       BACKUP_INCLUDES_DATABASES="yes"
2611
       echo 'backup_database gnusocial' >> /usr/bin/$BACKUP_SCRIPT_NAME
2617
       echo 'backup_database gnusocial' >> /usr/bin/$BACKUP_SCRIPT_NAME
3211
 
3217
 
3212
   RESTORE_SUBDIR='home/'
3218
   RESTORE_SUBDIR='home/'
3213
   if [[ $BACKUP_TYPE != 'obnam' ]]; then
3219
   if [[ $BACKUP_TYPE != 'obnam' ]]; then
3220
+      RESTORE_SUBDIR='usb/backup/letsencrypt/'
3221
+  fi
3222
+  echo 'if [ -d $USB_MOUNT/backup/letsencrypt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3223
+  echo '    echo "Restoring Lets Encrypt settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3224
+  echo '    restore_directory_from_usb / letsencrypt' >> /usr/bin/$RESTORE_SCRIPT_NAME
3225
+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3226
+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3227
+
3228
+  RESTORE_SUBDIR='home/'
3229
+  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3214
       RESTORE_SUBDIR='usb/backup/mutt/'
3230
       RESTORE_SUBDIR='usb/backup/mutt/'
3215
   fi
3231
   fi
3216
   echo 'if [ -d $USB_MOUNT/backup/mutt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3232
   echo 'if [ -d $USB_MOUNT/backup/mutt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
4090
   backup_database_to_friend
4106
   backup_database_to_friend
4091
   echo '' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4107
   echo '' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4092
 
4108
 
4109
+  echo 'if [ -d /etc/letsencrypt ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4110
+  echo '    echo "Backing up Lets Encrypt settings"' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4111
+  echo '    backup_directory_to_friend /etc/letsencrypt letsencrypt' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4112
+  echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4113
+  echo '' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4114
+  
4093
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
4115
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
4094
       BACKUP_INCLUDES_DATABASES="yes"
4116
       BACKUP_INCLUDES_DATABASES="yes"
4095
       echo 'backup_database_to_friend gnusocial' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4117
       echo 'backup_database_to_friend gnusocial' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4770
 
4792
 
4771
   RESTORE_SUBDIR='home/'
4793
   RESTORE_SUBDIR='home/'
4772
   if [[ $BACKUP_TYPE != 'obnam' ]]; then
4794
   if [[ $BACKUP_TYPE != 'obnam' ]]; then
4795
+      RESTORE_SUBDIR='remoterestore/backup/letsencrypt/'
4796
+  fi
4797
+  echo 'if [ -d $SERVER_DIRECTORY/backup/letsencrypt ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4798
+  echo '    echo "Restoring Lets Encrypt settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4799
+  echo '    restore_directory_from_friend / letsencrypt' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4800
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4801
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4802
+
4803
+  RESTORE_SUBDIR='home/'
4804
+  if [[ $BACKUP_TYPE != 'obnam' ]]; then
4773
       RESTORE_SUBDIR='remoterestore/backup/mutt/'
4805
       RESTORE_SUBDIR='remoterestore/backup/mutt/'
4774
   fi
4806
   fi
4775
   echo 'for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4807
   echo 'for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
7920
   echo 'install_web_server' >> $COMPLETION_FILE
7952
   echo 'install_web_server' >> $COMPLETION_FILE
7921
 }
7953
 }
7922
 
7954
 
7955
+function install_letsencrypt {
7956
+  if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
7957
+      return
7958
+  fi
7959
+  if grep -Fxq "install_letsencrypt" $COMPLETION_FILE; then
7960
+      return
7961
+  fi
7962
+  #apt-get -y install python-pip git
7963
+  #pip install -U setuptools
7964
+  #pip install --upgrade cffi
7965
+  cd $INSTALL_DIR
7966
+
7967
+  # This is experimental developer preview and I hope at some stage
7968
+  # there will be a debian package for it.
7969
+  
7970
+  # obtain the repo
7971
+  if [ ! -d $INSTALL_DIR/letsencrypt ]; then
7972
+      git clone https://github.com/letsencrypt/letsencrypt
7973
+      if [ ! -d $INSTALL_DIR/letsencrypt ]; then
7974
+          exit 76283
7975
+      fi
7976
+  else
7977
+      cd $INSTALL_DIR/letsencrypt
7978
+      git stash
7979
+      git pull
7980
+  fi
7981
+
7982
+  cd $INSTALL_DIR/letsencrypt
7983
+  # TODO this requires user interaction - is there a non-interactive mode?
7984
+  ./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory certonly
7985
+  if [ ! "$?" = "0" ]; then
7986
+      echo 'Failed to install letsencrypt'
7987
+      exit 63216      
7988
+  fi
7989
+  
7990
+  echo 'install_letsencrypt' >> $COMPLETION_FILE
7991
+}
7992
+
7923
 function configure_php {
7993
 function configure_php {
7924
   sed -i "s/memory_limit = 128M/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/fpm/php.ini
7994
   sed -i "s/memory_limit = 128M/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/fpm/php.ini
7925
   sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
7995
   sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
11116
 import_email
11186
 import_email
11117
 script_for_attaching_usb_drive
11187
 script_for_attaching_usb_drive
11118
 install_web_server
11188
 install_web_server
11189
+#install_letsencrypt
11119
 configure_firewall_for_web_server
11190
 configure_firewall_for_web_server
11120
 install_owncloud
11191
 install_owncloud
11121
 install_owncloud_music_app
11192
 install_owncloud_music_app