Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of /opt/emoncms & /opt/openenergymonitor installation directories #3

Merged
merged 6 commits into from Jun 20, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 6 additions & 5 deletions defaults/emoncms/default.settings.php
Expand Up @@ -57,20 +57,21 @@
// On windows or shared hosting you will likely need to specify a different data directory--
// Make sure that emoncms has write permission's to the datadirectory folders
'phpfiwa'=>array(
'datadir' => '/var/opt/emon/phpfiwa/'
'datadir' => '/var/opt/emoncms/phpfiwa/'
),
'phpfina'=>array(
'datadir' => '/var/opt/emon/phpfina/'
'datadir' => '/var/opt/emoncms/phpfina/'
),
'phptimeseries'=>array(
'datadir' => '/var/opt/emon/phptimeseries/'
'datadir' => '/var/opt/emoncms/phptimeseries/'
),
'cassandra'=>array(
'keyspace' => 'emoncms'
)
);

$homedir = "USRDIR";

$emoncms_dir = "EMONCMS_DIR";
$openenergymonitor_dir = "OPENENERGYMONITOR_DIR";

// Max number of allowed different inputs per user. For limiting garbage rf data
$max_node_id_limit = 32;
Expand Down
2 changes: 1 addition & 1 deletion install/fstab → defaults/etc/fstab
@@ -1,7 +1,7 @@
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime,nodiratime 0 1
/dev/mmcblk0p3 /var/opt/emon ext2 defaults,noatime,nodiratime 0 2
/dev/mmcblk0p3 /var/opt/emoncms ext2 defaults,noatime,nodiratime 0 2
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that

Expand Down
23 changes: 23 additions & 0 deletions defaults/etc/rc.local
@@ -0,0 +1,23 @@
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi

/opt/openenergymonitor/emonpi/wifiAP/startAP.sh

exit 0

4 changes: 2 additions & 2 deletions install/apache.sh
Expand Up @@ -12,11 +12,11 @@ sudo sed -i "s/^CustomLog/#CustomLog/" /etc/apache2/conf-available/other-vhosts-
sudo a2enmod rewrite

# Default apache2 configuration
sudo cp $usrdir/EmonScripts/defaults/apache2/emonsd.conf /etc/apache2/conf-available/emonsd.conf
sudo cp $openenergymonitor_dir/EmonScripts/defaults/apache2/emonsd.conf /etc/apache2/conf-available/emonsd.conf
sudo a2enconf emonsd.conf

# Configure virtual host
sudo cp $usrdir/EmonScripts/defaults/apache2/emoncms.conf /etc/apache2/sites-available/emoncms.conf
sudo cp $openenergymonitor_dir/EmonScripts/defaults/apache2/emoncms.conf /etc/apache2/sites-available/emoncms.conf
sudo a2dissite 000-default.conf
sudo a2ensite emoncms

Expand Down
3 changes: 0 additions & 3 deletions install/base.sh

This file was deleted.

21 changes: 12 additions & 9 deletions install/config.ini
@@ -1,7 +1,10 @@
#!/bin/bash
# Do not change these lines, they are used to auto detect the installation location
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
usrdir=${DIR/\/EmonScripts\/install/}
# usrdir=${DIR/\/EmonScripts\/install/}

openenergymonitor_dir=/opt/openenergymonitor
emoncms_dir=/opt/emoncms

# usernames and passwords below are for default raspberrypi installation
# these can all be changed to own preference
Expand Down Expand Up @@ -39,16 +42,16 @@ emoncms_modules[wifi]=master
emoncms_modules[device]=master


# Modules installed in $usrdir/modules
# Modules installed in $emoncms_dir/modules
# Configure branches as applicable
declare -A emoncms_modules_usrdir
emoncms_modules_usrdir[demandshaper]=master
emoncms_modules_usrdir[sync]=master
emoncms_modules_usrdir[backup]=master
emoncms_modules_usrdir[usefulscripts]=master
emoncms_modules_usrdir[postprocess]=emonpi
declare -A symlinked_emoncms_modules
symlinked_emoncms_modules[demandshaper]=master
symlinked_emoncms_modules[sync]=master
symlinked_emoncms_modules[backup]=master
symlinked_emoncms_modules[usefulscripts]=master
symlinked_emoncms_modules[postprocess]=emonpi

emoncms_datadir=/var/opt/emon
emoncms_datadir=/var/opt/emoncms

# Components enabled
apt_get_upgrade_and_clean=true
Expand Down
15 changes: 8 additions & 7 deletions install/emoncms_core.sh
Expand Up @@ -30,8 +30,9 @@ fi
# Copy and install default.settings.php
if [ ! -f $emoncms_www/settings.php ]; then
echo "- installing default emoncms settings.php"
cp $usrdir/EmonScripts/defaults/emoncms/default.settings.php $emoncms_www/settings.php
sed -i "s~USRDIR~$usrdir~" $emoncms_www/settings.php
cp $openenergymonitor_dir/EmonScripts/defaults/emoncms/default.settings.php $emoncms_www/settings.php
sed -i "s~EMONCMS_DIR~$emoncms_dir~" $emoncms_www/settings.php
sed -i "s~OPENENERGYMONITOR_DIR~$openenergymonitor_dir~" $emoncms_www/settings.php
else
echo "- emoncms settings.php already exists"
fi
Expand All @@ -58,8 +59,8 @@ if [ ! -d /var/www/html/emoncms ]; then

# Redirect (review)
echo "- creating redirect to $emoncms_www"
echo "<?php header('Location: ../emoncms'); ?>" > $usrdir/index.php
sudo mv $usrdir/index.php /var/www/html/index.php
echo "<?php header('Location: ../emoncms'); ?>" > $emoncms_dir/index.php
sudo mv $emoncms_dir/index.php /var/www/html/index.php
sudo rm /var/www/html/index.html
fi

Expand All @@ -68,13 +69,13 @@ echo "Install Emoncms Services"
echo "-------------------------------------------------------------"
for service in "emoncms_mqtt" "feedwriter" "service-runner"; do
servicepath=$emoncms_www/scripts/services/$service/$service.service
$usrdir/EmonScripts/common/install_emoncms_service.sh $servicepath $service
$openenergymonitor_dir/EmonScripts/common/install_emoncms_service.sh $servicepath $service
done
echo

# Sudoers entry (review)
sudo visudo -cf $usrdir/EmonScripts/sudoers.d/emoncms-rebootbutton && \
sudo cp $usrdir/EmonScripts/sudoers.d/emoncms-rebootbutton /etc/sudoers.d/
sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/emoncms-rebootbutton && \
sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/emoncms-rebootbutton /etc/sudoers.d/
sudo chmod 0440 /etc/sudoers.d/emoncms-rebootbutton
echo "- Install emonPi Emoncms admin reboot button sudoers entry"

Expand Down
38 changes: 19 additions & 19 deletions install/emoncms_modules.sh
Expand Up @@ -17,32 +17,32 @@ for module in ${!emoncms_modules[@]}; do
done

# wifi module sudoers entry
sudo visudo -cf $usrdir/EmonScripts/sudoers.d/wifi-sudoers && \
sudo cp $usrdir/EmonScripts/sudoers.d/wifi-sudoers /etc/sudoers.d/
sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/wifi-sudoers && \
sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/wifi-sudoers /etc/sudoers.d/
sudo chmod 0440 /etc/sudoers.d/wifi-sudoers
echo "wifi sudoers entry installed"
# wpa_supplicant permissions
sudo chmod 644 /etc/wpa_supplicant/wpa_supplicant.conf

# Install emoncms modules that do not reside in /var/www/emoncms/Modules
if [ ! -d $usrdir/modules ]; then
mkdir $usrdir/modules
if [ ! -d $emoncms_dir/modules ]; then
mkdir $emoncms_dir/modules
fi

cd $usrdir/modules
for module in ${!emoncms_modules_usrdir[@]}; do
branch=${emoncms_modules_usrdir[$module]}
cd $emoncms_dir/modules
for module in ${!symlinked_emoncms_modules[@]}; do
branch=${symlinked_emoncms_modules[$module]}
if [ ! -d $module ]; then
echo "- Installing module: $module"
git clone -b $branch https://github.com/emoncms/$module.git
# If module contains emoncms UI folder, symlink to $emoncms_www/Modules
if [ -d $usrdir/modules/$module/$module-module ]; then
if [ -d $emoncms_dir/modules/$module/$module-module ]; then
echo "-- UI directory symlink"
ln -s $usrdir/modules/$module/$module-module $emoncms_www/Modules/$module
ln -s $emoncms_dir/modules/$module/$module-module $emoncms_www/Modules/$module
fi
# run module install script if present
if [ -f $usrdir/modules/$module/install.sh ]; then
$usrdir/modules/$module/install.sh $usrdir
if [ -f $emoncms_dir/modules/$module/install.sh ]; then
$emoncms_dir/modules/$module/install.sh $emoncms_dir
echo
fi
else
Expand All @@ -51,21 +51,21 @@ for module in ${!emoncms_modules_usrdir[@]}; do
done

# backup module
if [ -d $usrdir/modules/backup ]; then
cd backup
if [ -d $emoncms_dir/modules/backup ]; then
cd $emoncms_dir/modules/backup
if [ ! -f config.cfg ]; then
cp default.config.cfg config.cfg
sed -i "s~USER~$user~" config.cfg
sed -i "s~BACKUP_SCRIPT_LOCATION~$usrdir/modules/backup~" config.cfg
sed -i "s~BACKUP_SCRIPT_LOCATION~$emoncms_dir/modules/backup~" config.cfg
sed -i "s~EMONCMS_LOCATION~$emoncms_www~" config.cfg
sed -i "s~BACKUP_LOCATION~$usrdir/data~" config.cfg
sed -i "s~BACKUP_LOCATION~$openenergymonitor_dir/data~" config.cfg
sed -i "s~DATABASE_PATH~$emoncms_datadir~" config.cfg
sed -i "s~EMONHUB_CONFIG_PATH~$usrdir/data~" config.cfg
sed -i "s~EMONHUB_SPECIMEN_CONFIG~$usrdir/emonhub/conf~" config.cfg
sed -i "s~BACKUP_SOURCE_PATH~$usrdir/data/uploads~" config.cfg
sed -i "s~EMONHUB_CONFIG_PATH~/etc/emonhub~" config.cfg
sed -i "s~EMONHUB_SPECIMEN_CONFIG~$openenergymonitor_dir/emonhub/conf~" config.cfg
sed -i "s~BACKUP_SOURCE_PATH~$openenergymonitor_dir/data/uploads~" config.cfg
fi
cd
fi

echo "Update Emoncms database"
php $usrdir/EmonScripts/common/emoncmsdbupdate.php
php $openenergymonitor_dir/EmonScripts/common/emoncmsdbupdate.php
14 changes: 7 additions & 7 deletions install/emonhub.sh
Expand Up @@ -4,23 +4,23 @@ source config.ini
echo "-------------------------------------------------------------"
echo "emonHub install"
echo "-------------------------------------------------------------"
cd $usrdir
cd $openenergymonitor_dir

if [ ! -d $usrdir/emonhub ]; then
if [ ! -d $openenergymonitor_dir/emonhub ]; then
git clone https://github.com/openenergymonitor/emonhub.git
else
echo "- emonhub repository already installed"
git pull
fi

if [ -f $usrdir/emonhub/install.sh ]; then
$usrdir/emonhub/install.sh $emonSD_pi_env
if [ -f $openenergymonitor_dir/emonhub/install.sh ]; then
$openenergymonitor_dir/emonhub/install.sh $emonSD_pi_env
else
echo "ERROR: $usrdir/emonhub/install.sh script does not exist"
echo "ERROR: $openenergymonitor_dir/emonhub/install.sh script does not exist"
fi

# Sudoers entry (review!)
sudo visudo -cf $usrdir/EmonScripts/sudoers.d/emonhub-sudoers && \
sudo cp $usrdir/EmonScripts/sudoers.d/emonhub-sudoers /etc/sudoers.d/
sudo visudo -cf $openenergymonitor_dir/EmonScripts/sudoers.d/emonhub-sudoers && \
sudo cp $openenergymonitor_dir/EmonScripts/sudoers.d/emonhub-sudoers /etc/sudoers.d/
sudo chmod 0440 /etc/sudoers.d/emonhub-sudoers
echo "emonhub service control sudoers entry installed"
12 changes: 4 additions & 8 deletions install/emonpilcd.sh
Expand Up @@ -17,10 +17,6 @@ if [ ! -d /var/log/emonpilcd ]; then
touch /var/log/emonpilcd/emonpilcd.log
fi

# EmonBase / EmonPi flags are stored in /home/pi/data (needs removing)
cd
if [ ! -d data ]; then mkdir data; fi

# ---------------------------------------------------------
# Install service
# ---------------------------------------------------------
Expand All @@ -36,14 +32,14 @@ else
fi

# Install emonpi repo if it doesnt already exist
if [ ! -d $usrdir/emonpi ]; then
if [ ! -d $openenergymonitor_dir/emonpi ]; then
echo "Installing emonpi repository"
cd $usrdir
cd $openenergymonitor_dir
git clone https://github.com/openenergymonitor/emonpi.git
fi

sudo cp $usrdir/emonpi/lcd/$service.service /lib/systemd/system
sudo sed -i "s~ExecStart=.*~ExecStart=/usr/bin/python $usrdir/emonpi/lcd/emonPiLCD.py~" /lib/systemd/system/$service.service
sudo cp $openenergymonitor_dir/emonpi/lcd/$service.service /lib/systemd/system
sudo sed -i "s~ExecStart=.*~ExecStart=/usr/bin/python $openenergymonitor_dir/emonpi/lcd/emonPiLCD.py~" /lib/systemd/system/$service.service
sudo systemctl enable $service.service
sudo systemctl restart $service.service

Expand Down
14 changes: 7 additions & 7 deletions install/emonsd.sh
Expand Up @@ -6,7 +6,7 @@ source config.ini
# Logs are written to disk every hour or at shutdown
# log2ram forked from @pb66 repo here https://github.com/pb66/log2ram
# --------------------------------------------------------------------------------
cd $usrdir
cd $openenergymonitor_dir
git clone -b rsync_mods https://github.com/openenergymonitor/log2ram.git
cd log2ram
chmod +x install.sh && sudo ./install.sh
Expand All @@ -22,21 +22,21 @@ if [ ! -d /var/log/logrotate ]; then
sudo chown -R root:adm /var/log/logrotate
fi
# custom logrotate config
sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.CUSTOM /etc/logrotate.CUSTOM
sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/00_defaults /etc/logrotate.d/00_defaults
sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/emonhub /etc/logrotate.d/emonhub
sudo ln -sf $usrdir/EmonScripts/defaults/etc/logrotate.d/emoncms /etc/logrotate.d/emoncms
sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.CUSTOM /etc/logrotate.CUSTOM
sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/00_defaults /etc/logrotate.d/00_defaults
sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/emonhub /etc/logrotate.d/emonhub
sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/logrotate.d/emoncms /etc/logrotate.d/emoncms

sudo chown root /etc/logrotate.CUSTOM
sudo chown root /etc/logrotate.d/00_defaults
sudo chown root /etc/logrotate.d/emonhub
sudo chown root /etc/logrotate.d/emoncms

# log2ram cron hourly entry
sudo ln -sf $usrdir/EmonScripts/defaults/etc/cron.hourly/log2ram /etc/cron.hourly/log2ram
sudo ln -sf $openenergymonitor_dir/EmonScripts/defaults/etc/cron.hourly/log2ram /etc/cron.hourly/log2ram
sudo chmod +x /etc/cron.hourly/log2ram
# copy in commented out placeholder logrotate file
sudo cp $usrdir/EmonScripts/defaults/etc/cron.daily/logrotate /etc/cron.daily/logrotate
sudo cp $openenergymonitor_dir/EmonScripts/defaults/etc/cron.daily/logrotate /etc/cron.daily/logrotate

# --------------------------------------------------------------------------------
# Misc
Expand Down
10 changes: 5 additions & 5 deletions install/firmware.sh
Expand Up @@ -4,16 +4,16 @@ source config.ini
# --------------------------------------------------------------------------------
# Enable serial uploads with avrdude and autoreset
# --------------------------------------------------------------------------------
cd $usrdir
if [ ! -d $usrdir/avrdude-rpi ]; then
cd $openenergymonitor_dir
if [ ! -d $openenergymonitor_dir/avrdude-rpi ]; then
git clone https://github.com/openenergymonitor/avrdude-rpi.git
$usrdir/avrdude-rpi/install
$openenergymonitor_dir/avrdude-rpi/install
else
echo "- avrdude-rpi already exists"
fi

cd $usrdir
if [ ! -d $usrdir/RFM2Pi ]; then
cd $openenergymonitor_dir
if [ ! -d $openenergymonitor_dir/RFM2Pi ]; then
git clone https://github.com/openenergymonitor/RFM2Pi
else
echo "- RFM2Pi already exists"
Expand Down
17 changes: 12 additions & 5 deletions install/init.sh
@@ -1,18 +1,25 @@
#!/bin/bash

user=$USER
usrdir=/opt/emon
openenergymonitor_dir=/opt/openenergymonitor
emoncms_dir=/opt/emoncms

sudo apt-get update -y
sudo apt-get install -y git-core

sudo mkdir $usrdir
sudo chown $user $usrdir
cd $usrdir
sudo mkdir $openenergymonitor_dir
sudo chown $user $openenergymonitor_dir

sudo mkdir $emoncms_dir
sudo chown $user $emoncms_dir

cd $openenergymonitor_dir

git clone https://github.com/openenergymonitor/EmonScripts.git
cd EmonScripts
git checkout oem_emoncms_dirs

cd $usrdir/EmonScripts/install
cd $openenergymonitor_dir/EmonScripts/install
./main.sh
cd

Expand Down