| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This is the home of the official webapp for the AlarmDecoder family of home security devices.
NOTE: Other web and WSGI servers will likely work but will require configuration.
If you're running on a Raspberry Pi the easiest way to get started is to download our pre-configured Raspbian image. The image can be found at here.
If you would rather do it by hand you can follow these steps using a Raspbian 9 base image: You can also look at the PiBakery recipe for the steps. This presumes you will be the pi user with a monitor and keyboard attached to the Pi. Optionally you can connect over the network after enabling ssh and WiFi. See also Headless wifi setup
sudo touch /boot/ssh sudo rm /etc/ssh/ssh_host_*; dpkg-reconfigure openssh-server # !!Change keys!!
passwd
sudo sed -i '/enable_uart\|pi3-miniuart-bt-overlay\|force_turbo/d' /boot/config.txt
sudo raspi-config nonint do_serial 1
sudo hostname AlarmDecoder
sudo raspi-config nonint do_wifi_country US
sudo raspi-config nonint do_change_timezone America/Los_Angeles
sudo raspi-config nonint do_configure_keyboard US pc101
sudo echo -E '
network={
ssid="«your_SSID»"
psk="«your_PSK»"
key_mgmt=WPA-PSK
}' >> /etc/wpa_supplicant/wpa_supplicant.conf
sudo raspi-config nonint do_expand_rootfs
sudo apt-get update
sudo apt-get install \ autoconf \ automake \ build-essential \ cmake \ cmake-data \ git \ gunicorn \ libcurl4-openssl-dev \ libffi-dev \ libpcre3-dev \ libpcre++-dev \ libssl-dev \ minicom \ miniupnpc \ nginx \ python2.7-dev \ python-dev \ python-httplib2 \ python-opencv \ python-pip \ python-virtualenv \ screen \ sendmail \ sqlite3 \ telnet \ vim \ zlib1g-dev
sudo pip install --upgrade pip
sudo pip install --upgrade setuptools
sudo mkdir -p /opt/alarmdecoder /opt/alarmdecoder-webapp && sudo chown pi:pi /opt/alarmdecoder /opt/alarmdecoder-webapp
cd /opt && git clone https://github.com/nutechsoftware/alarmdecoder.git
cd /opt && git clone https://github.com/nutechsoftware/alarmdecoder-webapp.git
cd /opt/alarmdecoder-webapp/ && sudo pip install -r requirements.txt
cd /opt && sudo git clone https://github.com/nutechsoftware/ser2sock.git cd /opt/ser2sock/ && sudo ./configure && sudo make && sudo cp ./ser2sock /usr/local/bin/
sudo usermod -a -G dialout pi sudo chgrp dialout /etc/hosts /etc/hostname sudo chmod g+w /etc/hosts /etc/hostname
sudo mkdir -p /etc/ser2sock && sudo cp /opt/ser2sock/etc/ser2sock/ser2sock.conf /etc/ser2sock/ && sudo chown -R pi:pi /etc/ser2sock sudo sed -i 's/raw_device_mode = 0/raw_device_mode = 1/g' /etc/ser2sock/ser2sock.conf sudo sed -i 's/device = \/dev\/ttyAMA0/device = \/dev\/serial0/g' /etc/ser2sock/ser2sock.conf
sudo cp /opt/ser2sock/init/ser2sock /etc/init.d/ sudo sed -i 's/EXTRA_START_ARGS=/#EXTRA_START_ARGS=/g' /etc/init.d/ser2sock sudo sed -i 's/#RUN_AS=.*/RUN_AS=pi:pi/g' /etc/init.d/ser2sock sudo update-rc.d ser2sock defaults
cat <<EOF | sudo tee /etc/avahi/services/alarmdecoder.service
<?xml version="1.0" standalone="no"?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=AlarmDecoder</txt-record>
</service>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
EOF
sudo mkdir -p /etc/nginx/ssl
sudo rm -r /var/www/html/
cat <<EOF | sudo tee /etc/systemd/system/gunicorn.service > /dev/null [Unit] Description=gunicorn daemon After=network.target [Service] PIDFile=/run/gunicorn/pid User=pi Group=dialout WorkingDirectory=/opt/alarmdecoder-webapp Environment="TERM=vt100" ExecStart=/usr/bin/gunicorn --worker-class=socketio.sgunicorn.GeventSocketIOWorker --timeout=120 --env=POLICY_SERVER=0 --log-level=debug wsgi:application ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload sudo systemctl enable gunicorn
cat <<EOF | sudo tee /etc/logrotate.d/alarmdecoder > /dev/null
/opt/alarmdecoder-webapp/instance/logs/*.log {
weekly
missingok
rotate 5
compress
delaycompress
notifempty
create 0640 pi pi
sharedscripts
}
EOF
cat <<'EOF' | sudo tee /etc/logrotate.d/gunicorn > /dev/null
/var/log/gunicorn/*.log {
weekly
missingok
rotate 5
compress
delaycompress
notifempty
create 0640 www-data www-data
sharedscripts
postrotate
[ -s /run/gunicorn/alarmdecoder.pid ] && kill -USR1 `cat /run/gunicorn/alarmdecoder.pid`
endscript
}
EOF
sudo mkdir /etc/gunicorn.d/ sudo cp /opt/alarmdecoder-webapp/contrib/gunicorn.d/alarmdecoder /etc/gunicorn.d/
sudo openssl req \ -x509 -nodes -sha256 -days 3650 -newkey rsa:4096 \ -keyout /etc/nginx/ssl/alarmdecoder.key \ -out /etc/nginx/ssl/alarmdecoder.crt \ -subj '/CN=AlarmDecoder.local/O=AlarmDecoder.com/C=US'
sudo rm /etc/nginx/sites-enabled/default sudo cp /opt/alarmdecoder-webapp/contrib/nginx/alarmdecoder /etc/nginx/sites-available/ sudo ln -s /etc/nginx/sites-available/alarmdecoder /etc/nginx/sites-enabled/
sudo systemctl enable nginx
cd /opt/alarmdecoder-webapp/ && python manage.py initdb
Please visit our forums.
We love the open-source community and welcome any contributions! Just submit a pull request through Github.
| Back | FazBrowse Home | New Git URL |