lots of stuff lumped together
[distro-setup] / distro-end
index 3d0566a0781d24899d7691e314deee9c53ee053b..4fb10dbf1291d2e3e905b64b3c831e51a96c1ba0 100755 (executable)
@@ -78,6 +78,9 @@ case $HOSTNAME in
             cloc
             cron
             debconf-doc
+            dirmngr
+            dnsutils
+            dtrx
             duplicity
             eclipse
             evince
@@ -88,24 +91,30 @@ case $HOSTNAME in
             gcc-doc
             gdb
             gdb-doc
+            geoip-bin
             git-doc
             git-email
             gitk
             glibc-doc
             goaccess
             gnome-screenshot
+            gnome-session-flashback
             i3lock
+            inetutils-traceroute
             iproute2-doc
             jq
             kid3-qt
             kid3-cli
             linux-doc
             locate
+            lshw
             make-doc
             manpages
             manpages-dev
             meld
+            mps-youtube
             mumble
+            nagstamon
             nginx-doc
             nmap
             offlineimap
@@ -117,14 +126,18 @@ case $HOSTNAME in
             perl-doc
             pianobar
             pidgin
+            pry
+            python-autopep8
             python3-doc
             python3-mutagen
             reportbug
+            $(aptitude show ruby | sed -rn 's/Depends: (.*)/\1/p')-doc
             sqlite3-doc
             squashfs-tools
             swh-plugins
             tar-doc
             tcpdump
+            telnet
             transmission-remote-gtk
             vlc
             whois
@@ -156,11 +169,9 @@ case $distro in
 esac
 
 
-case $distro in
-    debian|ubuntu)
-        pi debian-goodies
-        ;;
-esac
+if isdeb; then
+    pi debian-goodies
+fi
 
 
 case $distro in
@@ -183,12 +194,12 @@ esac
 
 case $distro in
     arch) spa the_silver_searcher ;;
-    debian|ubuntu) spa silversearcher-ag ;;
+    debian|ubuntu|trisquel) spa silversearcher-ag ;;
     # fedora unknown
 esac
 
 case $distro in
-    debian|ubuntu) spa ntp;;
+    debian|ubuntu|trisquel) spa ntp;;
     arch)
         pi ntp
         sgo ntpd
@@ -199,7 +210,7 @@ esac
 
 # no equivalent in other distros:
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         pi aptitude
         if ! dpkg -s apt-file &>/dev/null; then
             # this condition is just a speed optimization
@@ -212,13 +223,13 @@ case $distro in
 esac
 
 case $distro in
-    ubuntu|debian) spa ack-grep ;;
+    ubuntu|trisquel|debian) spa ack-grep ;;
     arch|fedora) spa ack ;;
     # fedora unknown
 esac
 
 case $distro in
-    arch|debian|ubuntu)
+    arch|debian|ubuntu|trisquel)
         spa bash-completion
         ;;
     # others unknown
@@ -242,7 +253,7 @@ case $distro in
             s update-rc.d motd disable
         fi
         ;;
-    ubuntu)
+    ubuntu|trisquel)
         # this isn't a complete solution. It still shows me when updates are available,
         # but it's no big deal.
         s t /etc/update-motd.d/10-help-text /etc/update-motd.d/00-header
@@ -264,6 +275,20 @@ pi "${simple_packages[@]}"
 simple_packages=()
 
 
+### begin docker install ####
+# https://store.docker.com/editions/community/docker-ce-server-debian?tab=description
+pi  software-properties-common apt-transport-https
+curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
+sudo add-apt-repository \
+     "deb [arch=amd64] https://download.docker.com/linux/debian \
+         $(lsb_release -cs) \
+         stable"
+p update
+pi docker-ce
+sgo docker
+###  end docker install ####
+
+
 case $distro in
     debian)
         # note, need python-certbot-nginx for nginx, but it depends on nginx,
@@ -304,9 +329,24 @@ case $HOSTNAME in
 
         pi-nostart mumble-server
         s $sed -ri "s/^ *(serverpassword=).*/\1$(< /a/bin/bash_unpublished/mumble_pass)/" /etc/mumble-server.ini
+
+        # do certificate to avoid warning about unsigned cert,
+        # which is overkill for my use, but hey, I'm cool, I know
+        # how to do this.
+        web-conf apache2 mumble.iankelling.org
+        s rm -f /etc/apache2/sites-enabled/mumble.iankelling.org
+        sudo -i <<'EOF'
+export RENEWED_LINEAGE=/etc/letsencrypt/live/mumble.iankelling.org
+/a/bin/distro-setup/certbot-renew-hook
+EOF
+
         sgo mumble-server
 
         vpn-server-setup -d
+        tee /etc/openvpn/client-config/mail <<'EOF'
+ifconfig-push 10.8.0.4 255.255.255.0
+EOF
+
 
         sudo dd of=/etc/systemd/system/vpnmail.service <<EOF
 [Unit]
@@ -334,7 +374,8 @@ EOF
         domain=cal.iankelling.org
         web-conf -f 10.8.0.4:5232 - apache2 $domain <<'EOF'
 #https://httpd.apache.org/docs/2.4/mod/mod_authn_core.html#authtype
-        <Directory "/var/www/cal.iankelling.org/html">
+# https://stackoverflow.com/questions/5011102/apache-reverse-proxy-with-basic-authentication
+        <Location />
                 Options +FollowSymLinks +Multiviews +Indexes
                 AllowOverride None
                 AuthType basic
@@ -342,7 +383,7 @@ EOF
                 # setup one time, with root:www-data, 640
                 AuthUserFile "/etc/caldav-htpasswd"
                 Require valid-user
-        </Directory>
+        <Location />
 EOF
         # nginx version of above would be:
         # auth_basic "Not currently available";
@@ -451,29 +492,29 @@ EOF
 
         ############# begin setup mastodon ##############
 
-        # https://store.docker.com/editions/community/docker-ce-server-debian?tab=description
-        pi  software-properties-common apt-transport-https
-        curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
-        sudo add-apt-repository \
-             "deb [arch=amd64] https://download.docker.com/linux/debian \
-         $(lsb_release -cs) \
-         stable"
-        p update
-        pi docker-ce
-        sgo docker
+        # I'd like to try gnu social just cuz of gnu, but it's not being
+        # well maintained, for example, simple pull requests
+        # languishing:
+        # https://git.gnu.io/gnu/gnu-social/merge_requests/143
+        # and I submitted my own bugs, basic docs are broken
+        # https://git.gnu.io/gnu/gnu-social/issues/269
 
-        curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` | s dd of=/usr/local/bin/docker-compose
-        s chmod +x /usr/local/bin/docker-compose
+        # note, docker required, but we installed it earlier
 
         # i subscrubed to https://github.com/docker/compose/releases.atom
-        # to deal with updates manually.
+        # to deal with updates manually. So far, it means just reving the
+        # version number, then restarting docker-compose with
+        # cd ~/mastodon
+        # docker-compose up -d
+        curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` | s dd of=/usr/local/bin/docker-compose
+        s chmod +x /usr/local/bin/docker-compose
+
 
         cd ~
         i clone https://github.com/tootsuite/mastodon
         cd mastodon
-        # https://github.com/tootsuite/mastodon/tree/v1.1.2
         # subbed to atom feed to deal with updates
-        i co v1.1.2
+        git checkout $(git tag | grep -v rc | tail -n1)
 
         # per instructions, uncomment redis/postgres persistence in docker-compose.yml
         sed -i 's/^#//' docker-compose.yml
@@ -622,7 +663,7 @@ fi
 #########  end  pump.io periodic backup #############
 
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         # suggests because we want the resolvconf package.
         # todo: check other distros to make sure it\'s installed
         pi-nostart --install-suggests openvpn
@@ -632,20 +673,7 @@ case $distro in
     *) pi openvpn;;
 esac
 
-if private-host; then
-    vpn-mk-client-cert -n mail li
-    cn=$(s openssl x509 -noout -nameopt multiline -subject \
-           -in /etc/openvpn/client/mail.crt | \
-             sed -rn 's/^\s*commonName\s*=\s*(.*)/\1/p')
-    echo "ifconfig-push 10.8.0.4 255.255.255.0" | \
-        ssh root@li dd of=/etc/openvpn/client-config/"$cn"
-fi
-ser enable mailroute
-if [[ $HOSTNAME == treetowl ]]; then
-    # note, this will need to be changed when the mail/contacts host changes
-    sgo openvpn-client@mail
-    /a/bin/distro-setup/radicale-setup
-fi
+/a/bin/distro-setup/radicale-setup
 
 ## android studio setup
 # this contains the setting for android sdk to point to
@@ -669,7 +697,7 @@ if [[ $HOSTNAME == treetowl ]]; then
     # syncs between comps.
     case $distro in
         arch) pi syncthing ;;
-        ubuntu|debian)
+        ubuntu|trisquel|debian)
             # testing has relatively up to date packages
             if ! isdebian-testing; then
                 # based on error when doing apt-get update:
@@ -738,7 +766,7 @@ fi
 
 # no equivalent in other distros:
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         # for gui bug reporting
         spa python-vte
         ;;
@@ -747,8 +775,41 @@ esac
 
 ####### misc packages ###########
 
+# nagstamon setting which were set through the ui
+# in filters tab:
+# all unknown sources
+# all warning services
+# acknowledged hosts & services
+# hosts & services down for maintenence
+# services on down hosts
+# services on hosts in maintenece
+# services on unreachable osts
+# hosts in soft state
+# services in soft state
+# in display tab: icon in systray.
+
+case $distro in
+    debian|ubuntu|trisquel)
+        # it asks if it should make users in it's group capture packets without root,
+        # which is arguably more secure than running wireshark as root. default is no,
+        # which is what i prefer, since I plan to use tcpdump to input to wireshark.
+        s DEBIAN_FRONTEND=noninteractive pi wireshark-gtk
+        ;;
+    # others unknown
+esac
+
+
+case $distro in
+    debian|ubuntu|trisquel)
+        # no recommends because it wanted some other unstable package, something to
+        # do with math or something, which I didn't want to deal with.
+        p -y --no-install-recommends install python3-send2trash/unstable anki/unstable
+        ;;
+    # others unknown
+esac
+
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         # note i had to do this, which is persistent:
         # cd /i/k
         # s chgrp debian-transmission torrents partial-torrents
@@ -903,7 +964,7 @@ pi wget
 case $HOSTNAME in
     tp|frodo)
         case $distro in
-            debian|ubuntu)
+            debian|ubuntu|trisquel)
                 log=$(mktemp)
                 cd /a/opt
                 wget -nv -N https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
@@ -945,7 +1006,7 @@ case $distro in
         # In debian, I could use hte recommended driver,
         # in arch, I had to pick out the 6L driver.
         ;;
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         spa hplip
         ;;
     # other distros unknown
@@ -994,7 +1055,7 @@ case $distro in
 esac
 
 case $distro in
-    fedora|ubuntu|debian) spa gnupg-agent ;;
+    fedora|ubuntu|trisquel|debian) spa gnupg-agent ;;
     arch) : ;;
 esac
 
@@ -1012,20 +1073,20 @@ esac
 
 case $distro in
     arch) spa ttf-dejavu;;
-    debian|ubuntu) spa fonts-dejavu ;;
+    debian|ubuntu|trisquel) spa fonts-dejavu ;;
     # others unknown
 esac
 
 
 case $distro in
     arch) spa xorg-xev;;
-    debian|ubuntu) spa x11-utils ;;
+    debian|ubuntu|trisquel) spa x11-utils ;;
     # others unknown
 esac
 
 case $distro in
     arch) pi virt-install;;&
-    debian|ubuntu) pi virtinst ;;&
+    debian|ubuntu|trisquel) pi virtinst ;;&
     *) pi virt-manager ;; # creates the libvirt group in debian at least
     # others unknown
 esac
@@ -1045,20 +1106,20 @@ for x in ian traci; do s usermod -a -G libvirt,kvm $x; done
 
 case $distro in
     arch) spa cdrkit;;
-    debian|ubuntu) spa genisoimage;;
+    debian|ubuntu|trisquel) spa genisoimage;;
     # others unknown
 esac
 
 case $distro in
     arch) spa spice-gtk3 ;;
-    debian|ubuntu) spa spice-client-gtk;;
+    debian|ubuntu|trisquel) spa spice-client-gtk;;
     # others unknown
 esac
 
 # general known for debian/ubuntu, not for fedora
 
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         pi golang-go
         # a bit of googling, and added settings to bashrc
         go get -u github.com/mvdan/fdroidcl/cmd/fdroidcl
@@ -1104,14 +1165,15 @@ esac
 
 
 case $distro in
-    arch|debian|ubuntu) spa pumpa ;;
+    arch|debian|ubuntu|trisquel) spa pumpa ;;
     # others unknown. do have a buildscript:
     # /a/bin/buildscripts/pumpa ;;
 esac
 
 
 case $distro in
-    debian|ubuntu) spa android-tools-adbd/unstable ;;
+    debian) pi adb ;;
+    debian|ubuntu|trisquel) spa android-tools-adbd/unstable ;;
     arch) spa android-tools ;;
     # other distros unknown
 esac
@@ -1227,7 +1289,7 @@ case $distro in
     arch)
         pi  python2-pygments
         ;;
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         pi python-pygments
         ;;
 esac
@@ -1336,6 +1398,17 @@ fi
 # esac
 
 
+
+### kdeconnect for gnome. started in /a/bin/distro-setup/desktop-20-autostart.sh
+pi libgtk-3-dev python3-requests-oauthlib valac cmake python-nautilus
+cd /a/opt/indicator-kdeconnect
+mkdir -p build
+cd build
+cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+make
+sudo make install
+
+
 ######### end misc packages #########
 
 
@@ -1412,7 +1485,7 @@ EOF
 
 
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         case `debian-archive` in
             stable)
                 s dd of=/etc/apt/preferences.d/unison-gtk <<'EOF'
@@ -1448,7 +1521,7 @@ esac
 #
 # # disabled due to my patch being in btrbk
 # case $distro in
-#     arch|debian|ubuntu) pi btrbk ;;
+#     arch|debian|ubuntu|trisquel) pi btrbk ;;
 #     # others unknown
 # esac
 cd /a/opt/btrbk
@@ -1474,7 +1547,7 @@ fi
 
 
 case $distro in
-    debian|ubuntu) s gpasswd -a ian adm ;; #needed for reading logs
+    debian|ubuntu|trisquel) s gpasswd -a ian adm ;; #needed for reading logs
 esac
 
 # tor
@@ -1552,7 +1625,7 @@ EOF
         pi nfs-utils
         sgo nfs-server
         ;;
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         pi nfs-server
         ;;
     arch)
@@ -1657,7 +1730,7 @@ e "$end_msg_var"
 # persistent virtual machines
 
 case $distro in
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
         pi libosinfo-bin;
         ;;
 esac
@@ -1742,7 +1815,7 @@ EOF
     fi
 
     case $distro in
-        debian|ubuntu)
+        debian|ubuntu|trisquel)
             # systemd claims it generates units from /etc/init.d, but it
             # clearly doesn\'t in debian. I have no idea how they are
             # related. fuck debian right now. It\'s not documented.  samba