various minor improvements
[distro-setup] / distro-end
index 44be816d82fee63536c3a83adce2ad8bb5aa47a9..8034fb918383b7a2df3a6f7fab19a1b36c3fc047 100755 (executable)
@@ -32,6 +32,7 @@ spa() { # simple package add
     simple_packages+=($@)
 }
 
+
 distro=$(distro-name)
 
 pending_reboot=false
@@ -59,30 +60,26 @@ case $HOSTNAME in
         # universal packages
         # swh-plugins is for karaoke pulsaudio filter.
         # mutagen for pithos
-        # lib32stdc++6/default-jdk for android studio
-        # android site says it needs a bunch of packages for ubuntu,
-        # but I googled for debian, and someone says you just need one, plus the
-        # jdk
-        # https://pid7007blog.blogspot.com/2015/07/installing-android-studio-in-debian-8.html
-        # see w.org for more android studio details
-        #
         simple_packages+=(
             apache2
             bwm-ng
             chromium
-            default-jdk
+            debconf-doc
             duplicity
+            eclipse
             evince
             fdupes
             filelight
+            gcc-doc
             gdb
             gitk
             goaccess
             gnome-screenshot
+            i3lock
             jq
             locate
-            lib32stdc++6
             manpages
+            manpages-dev
             meld
             nmap
             offlineimap
@@ -93,7 +90,6 @@ case $HOSTNAME in
             pianobar
             pidgin
             python3-mutagen
-            slock
             squashfs-tools
             swh-plugins
             tcpdump
@@ -258,6 +254,19 @@ esac
 ########### end section including li/lj ###############
 
 
+
+## android studio setup
+# this contains the setting for android sdk to point to
+# /a/opt/androidsdk, which is asked upon first run
+lnf /a/opt/.AndroidStudio2.2 ~
+# android site says it needs a bunch of packages for ubuntu,
+# but I googled for debian, and someone says you just need lib32stdc++6 plus the
+# jdk
+# https://pid7007blog.blogspot.com/2015/07/installing-android-studio-in-debian-8.html
+# see w.org for more android studio details
+spa lib32stdc++6 default-jdk
+
+
 if [[ $HOSTNAME == frodo ]]; then
     case $distro in
         ubunut|debian)
@@ -320,7 +329,6 @@ esac
 
 ####### misc packages ###########
 
-
 if [[ $HOSTNAME == treetowl ]]; then
     case $distro in
         debian|ubuntu)
@@ -339,29 +347,38 @@ EOF
 
             # some reason it doesn't seem to start automatically anyways
             pi-nostart transmission-daemon
+            #
             # config file documented here, and it's the same config
             # for daemon vs client, so it's documented in the gui.
             # https://trac.transmissionbt.com/wiki/EditConfigFiles#Options
+            #
+            # I originaly setup rpc-whitelist, but after using
+            # routing to a network namespace, it doesn't see the
+            # real source address, so it's disabled.
+            # todo: setup a password.
             s ruby <<'EOF'
 require 'json'
 p = '/etc/transmission-daemon/settings.json'
 File.write(p, JSON.pretty_generate(JSON.parse(File.read(p)).merge({
-'rpc-whitelist' => '127.0.0.1,192.168.1.*',
+'rpc-whitelist-enabled' => false,
 'rpc-authentication-required' => false,
-'incomplete-dir' => '/i/k/partial-torrents',
+'incomplete-dir' => '/k/partial-torrents',
+'incomplete-dir-enabled' => true,
 'download-dir' => '/i/k/torrents',
 "speed-limit-up" => 700,
 "speed-limit-up-enabled" => true,
+"peer-port" => 61486,
 "ratio-limit" => 1.4000,
-"ratio-limit-enabled" => true,
+"ratio-limit-enabled" => false,
+"pidfile": "/var/lib/transmission-daemon/transmission-daemon.pid",
 })) + "\n")
 EOF
-            sgo transmission-daemon
-            ;;
-        arch)
-            # todo, setup it's config file & daemon
-            pi transmission-cli
+
+            # make sure its not enabled, not sure if this is needed
+            ser disable transmission-daemon
+            sgo transmission-daemon-nn
             ;;
+        # todo: others unknown
     esac
 fi
 
@@ -439,13 +456,14 @@ done
 
 case $distro in
     debian|ubuntu)
-        pi-nostart openvpn
+        # suggests because we want the resolvconf package.
+        # todo: check other distros to make sure it's installed
+        pi-nostart --install-suggests openvpn
         # pi-nostart this doesnt seem to be good enough?
         ser disable openvpn@client
         ser disable openvpn
         ;;
-    # suggests because we want the resolvconf package
-    *) pi --install-suggests openvpn;;
+    *) pi openvpn;;
 esac
 
 pi wget
@@ -661,8 +679,33 @@ case $distro in
             spa bitcoin-qt/unstable
         fi
         ;;
+    s cp /a/opt/bitcoin/contrib/init/bitcoind.service /usr/lib/systemd/system
+    ser daemon-reload
+    sgo bitcoind
+
+    s mkdir -p $dir
+    s touch $f
+    s chmod -R o-rwx $dir
+    s chown -R bitcoin:bitcoin $dir
+    s dd of=$f <<EOF
+rpcbind=127.0.0.1
+server=1
+rpcpassword=$(openssl rand -base64 32)
+rpcuser=$(openssl rand -base64 32)
+
+# Joinmarket
+walletnotify=curl -sI --connect-timeout 1 http://localhost:62602/walletnotify?%s
+alertnotify=curl -sI --connect-timeout 1 http://localhost:62602/alertnotify?%s
+EOF
     # other distros unknown
 esac
+if [[ $HOSTNAME == treetowl ]]; then
+    # dunno about sharing a wallet between multiple instances
+
+    sgo bitcoind
+fi
+
+
 
 
 # proprietary flash. going without for now
@@ -861,6 +904,8 @@ EOF
 
 if [[ $HOSTNAME == treetowl ]] && ! sudo test -e /etc/openvpn/client.key; then
     /a/bin/vpn-setup/vpn-mk-client-cert dopub
+    # route lan traffic from inside the network namespace.
+    tu /etc/openvpn/client.conf "route 192.168.1.0 255.255.255.0 net_gateway"
 fi
 
 
@@ -897,13 +942,22 @@ EOF
         ;;
 esac
 
-# note, for jessie, it depends on a higher version of btrfs-tools
+# note, for jessie, it depends on a higher version of btrfs-tools.
+#
+# # disabled due to my patch being in btrbk
 # case $distro in
 #     arch|debian|ubuntu) pi btrbk ;;
 #     # others unknown
 # esac
 cd /a/opt/btrbk
 s make install
+spa pv # for progress bar when running interactively.
+if [[ $HOSTNAME == treetowl ]]; then
+    # backup/sync manually on others hosts for now.
+    sgo btrbk.timer
+    # note: to see when it was last run,
+    # ser list-timers
+fi
 
 if [[ $HOSTNAME == treetowl ]] && [[ `debian-archive` != testing ]]; then
     # fail2 ban is broken, with a workaround, per