curl -s https://gist.githubusercontent.com/JMSwag/d8f01a429b1af72b9ead81f184161a3b/raw/bbf9bb63e65b9fe72baf0ff1cff3ffe6a6ef7295/unifi-video-installer.sh | sudo bash
curl -sL http://bit.ly/2gTFQtp | sudo bash
| #!/usr/bin/env bash | |
| timestamp() { | |
| date "+%H:%M:%S.%3N" | |
| } | |
| info(){ | |
| local msg=$1 | |
| echo -e "\e[1;32m===> $(timestamp) ${msg}\e[0m" | |
| } | |
| warn(){ | |
| local msg=$1 | |
| echo -e "\e[1;33m===> $(timestamp) ${msg}\e[0m" | |
| } | |
| fail(){ | |
| local msg=$1 | |
| echo -e "\e[1;31m===> $(timestamp) ERROR: ${msg}\e[0m" | |
| exit 1 | |
| } | |
| dsinit(){ | |
| apt -qq update &> /dev/null | |
| info "Updating system software..." | |
| info "This may take a while depending on your connection speed." | |
| apt -qqy dist-upgrade &> /dev/null | |
| } | |
| install_or_update(){ | |
| local pkg=$1 | |
| present=$(apt list --installed 2> /dev/nul | grep "$pkg" | cut -f1 -d"/") | |
| if [ "$present" != "$pkg" ]; then | |
| info "Installing $pkg" | |
| apt install -qqy $pkg &> /dev/null | |
| info "Ensuring dependices are installed" | |
| apt-get -qqf install &> /dev/null | |
| else | |
| info "Checking for $pkg updates" | |
| upgrade_needed=$(apt --just-print upgrade 2> /dev/null | grep "$pkg" | cut -f1 -d"/") | |
| if [ "$upgrade_needed" == "$pkg" ]; then | |
| info "Upgrading $pkg" | |
| apt install -qqy --only-upgrade $pkg &> /dev/null | |
| else | |
| info "$1 already on the latest version." | |
| fi | |
| fi | |
| } | |
| main(){ | |
| info "Unifi Video installer - 0.1.0" | |
| dsinit | |
| info "Ensuring previous installs are complete" | |
| dpkg --configure -a &> /dev/null | |
| install_or_update curl | |
| FILENAME="unifi-video.deb" | |
| info "Downloading unifi-video installer" | |
| if ! curl -fsSL -o $FILENAME https://dl.ubnt.com/firmwares/unifi-video/3.7.2/unifi-video_3.7.2-Ubuntu16.04_amd64.deb; then | |
| fail "failed to download unifi-video installer" | |
| exit $? | |
| fi | |
| info "Installing unifi-video" | |
| dpkg -i $FILENAME &> /dev/null | |
| info "Installing unifi-video deps... This may take a while!" | |
| apt-get -qqf install &> /dev/null | |
| info "Install complete!" | |
| MYIP=$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p') | |
| info "You can view the controller interface here:" | |
| info "https://$MYIP:7443/" | |
| } | |
| main |