-
Notifications
You must be signed in to change notification settings - Fork 1
/
emoncms_pre.sh
112 lines (97 loc) · 4.17 KB
/
emoncms_pre.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/command/with-contenv sh
NEW_INSTALL=0
if ! [ -d "$EMONCMS_DATADIR" ]; then
echo "Creating timeseries folders"
mkdir -p "$EMONCMS_DATADIR"
mkdir -p "$EMONCMS_DATADIR/backup"
mkdir -p "$EMONCMS_DATADIR/backup/uploads"
for i in $TS; do mkdir -p "$EMONCMS_DATADIR/$i"; done
chown -R "$DAEMON" "$EMONCMS_DATADIR"
else
echo "Using existing timeseries"
fi
if ! [ -d "$EMONCMS_DATADIR/mysql" ]; then
echo "Creating a new mariadb"
mysql_install_db --user=mysql --datadir=$EMONCMS_DATADIR/mysql > /dev/null
# --skip-name-resolve --skip-test-db
NEW_INSTALL=1
else
echo "Using existing mariadb"
fi
OPTIONS_JSON=/data/options.json
if [ -f $OPTIONS_JSON ]; then
USER=$(jq --raw-output '.MQTT_USER // empty' $OPTIONS_JSON)
PASSWORD=$(jq --raw-output '.MQTT_PASSWORD // empty' $OPTIONS_JSON)
LOG_LEVEL=$(jq --raw-output '.MQTT_LOG_LEVEL // empty' $OPTIONS_JSON)
HOST=$(jq --raw-output '.MQTT_HOST // empty' $OPTIONS_JSON)
if [ "$USER" ]; then MQTT_USER=$USER; fi
if [ "$PASSWORD" ]; then MQTT_PASSWORD=$PASSWORD; fi
if [ "$LOG_LEVEL" ]; then MQTT_LOG_LEVEL=$LOG_LEVEL; fi
if [ "$HOST" ]; then MQTT_HOST=$HOST; fi
LOCAL_TZ=$(jq --raw-output '.TZ // empty' $OPTIONS_JSON)
if [ "$LOCAL_TZ" ]; then TZ=$LOCAL_TZ; fi
fi
cp /usr/share/zoneinfo/$TZ /etc/localtime
cd $OEM_DIR
# REGENERATING CONF FILES FROM ENV VARS
echo "CREATING /etc/my.cnf"
mv /etc/my.cnf /etc/my.old
echo "[mysqld]" >> /etc/my.cnf
echo "datadir=$EMONCMS_DATADIR/mysql" >> /etc/my.cnf
echo "CREATING MQTT CONF"
echo "persistence false" > $MQTT_CONF
echo "allow_anonymous false" >> $MQTT_CONF
echo "listener 1883" >> $MQTT_CONF
echo "password_file /etc/mosquitto/passwd" >> $MQTT_CONF
echo "log_dest stdout" >> $MQTT_CONF
echo "log_timestamp_format %Y-%m-%dT%H:%M:%S" >> $MQTT_CONF
for level in $MQTT_LOG_LEVEL; do echo "log_type $level" >> $MQTT_CONF; done;
echo "GENERATING EMONCMS SETTINGS.INI"
echo "emoncms_dir = '$EMONCMS_DIR'" > settings.ini
echo "openenergymonitor_dir = '$OEM_DIR'" >> settings.ini
echo "[sql]" >> settings.ini
echo "server = 'localhost'" >> settings.ini
echo "database = '$MYSQL_DATABASE'" >> settings.ini
echo "username = '$MYSQL_USER'" >> settings.ini
echo "password = '$MYSQL_PASSWORD'" >> settings.ini
echo "dbtest = true" >> settings.ini
echo "[redis]" >> settings.ini
echo "enabled = true" >> settings.ini
echo "prefix = ''" >> settings.ini
echo "[mqtt]" >> settings.ini
echo "enabled = true" >> settings.ini
echo "host = '$MQTT_HOST'" >> settings.ini
echo "user = '$MQTT_USER'" >> settings.ini
echo "password = '$MQTT_PASSWORD'" >> settings.ini
echo "[feed]" >> settings.ini
echo "engines_hidden = [0,6,10]" >> settings.ini
echo "redisbuffer[enabled] = true" >> settings.ini
echo "redisbuffer[sleep] = 300" >> settings.ini
echo "phpfina[datadir] = '$EMONCMS_DATADIR/phpfina/'" >> settings.ini
echo "phptimeseries[datadir] = '$EMONCMS_DATADIR/phptimeseries/'" >> settings.ini
echo "[interface]" >> settings.ini
echo "enable_admin_ui = true" >> settings.ini
echo "feedviewpath = 'graph/'" >> settings.ini
echo "favicon = 'favicon_emonpi.png'" >> settings.ini
echo "[log]" >> settings.ini
echo "; Log Level: 1=INFO, 2=WARN, 3=ERROR" >> settings.ini
echo "level = 2" >> settings.ini
cp settings.ini $WWW/emoncms/settings.ini
echo "CREATING USER/PWD FOR MOSQUITTO"
touch /etc/mosquitto/passwd;\
mosquitto_passwd -b /etc/mosquitto/passwd $MQTT_USER $MQTT_PASSWORD;\
echo "GENERATING config.cfg for BACKUP MODULE"
echo "user=$DAEMON" > config.cfg
echo "backup_script_location=$EMONCMS_DIR/modules/backup" >> config.cfg
echo "emoncms_location=$WWW/emoncms" >> config.cfg
echo "backup_location=$EMONCMS_DATADIR/backup" >> config.cfg
echo "database_path=$EMONCMS_DATADIR" >> config.cfg
echo "emonhub_config_path=" >> config.cfg
echo "emonhub_specimen_config=" >> config.cfg
echo "backup_source_path=$EMONCMS_DATADIR/backup/uploads" >> config.cfg
cp config.cfg $EMONCMS_DIR/modules/backup/config.cfg
echo "GENERATING backup.ini PHP extension"
echo "post_max_size=3G" > $PHP_CONF/backup.ini
echo "upload_max_filesize=3G" >> $PHP_CONF/backup.ini
echo "upload_tmp_dir=$EMONCMS_DATADIR/backup/uploads" >> $PHP_CONF/backup.ini
printf "$NEW_INSTALL" > /var/run/s6/container_environment/NEW_INSTALL