1
+ #! /bin/bash
2
+
3
+ # FreeDNS updater client installation on Raspbian
4
+ #
5
+ # Copyleft 2017 by Panteleimon Sarantos <pantelis.fedora _a_t_ gmail _d_o_t_ com>
6
+ # GPL licensed (see end of file) * Use at your own risk!
7
+ #
8
+ # Usage:
9
+ #
10
+ # ./installer.sh freedns.sh
11
+ #
12
+ # See installer.sh instructions for details
13
+ #
14
+ #
15
+ #
16
+
17
+ ACTIVE_=yes
18
+ UPDATEURL_=https://freedns.afraid.org/dynamic/update.php
19
+ UPDATEHASH_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJK1234567
20
+ DOMAIN_=nextcloud.example.com
21
+ UPDATEINTERVAL_=30
22
+ DESCRIPTION=" DDNS FreeDNS client (need account)"
23
+ URL=" ${UPDATEURL_} ?${UPDATEHASH_} "
24
+
25
+ show_info ()
26
+ {
27
+ whiptail --yesno \
28
+ --backtitle " NextCloudPi configuration" \
29
+ --title --title " Instructions for FreeDNS client
30
+ Set the time in seconds in UPDATEINTERVAL.
31
+ >>> Long interval may lead to not updating your IP address for long time. <<<" \
32
+ 20 90
33
+ }
34
+
35
+ install ()
36
+ {
37
+ apt-get install --no-install-recommends -y dnsutils
38
+ cat > /usr/local/bin/freedns.sh << EOF
39
+ #!/bin/bash
40
+ echo "FreeDNS client started"
41
+ echo "${URL} "
42
+ registeredIP=$( nslookup ${DOMAIN_} | tail -n2| grep A| sed s/[^0-9.]//g)
43
+ currentIP=$( wget -q -O - http://checkip.dyndns.org| sed s/[^0-9.]//g)
44
+ [ "\$ currentIP" != "\$ registeredIP" ] && {
45
+ wget -q -O /dev/null ${URL}
46
+ }
47
+ echo "Registered IP: \$ registeredIP | Current IP: \$ currentIP"
48
+
49
+ EOF
50
+
51
+ chmod +744 /usr/local/bin/freedns.sh
52
+
53
+ cat > /etc/systemd/system/freedns.service << EOF
54
+ [Unit]
55
+ Description=FreeDNS client
56
+
57
+ [Service]g
58
+ Type=simple
59
+ ExecStart=/bin/bash /usr/local/bin/freedns.sh
60
+
61
+ [Install]
62
+ WantedBy=default.target
63
+ EOF
64
+ }
65
+
66
+ configure ()
67
+ {
68
+
69
+ cat > /etc/systemd/system/freedns.timer << EOF
70
+ [Unit]
71
+ Description=Timer to run FreeDNS client per interval
72
+
73
+ [Timer]
74
+ OnBootSec=${UPDATEINTERVAL_}
75
+ OnUnitActiveSec=${UPDATEINTERVAL_}
76
+ Unit=freedns.service
77
+
78
+ [Install]
79
+ WantedBy=timers.target
80
+ EOF
81
+ systemctl daemon-reload
82
+
83
+ [[ $ACTIVE_ != " yes" ]] && {
84
+ systemctl stop freedns.timer
85
+ systemctl disable freedns.timer
86
+ systemctl daemon-reload
87
+ echo " FreeDNS client is disabled"
88
+ return 0
89
+ }
90
+ systemctl daemon-reload
91
+ systemctl enable freedns.timer
92
+ systemctl start freedns.timer
93
+ echo " FreeDNS client is enabled"
94
+
95
+ cd /var/www/nextcloud
96
+ sudo -u www-data php occ config:system:set trusted_domains 3 --value=" $DOMAIN_ "
97
+ sudo -u www-data php occ config:system:set overwrite.cli.url --value=https://" $DOMAIN_ "
98
+
99
+
100
+ }
101
+
102
+ cleanup () { : ; }
103
+ # License
104
+ #
105
+ # This script is free software; you can redistribute it and/or modify it
106
+ # under the terms of the GNU General Public License as published by
107
+ # the Free Software Foundation; either version 2 of the License, or
108
+ # (at your option) any later version.
109
+ #
110
+ # This script is distributed in the hope that it will be useful,
111
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
112
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
113
+ # GNU General Public License for more details.
114
+ #
115
+ # You should have received a copy of the GNU General Public License
116
+ # along with this script; if not, write to the
117
+ # Free Software Foundation, Inc., 59 Temple Place, Suite 330,
118
+ # Boston, MA 02111-1307 USA
0 commit comments