#!/bin/bash -x # Installs IIAB. "bash -x" (xtrace) is like -v (verbose) but expands commands. # 1. RUN: "sudo su -" then "raspi-config" to set "Localisation Options" # 2. OPTIONAL: "passwd pi; touch /boot/ssh; reboot" to ssh in immediately # 3. RUN THIS SCRIPT: curl download.iiab.io/6.4/rpi/load-big-vpn.txt | bash # 4. REBOOTS AUTOMATICALLY WHEN DONE (about an hour later) which # sets the hostname, while improving RTC settings + memory mgmt # 5. Run "teamviewer help" to get your TeamViewer ID and set a passwd # 6. Set /etc/iiab/handle if you use openvpn@xscenet set -e # to exit on error (avoids snowballing) tune2fs -m 1 /dev/mmcblk0p2 # Above changes reserve disk space from ~5% to 1% export DEBIAN_FRONTEND=noninteractive apt update apt -y dist-upgrade apt -y clean # Above updates Raspbian for security especially wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb set +e # do not exit when "dpkg -i" below inevitably fails dpkg -i teamviewer-host_armhf.deb set -e apt -y -f install # fix dependencies for above/failed "dpkg -i" rm teamviewer-host_armhf.deb apt -y install git ansible emacs lynx bc # Above installs a more future-proof Ansible 2.2.1+, and git for Raspbian Lite sed -i 's/StrictVersion/LooseVersion/g' /usr/lib/python2.7/dist-packages/ansible/modules/core/web_infrastructure/htpasswd.py # ABOVE APPLIES TEMPORARY PATCH https://github.com/ansible/ansible/pull/20202 # needed by munin until Ansible 2.3.2 or 2.4.0, to overcome Ansible bug: # TASK [munin : Create admin user] ******************************** # fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, # "msg": "invalid version number '1.7.0.post20170423015547'"} mkdir -p /opt/iiab cd /opt/iiab/ git clone https://github.com/iiab/iiab --depth 1 git clone https://github.com/iiab/iiab-admin-console --depth 1 git clone https://github.com/iiab/iiab-menu --depth 1 git clone https://github.com/iiab/iiab-factory --depth 1 cd /opt/iiab/iiab/vars/ if [ -f local_vars.yml ]; then echo "ERROR: Plz move /opt/iiab/iiab/vars/local_vars.yml to proceed." >&2 exit 1 elif [ -f local_vars_big_vpn.yml ]; then echo "ERROR: Plz move /opt/iiab/iiab/vars/local_vars_big_vpn.yml to proceed." >&2 exit 1 fi wget http://download.iiab.io/6.4/rpi/local_vars_big_vpn.yml mv local_vars_big_vpn.yml local_vars.yml # Above assumes a virgin RPi system (wget WON'T overwrite existing files) # In general please examine local_vars.yml carefully (and modify as nec) # before running Ansible (below, which can take ~2 hours the first time!) # NOTE: you can change many/most settings after install too, using the # Admin Console (http://box/admin) as documented at: http://FAQ.IIAB.IO cd /opt/iiab/iiab/ ./runansible # TRY TO RERUN THE ABOVE LINE IF IT FAILS (due to networking glitches etc?) cd /opt/iiab/iiab-admin-console/ ./install # Installs Admin Console and runs iiab-get-kiwix-cat to download Kiwix catalog cd /opt/iiab/iiab-menu/ ./cp-menus # Installs Dynamic Menuing for /library/www/html/home/index.html iiab-make-kiwix-lib # Rebuilds local library.xml in case ZIM files added to /library/zims/content export KALITE_HOME=/library/ka-lite kalite manage generate_zone # Register with KA Lite - just the anonymous registration kalite manage retrievecontentpack download en # Get KA Lite English language pack (slow download!) reboot