arichadda / edgetech-couchdb-startup

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License


Logo

EdgeTech-CouchDB-Startup

This repo builds upon the Apache Foundation's CouchDB database to inflate and initialize a CouchDB database and setup a connection with the external, cloud hosted database to sync with. All of this functionality is wrapped in Docker containers (natively through the CouchDB Docker Image on Docker Hub) for cross-platform compatibility.

Make Contribution · Report Bug · Request Feature

Built With

Python Poetry Docker

Getting Started

To run this repo, simply run:

docker-compose up

The filesaver is containerized and dependencies are managed using poetry.

Prerequisites

Running this repo requires that you have Docker installed.

Usage

You can find an example of the startup workflow in this repository's docker-compose.yml which starts up a CouchDB server and a sync initialization container. Additionally, some editing of relevant environment variables will be required based upon your system's configuration of topics to subscribe to and CouchDB configuration. Examples of these environment variables can be found in this repository's .env file.

Copying the CouchDB docker-compose statements into a master docker-compose.yml and .env files with your entire system of containers is the preferred workflow. Find an application architecture diagram example of how the usage of this module was envisioned below.

flowchart TD
    telemetrydata(Telemetry Data) -- Telemetry Topic --> mqtt{MQTT}
    sensordata(Sensor Data) -- Sensor Topic --> mqtt{MQTT}
    mqtt{MQTT} -- Subscribed to Telemetry Topic and Sensor Topic --> couchdbsaver(CouchDB Saver)
    couchdbsaver(CouchDB Saver) -- Write to Database --> couchdbserver(CouchDB Server)
    couchdbstartup(CouchDB Startup) -- Initalized Connection --> couchdbserver(CouchDB Server)
    couchdbstartup(CouchDB Startup) -- Initalized Connection --> couchdbremote[Cloud-Hosted CouchDB Server]
    couchdbserver(CouchDB Server) -- Sync Data with External Databse --> couchdbremote[Cloud-Hosted CouchDB Server]

style mqtt fill:#0072bc,color:#ffffff
style couchdbsaver fill:#F9D308,color:#ffffff
style telemetrydata fill:#80c342,color:#ffffff
style sensordata fill:#80c342,color:#ffffff
style couchdbstartup fill:#6657d3,color:#ffffff
style couchdbserver fill:#6657d3,color:#ffffff
style couchdbremote fill:#5f6475,color:#ffffff

Loading

Roadmap

  • TBA

See the open issues for a full list of proposed features (and known issues).

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b dev)
  3. Commit your Changes (git commit -m 'adding some feature')
  4. Push to the Branch (git push origin dev)
  5. Open a Pull Request

See CONTRIBUTING.md for more information.

License

Distributed under the Apache 2.0. See LICENSE.txt for more information.

Contact IQTLabs

See our other projects: https://github.com/IQTLabs/

(back to top)

About

License:Apache License 2.0


Languages

Language:Shell 91.3%Language:Dockerfile 8.7%