浏览代码

Moving to inadyn

Bob Mottram 10 年前
父节点
当前提交
ba0f5d24e8
共有 1 个文件被更改,包括 87 次插入80 次删除
  1. 87
    80
      install-freedombone.sh

+ 87
- 80
install-freedombone.sh 查看文件

@@ -106,6 +106,13 @@ CONFIGURATION_FILE="freedombone.cfg"
106 106
 
107 107
 SSH_PORT=2222
108 108
 
109
+# parameters used when adding a new domain
110
+CURRENT_DDNS_PROVIDER="freedns.afraid.org"
111
+CURRENT_DDNS_DOMAIN=
112
+CURRENT_DDNS_USERNAME=
113
+CURRENT_DDNS_PASSWORD=
114
+CURRENT_DDNS_CODE=
115
+
109 116
 # number of CPU cores
110 117
 CPU_CORES=1
111 118
 
@@ -4914,25 +4921,6 @@ function folders_for_email_addresses {
4914 4921
   echo 'folders_for_email_addresses' >> $COMPLETION_FILE
4915 4922
 }
4916 4923
 
4917
-function dynamic_dns_freedns {
4918
-  if grep -Fxq "dynamic_dns_freedns" $COMPLETION_FILE; then
4919
-      return
4920
-  fi
4921
-
4922
-  echo '#!/bin/bash' > /usr/bin/dynamicdns
4923
-  echo '# subdomain name 1' >> /usr/bin/dynamicdns
4924
-  echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
4925
-  echo '# add any other subdomains below' >> /usr/bin/dynamicdns
4926
-  chmod 600 /usr/bin/dynamicdns
4927
-  chmod +x /usr/bin/dynamicdns
4928
-
4929
-  if ! grep -q "dynamicdns" /etc/crontab; then
4930
-    echo '*/5 * * * * root /usr/bin/timeout 240 /usr/bin/dynamicdns' >> /etc/crontab
4931
-  fi
4932
-  service cron restart
4933
-  echo 'dynamic_dns_freedns' >> $COMPLETION_FILE
4934
-}
4935
-
4936 4924
 function create_public_mailing_list {
4937 4925
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
4938 4926
       return
@@ -5435,6 +5423,42 @@ function install_owncloud_music_app {
5435 5423
   echo 'install_owncloud_music_app' >> $COMPLETION_FILE
5436 5424
 }
5437 5425
 
5426
+function add_ddns_domain {
5427
+  if [ ! $CURRENT_DDNS_DOMAIN ]; then
5428
+      echo 'ddns domain not specified'
5429
+      exit 5638
5430
+  fi
5431
+  if [ ! -f /etc/inadyn.conf ]; then
5432
+      echo 'Unable to find inadyn configuration file /etc/inadyn.conf'
5433
+      exit 5745
5434
+  fi
5435
+  if ! grep -q "$CURRENT_DDNS_PROVIDER" /etc/inadyn.conf; then
5436
+      echo '' >> /etc/inadyn.conf
5437
+      echo "system default@$CURRENT_DDNS_PROVIDER" >> /etc/inadyn.conf
5438
+      echo '  ssl' >> /etc/inadyn.conf
5439
+      if [ $CURRENT_DDNS_USERNAME ]; then
5440
+          echo "  username $CURRENT_DDNS_USERNAME" >> /etc/inadyn.conf
5441
+      fi
5442
+      if [ $CURRENT_DDNS_PASSWORD ]; then
5443
+          echo "  password $CURRENT_DDNS_PASSWORD" >> /etc/inadyn.conf
5444
+      fi
5445
+  fi
5446
+
5447
+  if ! grep -q "$CURRENT_DDNS_DOMAIN" /etc/inadyn.conf; then
5448
+      if [ $CURRENT_DDNS_CODE ]; then
5449
+          echo "  alias $CURRENT_DDNS_DOMAIN,$CURRENT_DDNS_CODE" >> /etc/inadyn.conf
5450
+      else
5451
+          echo "  alias $CURRENT_DDNS_DOMAIN" >> /etc/inadyn.conf
5452
+      fi
5453
+  fi
5454
+  chmod 600 /etc/inadyn.conf
5455
+  service inadyn restart
5456
+
5457
+  # clear the arguments
5458
+  CURRENT_DDNS_DOMAIN=
5459
+  CURRENT_DDNS_CODE=
5460
+}
5461
+
5438 5462
 function install_owncloud {
5439 5463
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
5440 5464
       return
@@ -5653,16 +5677,9 @@ quit" > $INSTALL_DIR/batch.sql
5653 5677
   service nginx restart
5654 5678
 
5655 5679
   # update the dynamic DNS
5656
-  if [ $OWNCLOUD_FREEDNS_SUBDOMAIN_CODE ]; then
5657
-      if [[ $OWNCLOUD_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
5658
-          if ! grep -q "$OWNCLOUD_DOMAIN_NAME" /usr/bin/dynamicdns; then
5659
-              echo "# $OWNCLOUD_DOMAIN_NAME" >> /usr/bin/dynamicdns
5660
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$OWNCLOUD_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
5661
-          fi
5662
-      fi
5663
-  else
5664
-      echo 'WARNING: No freeDNS subdomain code given for Owncloud. It is assumed that you are using some other dynamic DNS provider.'
5665
-  fi
5680
+  CURRENT_DDNS_DOMAIN=$OWNCLOUD_DOMAIN_NAME
5681
+  CURRENT_DDNS_CODE=$OWNCLOUD_FREEDNS_SUBDOMAIN_CODE
5682
+  add_ddns_domain
5666 5683
 
5667 5684
   echo 'install_owncloud' >> $COMPLETION_FILE
5668 5685
 
@@ -6138,16 +6155,9 @@ function install_wiki {
6138 6155
   service nginx restart
6139 6156
 
6140 6157
   # update the dynamic DNS
6141
-  if [ $WIKI_FREEDNS_SUBDOMAIN_CODE ]; then
6142
-      if [[ $WIKI_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
6143
-          if ! grep -q "$WIKI_DOMAIN_NAME" /usr/bin/dynamicdns; then
6144
-              echo "# $WIKI_DOMAIN_NAME" >> /usr/bin/dynamicdns
6145
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$WIKI_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
6146
-          fi
6147
-      fi
6148
-  else
6149
-      echo 'WARNING: No freeDNS subdomain code given for wiki installation. It is assumed that you are using some other dynamic DNS provider.'
6150
-  fi
6158
+  CURRENT_DDNS_DOMAIN=$WIKI_DOMAIN_NAME
6159
+  CURRENT_DDNS_CODE=$WIKI_FREEDNS_SUBDOMAIN_CODE
6160
+  add_ddns_domain
6151 6161
 
6152 6162
   # add some post-install instructions
6153 6163
   if ! grep -q "Wiki password" /home/$MY_USERNAME/README; then
@@ -6406,16 +6416,9 @@ function install_blog {
6406 6416
   service nginx restart
6407 6417
 
6408 6418
   # update the dynamic DNS
6409
-  if [ $FULLBLOG_FREEDNS_SUBDOMAIN_CODE ]; then
6410
-      if [[ $FULLBLOG_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
6411
-          if ! grep -q "$FULLBLOG_DOMAIN_NAME" /usr/bin/dynamicdns; then
6412
-              echo "# $FULLBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
6413
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$FULLBLOG_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
6414
-          fi
6415
-      fi
6416
-  else
6417
-      echo 'WARNING: No freeDNS subdomain code given for blog installation. It is assumed that you are using some other dynamic DNS provider.'
6418
-  fi
6419
+  CURRENT_DDNS_DOMAIN=$FULLBLOG_DOMAIN_NAME
6420
+  CURRENT_DDNS_CODE=$FULLBLOG_FREEDNS_SUBDOMAIN_CODE
6421
+  add_ddns_domain
6419 6422
 
6420 6423
   echo 'install_blog' >> $COMPLETION_FILE
6421 6424
 }
@@ -6488,16 +6491,9 @@ quit" > $INSTALL_DIR/batch.sql
6488 6491
   newaliases
6489 6492
 
6490 6493
   # update the dynamic DNS
6491
-  if [ $MICROBLOG_FREEDNS_SUBDOMAIN_CODE ]; then
6492
-      if [[ $MICROBLOG_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
6493
-          if ! grep -q "$MICROBLOG_DOMAIN_NAME" /usr/bin/dynamicdns; then
6494
-              echo "# $MICROBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
6495
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$MICROBLOG_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
6496
-          fi
6497
-      fi
6498
-  else
6499
-      echo 'WARNING: No freeDNS subdomain code given for microblog. It is assumed that you are using some other dynamic DNS provider.'
6500
-  fi
6494
+  CURRENT_DDNS_DOMAIN=$MICROBLOG_DOMAIN_NAME
6495
+  CURRENT_DDNS_CODE=$MICROBLOG_FREEDNS_SUBDOMAIN_CODE
6496
+  add_ddns_domain
6501 6497
 
6502 6498
   echo 'server {' > /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
6503 6499
   echo '    listen 80;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
@@ -6736,16 +6732,9 @@ quit" > $INSTALL_DIR/batch.sql
6736 6732
   fi
6737 6733
 
6738 6734
   # update the dynamic DNS
6739
-  if [ $REDMATRIX_FREEDNS_SUBDOMAIN_CODE ]; then
6740
-      if [[ $REDMATRIX_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
6741
-          if ! grep -q "$REDMATRIX_DOMAIN_NAME" /usr/bin/dynamicdns; then
6742
-              echo "# $REDMATRIX_DOMAIN_NAME" >> /usr/bin/dynamicdns
6743
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$REDMATRIX_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
6744
-          fi
6745
-      fi
6746
-  else
6747
-      echo 'WARNING: No freeDNS code given for Red Matrix. It is assumed that you are using some other dynamic DNS provider.'
6748
-  fi
6735
+  CURRENT_DDNS_DOMAIN=$REDMATRIX_DOMAIN_NAME
6736
+  CURRENT_DDNS_CODE=$REDMATRIX_FREEDNS_SUBDOMAIN_CODE
6737
+  add_ddns_domain
6749 6738
 
6750 6739
   echo 'server {' > /etc/nginx/sites-available/$REDMATRIX_DOMAIN_NAME
6751 6740
   echo '    listen 80;' >> /etc/nginx/sites-available/$REDMATRIX_DOMAIN_NAME
@@ -7085,16 +7074,9 @@ function install_mediagoblin {
7085 7074
   su -c "cp $MEDIAGOBLIN_PATH/paste.ini $MEDIAGOBLIN_PATH/paste_local.ini" - mediagoblin
7086 7075
 
7087 7076
   # update the dynamic DNS
7088
-  if [ $MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE ]; then
7089
-      if [[ $MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
7090
-          if ! grep -q "$MEDIAGOBLIN_DOMAIN_NAME" /usr/bin/dynamicdns; then
7091
-              echo "# $MEDIAGOBLIN_DOMAIN_NAME" >> /usr/bin/dynamicdns
7092
-              echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
7093
-          fi
7094
-      fi
7095
-  else
7096
-      echo 'WARNING: No freeDNS subdomain code given for mediagoblin. It is assumed that you are using some other dynamic DNS provider.'
7097
-  fi
7077
+  CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
7078
+  CURRENT_DDNS_CODE=$MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE
7079
+  add_ddns_domain
7098 7080
 
7099 7081
   # see https://wiki.mediagoblin.org/Deployment / uwsgi with configs
7100 7082
   apt-get -y --force-yes install uwsgi uwsgi-plugin-python nginx-full supervisor
@@ -7556,6 +7538,31 @@ function backup_github_projects {
7556 7538
   echo 'backup_github_projects' >> $COMPLETION_FILE
7557 7539
 }
7558 7540
 
7541
+function install_dynamicdns {
7542
+  if grep -Fxq "install_dynamicdns" $COMPLETION_FILE; then
7543
+      return
7544
+  fi
7545
+  apt-get -y install inadyn curl
7546
+
7547
+  if [ ! -f /etc/inadyn.conf ]; then
7548
+      echo 'Unable to find inadyn configuration file /etc/inadyn.conf'
7549
+      exit 57894
7550
+  fi
7551
+
7552
+  sed -i "s/# bind eth.*/# bind eth0/g" /etc/inadyn.conf
7553
+
7554
+  # clear existing settings
7555
+  sed -i 's/system <provider>//g' /etc/inadyn.conf
7556
+  sed -i 's/# Your username//g' /etc/inadyn.conf
7557
+  sed -i 's/username <username>//g' /etc/inadyn.conf
7558
+  sed -i 's/# Your password//g' /etc/inadyn.conf
7559
+  sed -i 's/password <password>//g' /etc/inadyn.conf
7560
+  sed -i 's/# Your hostname. This option can appear multiple times//g' /etc/inadyn.conf
7561
+  sed -i 's/alias <hostname>//g' /etc/inadyn.conf
7562
+
7563
+  echo 'install_dynamicdns' >> $COMPLETION_FILE
7564
+}
7565
+
7559 7566
 function install_final {
7560 7567
   if grep -Fxq "install_final" $COMPLETION_FILE; then
7561 7568
       return
@@ -7591,6 +7598,7 @@ remove_proprietary_repos
7591 7598
 change_debian_repos
7592 7599
 enable_backports
7593 7600
 configure_dns
7601
+install_dynamicdns
7594 7602
 initial_setup
7595 7603
 enforce_good_passwords
7596 7604
 install_editor
@@ -7626,7 +7634,6 @@ email_from_address
7626 7634
 configure_firewall_for_email
7627 7635
 folders_for_mailing_lists
7628 7636
 folders_for_email_addresses
7629
-dynamic_dns_freedns
7630 7637
 create_public_mailing_list
7631 7638
 #create_private_mailing_list
7632 7639
 encrypt_all_email