Giter Club home page Giter Club logo

OpenDash

A realtime dashboard to view/control all of your home automation toys.

CircleCI

Deploy

OpenDash can be deployed with Docker and Docker Compose. See Docker install docs for your platform.

To launch an official prebuilt image of OpenDash, create a docker-compose.yml and add the following:

opendash:
  image: opendash/opendash:latest
  links:
    - mongo
  ports:
    - 80:3000
  environment:
    MONGO_URL: mongodb://mongo:27017/opendash

mongo:
  image: mongo:latest
  command: mongod --storageEngine=wiredTiger

Now you can start the app and database by running the following command from the same directory as your docker-compose.yml.

docker-compose up -d

...and the app should be available at http://localhost

Development

Before cloning this project to work with it locally or build from source, make sure you have installed all of the dependencies for your operating system. For more info, see the install docs.

Once you've installed the dependencies for your OS, you're ready to download, build, and run OpenDash. Note that the instructions below are specifically for local development/testing. Docker should be used for production deployments. More production deployment details for various platforms coming soon.

Install

git clone https://github.com/open-dash/open-dash.git

cd open-dash

meteor npm install

Configure

Default Settings

Client side user creation is disabled, so you will need to set a default user (or users) in a settings.json file. Note that admin is currently the only role with access to everything, so be sure to set that for your user. You can also import any application settings the same way. If you run the app with a settings.json like below, it will create the default users (only if none exist) and the remaining settings will be inserted into the Settings collection (if the given field is not already defined in the database).

Once you've imported settings, you can run the app without your settings.json because your settings will now be saved in the database and can be viewed/updated at the /settings route.

Example settings.json

The latest example settings.json will always be available in the root of the app and will contain all currently supported values. It is recommended that you copy that into your own file and make sure to never commit it to source control (since it contains things like default passwords and API keys)

I recommend creating a settings file for development and one for production so you use different API keys in each environment.

# create a copy to modify from the provided example
cp settings.json settings.dev.json

Now open your new settings.dev.json file and add any desired users or settings.

// settings.dev.json

{
  // Add as many users to the array as you'd like.
  // Note that they will only be created if there are 0 users in the database.
  "defaultUsers": [
    {
      "email": "[email protected]",
      "username": "admin",
      "password": "admin123",
      "roles": ["admin"]
    },
    {
      "email": "[email protected]",
      "username": "admin2",
      "password": "admin456",
      "roles": ["admin"]
    }
  ],

  "app" : {
    "title" : "OpenDash",
    "adminEmail" : ""
  },

  "mail" : {
    "smtpUrl" : ""
  },

  "smartthings" : {
    "clientId" : "",
    "clientSecret" : ""
  },

  "kadira" : {
    "appId" : "",
    "appSecret" : ""
  },

  "segment" : {
    "writeKey" : "  "
  }
}

Run

# start the app and specify your settings file
meteor --settings settings.dev.json

# running on http://localhost:3000

You new user(s) will be created and your settings saved in the database. Any subsequent app starts can simply be:

# start the app
meteor

# running on http://localhost:3000

OpenDash's Projects

housepanel icon housepanel

Open source highly customizable dashboard for your SmartThings home

open-dash icon open-dash

A realtime dashboard to view/control all of your home automation toys.

open-dash-diy icon open-dash-diy

Node.js Open-Dash DIY Solution for internal use only, no external hosting.

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.