simple_packages+=($@)
}
+
distro=$(distro-name)
pending_reboot=false
*)
# universal packages
# swh-plugins is for karaoke pulsaudio filter.
+ # mutagen for pithos
simple_packages+=(
apache2
bwm-ng
chromium
+ debconf-doc
duplicity
+ eclipse
evince
fdupes
filelight
+ gcc-doc
gdb
+ gitk
goaccess
gnome-screenshot
+ i3lock
jq
locate
+ manpages
+ manpages-dev
meld
nmap
offlineimap
pdfgrep
pianobar
pidgin
- slock
+ python3-mutagen
squashfs-tools
swh-plugins
tcpdump
########### 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)
####### misc packages ###########
-
if [[ $HOSTNAME == treetowl ]]; then
case $distro in
debian|ubuntu)
# 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
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
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
pi synergy
fi
-case $distro in
- # ubuntu unknown. probably the same as debian, just check if the
- # init scripts come with the package.
- debian)
- # copied from arch, but moved to etc
- s dd of=/etc/systemd/user/synergys.service <<'EOF'
-[Unit]
-Description=Synergy Server Daemon
-After=network.target
-
-[Service]
-User=%i
-ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
-EOF
- s dd of=/etc/systemd/user/synergys.socket <<'EOF'
-[Unit]
-Conflicts=synergys@.service
+# case $distro in
+# # ubuntu unknown. probably the same as debian, just check if the
+# # init scripts come with the package.
+# debian)
+# # copied from arch, but moved to etc
+# s dd of=/etc/systemd/user/synergys.service <<'EOF'
+# [Unit]
+# Description=Synergy Server Daemon
+# After=network.target
+
+# [Service]
+# User=%i
+# ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf
+# Restart=on-failure
+
+# [Install]
+# WantedBy=multi-user.target
+# EOF
+# s dd of=/etc/systemd/user/synergys.socket <<'EOF'
+# [Unit]
+# Conflicts=synergys@.service
-[Socket]
-ListenStream=24800
-Accept=false
+# [Socket]
+# ListenStream=24800
+# Accept=false
-[Install]
-WantedBy=sockets.target
-EOF
- # had this fail with 'Failed to connect to bus: No such file or directory'
- # then when I tried it manually, it worked fine...
- if ! systemctl --user daemon-reload; then
- sleep 2
- echo retrying systemd user daemon reload
- systemctl --user daemon-reload
- fi
- ;;&
- *)
- # taken from arch wiki.
- s dd of=/etc/systemd/system/synergyc@.service <<'EOF'
-[Unit]
-Description=Synergy Client
-After=network.target
-
-[Service]
-User=%i
-ExecStart=/usr/bin/synergyc --no-daemon frodo
-Restart=on-failure
-# per man systemd.unit, StartLimitInterval, by default we
-# restart more than 5 times in 10 seconds.
-# And this param defaults too 200 miliseconds.
-RestartSec=3s
-
-[Install]
-WantedBy=multi-user.target
-EOF
- s systemctl daemon-reload
- case $HOSTNAME in
- x2|treetowl)
- ser enable synergyc@ian
- ser start synergyc@ian ||: # X might not be running yet
- ;;
- frodo)
- systemctl --user start synergys ||:
- systemctl --user enable synergys
- ;;
- esac
- ;;
-esac
+# [Install]
+# WantedBy=sockets.target
+# EOF
+# # had this fail with 'Failed to connect to bus: No such file or directory'
+# # then when I tried it manually, it worked fine...
+# if ! systemctl --user daemon-reload; then
+# sleep 2
+# echo retrying systemd user daemon reload
+# systemctl --user daemon-reload
+# fi
+# ;;&
+# *)
+# # taken from arch wiki.
+# s dd of=/etc/systemd/system/synergyc@.service <<'EOF'
+# [Unit]
+# Description=Synergy Client
+# After=network.target
+
+# [Service]
+# User=%i
+# ExecStart=/usr/bin/synergyc --no-daemon frodo
+# Restart=on-failure
+# # per man systemd.unit, StartLimitInterval, by default we
+# # restart more than 5 times in 10 seconds.
+# # And this param defaults too 200 miliseconds.
+# RestartSec=3s
+
+# [Install]
+# WantedBy=multi-user.target
+# EOF
+# s systemctl daemon-reload
+# case $HOSTNAME in
+# x2|treetowl)
+# ser enable synergyc@ian
+# ser start synergyc@ian ||: # X might not be running yet
+# ;;
+# frodo)
+# systemctl --user start synergys ||:
+# systemctl --user enable synergys
+# ;;
+# esac
+# ;;
+# esac
######### end misc packages #########
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
;;
esac
-# not using it atm, and 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
tu /etc/hosts <<< "127.0.1.1 $(hostname).lan $(hostname)"
-
-rootdev=$(mount | sed -rn 's#^(\S+) on / .*#\1#p')
-s mkdir /mnt/root
-tu /etc/fstab <<< "$rootdev /mnt/root btrfs noatime,subvolid=0 0 0"
-mountpoint /mnt/root || s mount /mnt/root
-idev=$(mount | sed -rn 's#^(\S+) on /i .*#\1#p')
-if [[ $idev != $rootdev ]]; then
- s mkdir /mnt/iroot
- tu /etc/fstab <<< "$idev /mnt/iroot btrfs noatime,subvolid=0 0 0"
- mountpoint /mnt/iroot || s mount /mnt/iroot
-fi
-
-
######### begin stuff belonging at the end ##########