|
@@ -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
|