|
@@ -433,6 +433,8 @@ ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
|
433
|
433
|
ZERONET_COMMIT='675bd462556c541d65e2d95f91f899146a373aad'
|
434
|
434
|
ZERONET_BLOG_REPO='https://github.com/HelloZeroNet/ZeroBlog'
|
435
|
435
|
ZERONET_BLOG_COMMIT='bbb0d6c36465fed2e6df71f1aab45fcc9c6ad609'
|
|
436
|
+ZERONET_MAIL_REPO='https://github.com/HelloZeroNet/ZeroMail'
|
|
437
|
+ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
|
436
|
438
|
ZERONET_FORUM_REPO='https://github.com/HelloZeroNet/ZeroTalk'
|
437
|
439
|
ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
|
438
|
440
|
ZERONET_URL=http://127.0.0.1:43110
|
|
@@ -440,6 +442,7 @@ ZERONET_PORT=15441
|
440
|
442
|
TRACKER_PORT=6969
|
441
|
443
|
ZERONET_DEFAULT_BLOG_TAGLINE="Blogging on the Mesh"
|
442
|
444
|
ZERONET_DEFAULT_FORUM_TAGLINE="A decentralized discussion group"
|
|
445
|
+ZERONET_DEFAULT_MAIL_TAGLINE="Mail for the Mesh"
|
443
|
446
|
|
444
|
447
|
# https://github.com/ipfs/go-ipfs
|
445
|
448
|
IPFS_GO_REPO="github.com/ipfs/go-ipfs/cmd/ipfs"
|
|
@@ -910,6 +913,9 @@ function read_configuration {
|
910
|
913
|
if grep -q "ZERONET_BLOG_COMMIT" $CONFIGURATION_FILE; then
|
911
|
914
|
ZERONET_BLOG_COMMIT=$(grep "ZERONET_BLOG_COMMIT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
912
|
915
|
fi
|
|
916
|
+ if grep -q "ZERONET_MAIL_COMMIT" $CONFIGURATION_FILE; then
|
|
917
|
+ ZERONET_MAIL_COMMIT=$(grep "ZERONET_MAIL_COMMIT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
918
|
+ fi
|
913
|
919
|
if grep -q "ZERONET_FORUM_COMMIT" $CONFIGURATION_FILE; then
|
914
|
920
|
ZERONET_FORUM_COMMIT=$(grep "ZERONET_FORUM_COMMIT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
915
|
921
|
fi
|
|
@@ -1974,6 +1980,132 @@ function install_zeronet_blog {
|
1974
|
1980
|
echo 'install_zeronet_blog' >> $COMPLETION_FILE
|
1975
|
1981
|
}
|
1976
|
1982
|
|
|
1983
|
+function install_zeronet_mail {
|
|
1984
|
+ if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
|
1985
|
+ return
|
|
1986
|
+ fi
|
|
1987
|
+
|
|
1988
|
+ if [ -d /opt/zeronet/ZeroMail ]; then
|
|
1989
|
+ if grep -q "ZeroNet Mail commit" $COMPLETION_FILE; then
|
|
1990
|
+ CURRENT_ZERONET_MAIL_COMMIT=$(grep "ZeroNet Mail commit" $COMPLETION_FILE | awk -F ':' '{print $2}')
|
|
1991
|
+ if [[ "$CURRENT_ZERONET_MAIL_COMMIT" != "$ZERONET_MAIL_COMMIT" ]]; then
|
|
1992
|
+ cd /opt/zeronet/ZeroMail
|
|
1993
|
+ git stash
|
|
1994
|
+ git checkout master
|
|
1995
|
+ git pull
|
|
1996
|
+ git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
|
|
1997
|
+ sed -i "s/ZeroNet Mail commit.*/ZeroNet Mail commit:$ZERONET_MAIL_COMMIT/g" $COMPLETION_FILE
|
|
1998
|
+ fi
|
|
1999
|
+ else
|
|
2000
|
+ echo "ZeroNet Mail commit:$ZERONET_MAIL_COMMIT" >> $COMPLETION_FILE
|
|
2001
|
+ fi
|
|
2002
|
+ fi
|
|
2003
|
+
|
|
2004
|
+ if grep -Fxq "install_zeronet_mail" $COMPLETION_FILE; then
|
|
2005
|
+ return
|
|
2006
|
+ fi
|
|
2007
|
+
|
|
2008
|
+ if [ ! -f /home/$MY_USERNAME/README ]; then
|
|
2009
|
+ touch /home/$MY_USERNAME/README
|
|
2010
|
+ fi
|
|
2011
|
+
|
|
2012
|
+ if grep -q "ZeroNet Mail address" /home/$MY_USERNAME/README; then
|
|
2013
|
+ return
|
|
2014
|
+ fi
|
|
2015
|
+
|
|
2016
|
+ if [ ! -d /etc/avahi ]; then
|
|
2017
|
+ echo 'Avahi is not installed'
|
|
2018
|
+ exit 736
|
|
2019
|
+ fi
|
|
2020
|
+
|
|
2021
|
+ ZERONET_DEFAULT_MAIL_TITLE="${MY_USERNAME}'s Mail"
|
|
2022
|
+
|
|
2023
|
+ cd /opt/zeronet
|
|
2024
|
+ python zeronet.py --batch siteCreate 2> /opt/zeronet/mail.txt
|
|
2025
|
+ if [ ! -f /opt/zeronet/mail.txt ]; then
|
|
2026
|
+ echo 'Unable to create mail'
|
|
2027
|
+ exit 479
|
|
2028
|
+ fi
|
|
2029
|
+ mail_address=$(cat mail.txt | grep "Site address" | awk -F ':' '{print $2}')
|
|
2030
|
+ mail_private_key=$(cat mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
|
|
2031
|
+ ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
|
|
2032
|
+ ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
|
|
2033
|
+
|
|
2034
|
+ if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
|
|
2035
|
+ echo $"Address: $ZERONET_MAIL_ADDRESS"
|
|
2036
|
+ echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
|
|
2037
|
+ echo $'Unable to create zeronet mail address'
|
|
2038
|
+ exit 7358
|
|
2039
|
+ fi
|
|
2040
|
+
|
|
2041
|
+ if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
|
|
2042
|
+ echo $"Address: $ZERONET_MAIL_ADDRESS"
|
|
2043
|
+ echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
|
|
2044
|
+ echo $'Unable to create zeronet mail private key'
|
|
2045
|
+ exit 1639
|
|
2046
|
+ fi
|
|
2047
|
+
|
|
2048
|
+ if [ ! -d "/opt/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
|
|
2049
|
+ echo $"Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS"
|
|
2050
|
+ exit 7638
|
|
2051
|
+ fi
|
|
2052
|
+
|
|
2053
|
+ git clone $ZERONET_MAIL_REPO ZeroMail
|
|
2054
|
+ if [ ! -d /opt/zeronet/ZeroMail ]; then
|
|
2055
|
+ echo 'ZeroMail repo could not be cloned'
|
|
2056
|
+ exit 6739
|
|
2057
|
+ fi
|
|
2058
|
+ cd /opt/zeronet/ZeroMail
|
|
2059
|
+ git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
|
|
2060
|
+ if ! grep -q "ZeroNet Mail commit" $COMPLETION_FILE; then
|
|
2061
|
+ echo "ZeroNet Mail commit:$ZERONET_MAIL_COMMIT" >> $COMPLETION_FILE
|
|
2062
|
+ else
|
|
2063
|
+ sed -i "s/ZeroNet Mail commit.*/ZeroNet Mail commit:$ZERONET_MAIL_COMMIT/g" $COMPLETION_FILE
|
|
2064
|
+ fi
|
|
2065
|
+
|
|
2066
|
+ echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS"
|
|
2067
|
+ echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY"
|
|
2068
|
+ cp -r /opt/zeronet/ZeroMail/* /opt/zeronet/data/$ZERONET_MAIL_ADDRESS
|
|
2069
|
+
|
|
2070
|
+ if [ ! -d /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
|
|
2071
|
+ mkdir /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data
|
|
2072
|
+ fi
|
|
2073
|
+ cp /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data
|
|
2074
|
+ sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
|
|
2075
|
+ sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
|
|
2076
|
+ sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
|
|
2077
|
+ sed -i "s|<h3 class=\"description\">.*|<h3 class=\"description\">$ZERONET_DEFAULT_MAIL_TAGLINE</h3>|g" /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
|
|
2078
|
+ sed -i "s/Mailging platform Demo/Mailging platform/g" /opt/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
|
|
2079
|
+ python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
|
|
2080
|
+
|
|
2081
|
+ # Add an avahi service
|
|
2082
|
+ echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-mail.service
|
|
2083
|
+ echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-mail.service
|
|
2084
|
+ echo '<service-group>' >> /tmp/zeronet-mail.service
|
|
2085
|
+ echo ' <name replace-wildcards="yes">%h ZeroNet Mail</name>' >> /tmp/zeronet-mail.service
|
|
2086
|
+ echo ' <service>' >> /tmp/zeronet-mail.service
|
|
2087
|
+ echo ' <type>_zeronet._udp</type>' >> /tmp/zeronet-mail.service
|
|
2088
|
+ echo " <port>$ZERONET_PORT</port>" >> /tmp/zeronet-mail.service
|
|
2089
|
+ echo " <txt-record>$ZERONET_URL/$ZERONET_MAIL_ADDRESS</txt-record>" >> /tmp/zeronet-mail.service
|
|
2090
|
+ echo ' </service>' >> /tmp/zeronet-mail.service
|
|
2091
|
+ echo '</service-group>' >> /tmp/zeronet-mail.service
|
|
2092
|
+ cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
|
|
2093
|
+
|
|
2094
|
+ if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
|
|
2095
|
+ mkdir -p /home/$MY_USERNAME/.config/zeronet
|
|
2096
|
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
|
|
2097
|
+ fi
|
|
2098
|
+ echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/mymail
|
|
2099
|
+
|
|
2100
|
+ if ! grep -q "ZeroNet Mail address" /home/$MY_USERNAME/README; then
|
|
2101
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
2102
|
+ echo "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS" >> /home/$MY_USERNAME/README
|
|
2103
|
+ echo "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> /home/$MY_USERNAME/README
|
|
2104
|
+ fi
|
|
2105
|
+
|
|
2106
|
+ echo 'install_zeronet_mail' >> $COMPLETION_FILE
|
|
2107
|
+}
|
|
2108
|
+
|
1977
|
2109
|
function install_zeronet_forum {
|
1978
|
2110
|
if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
1979
|
2111
|
return
|
|
@@ -8826,6 +8958,7 @@ install_zeronet
|
8826
|
8958
|
install_watchdog_script
|
8827
|
8959
|
configure_avahi
|
8828
|
8960
|
install_zeronet_blog
|
|
8961
|
+install_zeronet_mail
|
8829
|
8962
|
install_zeronet_forum
|
8830
|
8963
|
#install_atheros_wifi
|
8831
|
8964
|
configure_firewall_for_cjdns
|