X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;ds=inline;f=distro-end;h=f2df46e6770aa47f79cae78dd5903442f5aa26c0;hb=f9ccde727d3471c99b909a528aa7168281368084;hp=41b9104d436fa75d6d960e1d7cb78e528957cb1f;hpb=917ca4a71b5c456b741456dc173c144ee7042d89;p=distro-setup
diff --git a/distro-end b/distro-end
index 41b9104..f2df46e 100755
--- a/distro-end
+++ b/distro-end
@@ -14,7 +14,7 @@
# limitations under the License.
### setup
-errcatch
+source /a/bin/errhandle/err
src="${BASH_SOURCE%/*}"
source $src/pkgs
@@ -73,7 +73,6 @@ case $distro in
;;
esac
-
# disable motd junk.
case $distro in
debian)
@@ -111,14 +110,19 @@ if isdeb; then
# 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/$(distro-name-compat)/gpg | sudo apt-key add -
- sudo add-apt-repository \
- "deb [arch=amd64] https://download.docker.com/linux/$(distro-name-compat) \
- $(debian-codename-compat) \
- stable"
- p update
+ url=https://download.docker.com/linux/$(distro-name-compat)
+ l="deb [arch=amd64] $url $(debian-codename-compat) stable"
+
+ if ! grep -xFq "$l" /etc/apt/sources.list{,.d/*.list}; then
+ sudo add-apt-repository "$l"
+ p update
+ fi
# docker eats up a fair amount of cpu when doing nothing, so don't enable it unless
# we really need it.
pi-nostart docker-ce
+ # and docker is even more crap, it ignores that it shouldnt start
+ ser stop docker
+ ser disable docker
case $HOSTNAME in
li|lj) sgo docker ;;
esac
@@ -142,8 +146,11 @@ case $distro in
trisquel|ubuntu)
# not packaged in xenial or flidas
pi software-properties-common
- s add-apt-repository -y ppa:certbot/certbot ||:
- p update
+ l="deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main"
+ if ! grep -xFq "$l" /etc/apt/sources.list{,.d/*.list}; then
+ s add-apt-repository -y ppa:certbot/certbot ||:
+ p update
+ fi
pi python-certbot-apache
;;
# todo: other distros unknown
@@ -161,15 +168,33 @@ sgo certbotmail.timer
### end certbot install ###
-# dogcam setup
-case $HOSTNAME in
- lj|li)
- /a/bin/webcam/install-server
- ;;
- kw)
- /a/bin/webcam/install-client
- ;;
-esac
+# dogcam setup. not using atm
+# case $HOSTNAME in
+# lj|li)
+# /a/bin/webcam/install-server
+# ;;
+# kw)
+# /a/bin/webcam/install-client
+# ;;
+# esac
+
+pi ${p1[@]}
+
+
+## prometheus node exporter setup
+web-conf -f 9100 -p 9101 apache2 $(hostname -f) <<'EOF'
+#https://httpd.apache.org/docs/2.4/mod/mod_authn_core.html#authtype
+# https://stackoverflow.com/questions/5011102/apache-reverse-proxy-with-basic-authentication
+
+ AllowOverride None
+ AuthType basic
+ AuthName "Authentication Required"
+ # setup one time, with root:www-data, 640
+ AuthUserFile "/etc/prometheus-htpasswd"
+ Require valid-user
+
+EOF
+
# website setup
case $HOSTNAME in
@@ -568,26 +593,19 @@ esac
########### end section including li/lj ###############
-pi ${p4[@]} $(apt-cache search ruby[.0-9]+-doc| awk '{print $1}')
-
-
-case $distro in
- trisquel|ubuntu)
- l="deb http://ppa.launchpad.net/ansible/ansible/ubuntu xenial main"
- f=/etc/apt/sources.list.d/ansible-ubuntu-ansible-xenial.list
- if ! grep -qF "$l" $f; then
- s add-apt-repository -y ppa:ansible/ansible
- p update
- fi
- s pip install --upgrade pip
- # newer 2.7 versions have a bug that incorrectly detects trisquel version. fixed once 2.8 arrives
- # in 2019
- pip install --user ansible=2.7.4
- #pi ansible
- ;;
-esac
+# depends gcc is a way to install suggests. this is apparently the only
+# way to install suggests even if the main package is already
+# installed. reinstall doesn't work, uninstalling can cause removing
+# dependent packages.
+pi ${pall[@]} $(apt-cache search ruby[.0-9]+-doc| awk '{print $1}') $(apt-cache depends gcc|grep -i suggests:| awk '{print $2}')
+if ! type pip; then
+ x=$(mktemp)
+ wget -O$x https://bootstrap.pypa.io/get-pip.py
+ python3 $x --user
+fi
+sgo fsf-vpn-dns-cleanup
case $distro in
@@ -595,11 +613,17 @@ case $distro in
pi chromium ;;
trisquel|ubuntu)
wget -qO - https://downloads.iridiumbrowser.de/ubuntu/iridium-release-sign-01.pub|sudo apt-key add -
- cat <$t </dev/null <$t < /dev/null; then
+ s groupadd -g 450 debian-transmission
+ case $distro in
+ arch)
+ s useradd \
+ --system \
+ --create-home \
+ --gid 450 \
+ --uid 450 \
+ --home-dir /var/lib/transmission-daemon \
+ --shell /bin/false \
+ debian-transmission
+ ;;
+ *)
+ s adduser --quiet \
+ --gid 450 \
+ --uid 450 \
+ --system \
+ --no-create-home \
+ --disabled-password \
+ --home /var/lib/transmission-daemon \
+ debian-transmission
+ ;;
+ esac
+fi
+# We want group writable stuff from transmission.
+# However, after setting this, I learn that transmission sets it's
+# own umask based on it's settings file. Well, no harm leaving this
+# so it's set right from the beginning.
+s chfn debian-transmission -o umask=0002
+
case $distro in
debian|trisquel|ubuntu)
# note i had to do this, which is persistent:
@@ -1066,6 +1152,9 @@ EOF
# some reason it doesn\'t seem to start automatically anyways
pi-nostart transmission-daemon
+ # be extra sure its not started
+ ser disable transmission-daemon
+ ser stop transmission-daemon
# the folder was moved here after an install around 02/2017.
# it contains runtime data,
@@ -1113,40 +1202,11 @@ File.write(p, JSON.pretty_generate(JSON.parse(File.read(p)).merge({
})) + "\n")
EOF
- # make sure its not enabled, not sure if this is needed
- ser disable transmission-daemon
;;
# todo: others unknown
esac
-# adapted from /var/lib/dpkg/info/transmission-daemon.postinst
-if ! getent passwd debian-transmission > /dev/null; then
- case $distro in
- arch)
- s useradd \
- --system \
- --create-home \
- --home-dir /var/lib/transmission-daemon \
- --shell /bin/false \
- debian-transmission
- ;;
- *)
- s adduser --quiet \
- --system \
- --group \
- --no-create-home \
- --disabled-password \
- --home /var/lib/transmission-daemon \
- debian-transmission
- ;;
- esac
-fi
-# We want group writable stuff from transmission.
-# However, after setting this, I learn that transmission sets it's
-# own umask based on it's settings file. Well, no harm leaving this
-# so it's set right from the beginning.
-s chfn debian-transmission -o umask=0002
# trisquel 8 = openvpn, debian stretch = openvpn-client
vpn_ser=openvpn-client
@@ -1289,8 +1349,17 @@ for x in iank traci; do s usermod -a -G libvirt,kvm $x; done
case $distro in
debian|trisquel|ubuntu)
+ if ! type -p go &>/dev/null; then
+ cd $(mktemp -d)
+ # just the latest stable at the time of writing
+ # TODO, maybe put this all into a build script,
+ # and do some automatic updates
+ wget -q https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
+ s tar -C /usr/local -xzf go1.12.4.linux-amd64.tar.gz
+ rm -f *
+ fi
+ go get -u mvdan.cc/fdroidcl
# a bit of googling, and added settings to bashrc
- go get -u github.com/mvdan/fdroidcl/cmd/fdroidcl
;;
esac
@@ -1320,7 +1389,7 @@ case $distro in
./configure --with-exuberant-ctags=/usr/bin/ctags
make
s make install
- s pip install pygments
+ pip install pygments
;;
*)
pi global
@@ -1512,6 +1581,9 @@ s fc-cache
/a/bin/distro-setup/mymimes
+sgo dynamicipupdate
+
+
# stop autopoping windows when i plug in an android phone.
# dbus-launch makes this work within an ssh connection, otherwise you get this message,
# with still 0 exit code.