setup docker with variables;

debug logging for configuration variables;
This commit is contained in:
Dobromir Popov ONE
2022-03-29 23:38:01 +03:00
parent 80a6e13c2e
commit a701761510
9 changed files with 68 additions and 17 deletions

BIN
.ionide/symbolCache.db Normal file

Binary file not shown.

View File

@@ -13,7 +13,7 @@ RUN npm ci --only=production
COPY . . COPY . .
ENV NODE_ENV mitko ENV NODE_ENV development-dockerfile
# USING BASE_IMAGE # USING BASE_IMAGE
FROM node:12-alpine FROM node:12-alpine

View File

@@ -9,7 +9,10 @@
"operatorsAliases": false, "operatorsAliases": false,
"logFile":"/dht.log", "logFile":"/dht.log",
"gardenIP":"192.168.0.187", "gardenIP":"192.168.0.187",
"mqttIP": "192.168.0.10" "mqttIP": "192.168.0.10",
"mqttPortHttp": "1884",
"mqttPortHttps": "8444",
"irHost": "192.168.0.10"
}, },
"mitko": { "mitko": {
"host": "node-mysql", "host": "node-mysql",
@@ -21,7 +24,10 @@
"operatorsAliases": false, "operatorsAliases": false,
"logFile":"/dht.log", "logFile":"/dht.log",
"gardenIP":"192.168.0.187", "gardenIP":"192.168.0.187",
"mqttIP": "192.168.0.10" "mqttIP": "192.168.0.10",
"mqttPortHttp": "1884",
"mqttPortHttps": "8444",
"irHost": "192.168.0.10"
}, },
"production": { "production": {
"username": "iot", "username": "iot",
@@ -33,6 +39,9 @@
"operatorsAliases": false, "operatorsAliases": false,
"logFile":"/var/www/dht.log", "logFile":"/var/www/dht.log",
"gardenIP":"192.168.0.187", "gardenIP":"192.168.0.187",
"mqttIP": "192.168.0.10" "mqttIP": "192.168.0.10",
"mqttPortHttp": "1884",
"mqttPortHttps": "8444",
"irHost": "192.168.0.10"
} }
} }

View File

@@ -9,8 +9,12 @@ services:
- DATABASE_USER=root - DATABASE_USER=root
- DATABASE_PASS=mitko2021 - DATABASE_PASS=mitko2021
- GARDEN_IP=192.168.0.187 - GARDEN_IP=192.168.0.187
- MQTT_HOST=node-mqtt
- MQTT_PORT_HTTP=1883
- MQTT_PORT_HTTPS=8444
depends_on: depends_on:
- node-mysql - node-mysql
- node-mqtt
restart: always restart: always
ports: ports:
- 2081:2080 - 2081:2080
@@ -22,6 +26,8 @@ services:
MYSQL_ROOT_PASSWORD: mitko2021 MYSQL_ROOT_PASSWORD: mitko2021
MYSQL_USER: iot MYSQL_USER: iot
MYSQL_PASSWORD: mitko2021 MYSQL_PASSWORD: mitko2021
volumes:
- iotdbdata:/var/lib/mysql
# for mitko:mqtt # for mitko:mqtt
node-mqtt: node-mqtt:
image: eclipse-mosquitto image: eclipse-mosquitto
@@ -30,3 +36,5 @@ services:
ports: ports:
- 1885:1883 - 1885:1883
restart: always restart: always
volumes:
iotdbdata:

5
readme.md Normal file
View File

@@ -0,0 +1,5 @@
to build and deploy in docker: run |
~/var/www/html/iot.d-popov.com#> docker-compose build
+ docker-compose up
+ OR
+ docker-compose up --build

View File

@@ -6,13 +6,23 @@ const { parse } = require('querystring');
var moment = require('moment'); var moment = require('moment');
const request = require('request'); const request = require('request');
const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env);
const config = require(__dirname + '/../../config/config.json')[env];
var irHost = process.env.IR_HOST || config.irHost || '127.0.0.1'
console.log('DB: Checking config sources: process.env.IR_HOST: %s', process.env.IR_HOST);
console.log('DB: Checking config sources: config.irHost : %s', config.irHost );
console.log('IR: irHost : %s', irHost );
function GetDht() { function GetDht() {
try {//? try {//?
var result; var result;
(async () => { (async () => {
try { try {
//http://192.168.0.58/json?view=sensorupdate //http://192.168.0.58/json?view=sensorupdate
var url='http://'+'192.168.1.143'+'/cm?cmnd=status%2010&user=admin&password=vlado555'; var url='http://'+irHost+'/cm?cmnd=status%2010&user=admin&password=vlado555';
request(url, { json: true }, (err, res, body) => { request(url, { json: true }, (err, res, body) => {
if (err) { return console.log("Problem getting current conditions: " + err); } if (err) { return console.log("Problem getting current conditions: " + err); }

View File

@@ -4,29 +4,44 @@ const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env); console.log("ENV: %s", env);
const config = require(__dirname + '/../config/config.json')[env]; const config = require(__dirname + '/../config/config.json')[env];
console.log('MQTT: Checking config sources: process.env.MQTT_HOST: %s', process.env.MQTT_HOST);
console.log('MQTT: Checking config sources: process.env.MQTT_PORT_HTTP: %s', process.env.MQTT_PORT_HTTP);
console.log('MQTT: Checking config sources: process.env.MQTT_PORT_HTTPS: %s', process.env.MQTT_PORT_HTTPS);
console.log('MQTT: Checking config sources: config.mqttIP : %s', config.mqttIP );
console.log('MQTT: Checking config sources: config.mqttPortHttp : %s', config.mqttPortHttp );
console.log('MQTT: Checking config sources: config.mqttPortHttps : %s', config.mqttPortHttps );
var mosca = require('mosca'); var mosca = require('mosca');
var mqtt_settings = { var mqtt_settings = {
port:1884 host:process.env.MQTT_HOST || config.mqttIP,
port:process.env.MQTT_PORT_HTTP || config.mqttPortHttp || 1884
} }
if(typeof credentials!=='undefined') if(typeof credentials!=='undefined')
{ {
mqtt_settings.secure = { mqtt_settings.secure = {
port: 8444, host:process.env.MQTT_HOST || config.mqttIP,
port: process.env.MQTT_PORT_HTTPS || config.mqttPortHttps || 8444,
keyPath: SECURE_KEY, keyPath: SECURE_KEY,
certPath: SECURE_CERT, certPath: SECURE_CERT,
} }
} }
var mqtt = new mosca.Server(mqtt_settings);
mqtt.on('ready', function(){ mqtt_settings.port = parseInt(mqtt_settings.port);
console.log("MQTT ready on port " + mqtt_settings.port); console.log('MQTT: mqtt_settings.host : %s', mqtt_settings.host );
}) console.log('MQTT: mqtt_settings.port : %s', mqtt_settings.port );
mqtt.on('clientConnected', function(){
console.log("MQTT client connected !"); //MQTT SERVER!!!
}); //var mqttServer = new mosca.Server(mqtt_settings);
// mqttServer.on('ready', function(){
// console.log("MQTT ready on port " + mqtt_settings.port);
// })
// mqttServer.on('clientConnected', function(){
// console.log("MQTT client connected !");
// });
var mqtt = require('mqtt'); var mqtt = require('mqtt');
var mqtt_client = mqtt.connect('mqtt://'+ config.mqttIP); var mqtt_client = mqtt.connect('mqtt://'+ mqtt_settings.host);
mqtt_client.on('connect', function () { mqtt_client.on('connect', function () {
console.log("MQTT connected. subscribing to topics"); console.log("MQTT connected. subscribing to topics");
mqtt_client.subscribe('tele/tasmota/STATE'); mqtt_client.subscribe('tele/tasmota/STATE');

View File

@@ -11,3 +11,6 @@
<input type="submit" class='btn btn-default button' value="Log In" /> <input type="submit" class='btn btn-default button' value="Log In" />
</div> </div>
</form> </form>
<!-- // ejs view
// sort csv numbers from textbox input -->

1
views/sort.ejs Normal file
View File

@@ -0,0 +1 @@
//generate ejs view to sort csv numbers from textbox