Browse Source

Add files via upload

tteckster 3 năm trước cách đây
mục cha
commit
06550a59e0
1 tập tin đã thay đổi với 103 bổ sung0 xóa
  1. 103 0
      setup/motioneye_setup.sh

+ 103 - 0
setup/motioneye_setup.sh

@@ -0,0 +1,103 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o errtrace
+set -o nounset
+set -o pipefail
+shopt -s expand_aliases
+alias die='EXIT=$? LINE=$LINENO error_exit'
+CROSS='\033[1;31m\xE2\x9D\x8C\033[0m'
+CHECKMARK='\033[0;32m\xE2\x9C\x94\033[0m'
+RETRY_NUM=5
+RETRY_EVERY=3
+NUM=$RETRY_NUM
+trap die ERR
+trap 'die "Script interrupted."' INT
+
+function error_exit() {
+  trap - ERR
+  local DEFAULT='Unknown failure occured.'
+  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
+  local FLAG="\e[91m[ERROR:LXC] \e[93m$EXIT@$LINE"
+  msg "$FLAG $REASON"
+  exit $EXIT
+}
+function msg() {
+  local TEXT="$1"
+  echo -e "$TEXT"
+}
+
+echo -e "${CHECKMARK} \e[1;92m Setting up Container OS... \e[0m"
+ sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen
+ locale-gen >/dev/null
+ while [ "$(hostname -I)" = "" ]; do
+  1>&2 echo -e "${CROSS} \e[1;31m No Network: \e[0m $(date)"
+  sleep $RETRY_EVERY
+  ((NUM--))
+  if [ $NUM -eq 0 ]
+  then
+    1>&2 echo -e "${CROSS} \e[1;31m No Network After $RETRY_NUM Tries \e[0m"
+    exit 1
+  fi
+ done
+echo -e "${CHECKMARK} \e[1;92m Network Connected: \e[0m $(hostname -I)"
+
+echo -e "${CHECKMARK} \e[1;92m Updating Container OS... \e[0m"
+ apt-get update &>/dev/null
+ apt-get -qqy upgrade &>/dev/null
+
+echo -e "${CHECKMARK} \e[1;92m Installing Dependencies... \e[0m"
+ apt-get update &>/dev/null
+ apt-get -qqy install \
+     curl \
+     sudo \
+     python-dev-is-python2 \
+     python-setuptools \
+     libssl-dev \
+     libcurl4-openssl-dev \
+     libjpeg-dev \
+     zlib1g-dev \
+     libffi-dev \
+     libzbar-dev \
+     libzbar0 &>/dev/null
+    
+echo -e "${CHECKMARK} \e[1;92m Installing FFmpeg... \e[0m"
+ apt-get install ffmpeg v4l-utils -y
+
+echo -e "${CHECKMARK} \e[1;92m Installing Motion... \e[0m"
+ apt-get install motion -y
+ systemctl stop motion
+ systemctl disable motion
+
+echo -e "${CHECKMARK} \e[1;92m Installing Python... \e[0m"
+ apt-get install python2 curl -y
+ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
+ python2 get-pip.py
+
+echo -e "${CHECKMARK} \e[1;92m Installing MotionEye... \e[0m"
+ pip install motioneye
+ mkdir -p /etc/motioneye
+ cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
+ mkdir -p /var/lib/motioneye
+ 
+echo -e "${CHECKMARK} \e[1;92m Creating Service file motioneye.service... \e[0m" 
+  cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
+
+echo -e "${CHECKMARK} \e[1;92m Customizing Container... \e[0m"
+ rm /etc/motd
+ rm /etc/update-motd.d/10-uname
+ touch ~/.hushlogin
+ GETTY_OVERRIDE="/etc/systemd/system/container-getty@1.service.d/override.conf"
+ mkdir -p $(dirname $GETTY_OVERRIDE)
+ cat << EOF > $GETTY_OVERRIDE
+ [Service]
+ ExecStart=
+ ExecStart=-/sbin/agetty --autologin root --noclear --keep-baud tty%I 115200,38400,9600 \$TERM
+EOF
+ systemctl daemon-reload
+ systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//')
+ systemctl enable motioneye
+ systemctl start motioneye
+
+echo -e "${CHECKMARK} \e[1;92m Cleanup... \e[0m"
+ rm -rf /motioneye_setup.sh /var/{cache,log}/* /var/lib/apt/lists/*