Git Product home page Git Product logo

nidus's Introduction

Nidus

Nidus is a small experimental centralized home monitoring system that follow a client/server architecture with multiple autonomous wireless micro-controllers.

Features

  • Web GUI interface
    • Dashboard
    • Manage devices (Sentinel)
  • Monitor:
    • Humidity
    • Temperature
    • Pressure
    • Movement
    • Light
    • Gate
  • Control:
    • Monitoring sensors
    • Lights
    • Video camera
  • Alerts & Notifications
  • Security
    • HTTPS
  • Dabase backup
  • Kubernetes

Architecture

The application run as a Docker stack with Portainer on a Raspberry Pi 4, running a custom Raspios Lite image and managed with Ansible. See: docker-compose.yaml

Nidus architecture

Components

Application

Micro-controller

NodeMCU Lua Amica Module V2 ESP8266 ESP-12FCP2102, BMP180 and DS18B20.

Nidus architecture

Server

Raspberry Pi 4 Modèle B 4 Go ARM-Cortex-A72

Nidus architecture

Requirements

Usage

This application rely on some environment variables;

# database and mongo-express
DATABASE_ROOT_USER=root
DATABASE_ROOT_PASSWORD=root
DATABASE_NAME=nidus
DATABASE_USERNAME=nidus
DATABASE_PASSWORD=nidus
DATABASE_PORT=27017
# api
API_IMAGE_VERSION=dev
API_ENV=dev
API_PAIRING_KEY=9fca54477c8ad4e70dc5e1084f884aad
API_JWT_SECRET=d7a481461577ba4c3c4c6946cca7204b
API_JWT_EXPIRE=90
API_BCRYPT_HASH=7f91317e30a02bc7b87205e95b842df2
API_DATABASE_URI=mongodb://nidus:nidus@database:27017/nidus
# web
WEB_IMAGE_VERSION=dev
WEB_ENV=dev
WEB_APP_KEY=aaddddawrfffvvvvssaa
WEB_APP_API_URL=http://api.nidus.lan

Run with Docker

Create a file name .env and add the environment variables, then use Docker compose to build and start the stack.

docker compose up --env-file .env up -d

Run with Portainer

  • Create the stack from this Git repository
  • Add the environment variables

Launching

The web app is accessible at http://nidus.lan and the API at http://api.nidus.lan.

nidus's People

Contributors

alexandrelamberty avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.