Your home assistant on your Raspberry Pi built with Node.js
JavaScript HTML CSS Shell
Latest commit 6e6a64e Dec 15, 2016 @Pierre-Gilles Pierre-Gilles committed on GitHub Merge pull request #108 from GladysProject/greenkeeper-fs-extra-1.0.0
Update fs-extra to version 1.0.0 🚀
Failed to load latest commit information.
api send mode id into scope in mode change Dec 10, 2016
assets init music controller with boxId Nov 12, 2016
cache add cache folder Mar 19, 2016
config Added an env sample to list which variables are available to customiz… Dec 15, 2016
logs adding log folder Jun 12, 2015
tasks only execute apidoc in controllers folder Dec 10, 2016
test Proposal for allowing user to set their own env vars directly in the … Dec 14, 2016
views return boxId and display it in init function Nov 12, 2016
.codeclimate.yml configure codeclimate Oct 16, 2016
.env-sample Added an env sample to list which variables are available to customiz… Dec 15, 2016
.gitignore Proposal for allowing user to set their own env vars directly in the … Dec 14, 2016
.jsbeautifyrc Adding Gulp, JShint and JSBeautifier Jul 14, 2015
.jshintrc added jshintrc to specify esversion to 6 Feb 27, 2016
.npmignore Adding .env to npmignore. Dec 15, 2016
.sailsrc first commit Jun 5, 2015
.travis.yml test with Node.js 6 Oct 16, 2016 updated changelog for 3.3.3 Dec 10, 2016
Dockerfile grunt cli in Dockerfile Mar 27, 2016
Gruntfile.js first commit Jun 5, 2015 first commit Jun 5, 2015 Added an env sample to list which variables are available to customiz… Dec 15, 2016
apidoc.json add documentation URL to apidoc.json Dec 10, 2016
app.js Proposal for allowing user to set their own env vars directly in the … Dec 14, 2016
dev.js - Start prod or dev Mar 27, 2016
index.js in case of error, crash Mar 27, 2016
init.js in case of error, crash Mar 27, 2016
package.json Merge pull request #108 from GladysProject/greenkeeper-fs-extra-1.0.0 Dec 15, 2016 use latest version of Node.js LTS Sep 18, 2016 execution right Oct 12, 2016

Gladys Project

Build Status Code Climate


The Project

Gladys is an home automation assistant to help you in your everyday life.

Yes, like a kind of JARVIS!

Gladys is connected to all your devices in your home, she is connected to your calendar, to a lots of API to help you. But let's pick an example :

  • It's 8 AM. Gladys wakes you up automatically because she knows that you need to be at work at 9 AM, and that according to the traffic, you'll need 30min to go to work with your car. She knows that you like 30 min to get ready. She wakes you up with a soft progressive warm light thanks to your Philips Hue, and puts a nice music in your room.
  • It's 8.10 AM, Gladys detects thanks to a motion sensor that you are getting out of bed. She immediately starts the wake-up scenario : she tells the coffee machine to prepare the coffee, and opens the blinds.
  • At 8.30 AM, you leave the house. Gladys detects thanks to your smartphone that you are not at home anymore, and shuts down everything inside.
  • At 6.30 PM, you are getting back home : Everything is ready when you arrive.
  • You are going to sleep, so you simply put your phone on your nightstand where a NFC tag is sticked. It immediately sends a request to Gladys to tell here you are going to sleep. She starts the "Going to sleep" scenario, and turns off all lights.

This is just a simple scenario, possibilities with Gladys are just endless ! Don't hesitate to propose yours :)

Interested in Gladys ? Try it at home, it's free and Open Source !

Website :


Gladys is 100% written in Node.js.


  • Node.js ( >= v4.x.x )
  • MySQL
  • Command Line Tools
    •  Mac OS X: Xcode (or OS X 10.9 Mavericks: xcode-select --install)
    •  Windows: Visual Studio
    •  Ubuntu, Debian: sudo apt-get install build-essential

Getting Started

The easiest way to get started is to install Gladys with NPM :

npm install -g gladys

Gladys is now located where you global node_modules are.

For example on Raspbian or on a Mac, it's located in :


Connect Gladys to MySQL

To connect Gladys to your database, you will need to set some environment variables. To do so, you'll have to create a .env file at the root of this project. The content of this file can be found by looking at .env-sample, which lists all the customizable env vars.

Note : You will need to create the database as well in MySQL:

CREATE DATABASE gladys; -- or whatever name you've set in your .env file.`

Compile assets

If you want to recompile assets and run all tasks, you can run :

grunt buildProd

Create tables

Gladys create automatically all the tables it needs.

You need to execute the init file :

node init.js

Start Gladys

node app.js

Visit Gladys dashboard

If you are on localhost, visit : http://localhost:1337 (in development mode), orhttp://localhost:8080 (in production).

If you want to access Gladys anywhere on your local network, just replace localhost by the ip of your machine.


npm install returns me a lot of errors !

Make sure that node-gyp is working fine. Wait, what is node-gyp ?

Node-gyp is a cross-platform command-line tool written in Node.js for compiling native addon modules for Node.js.

To be sure that you're doing that good, check node-gyp installation guide.


Pull request are welcome, but code must follow some guidelines.

  • Use JSHint.
  • For the AngularJS client code, follow John Papa's Angular Style Guide.
  • Please Unit test your code. We use Mocha and Istanbul for code coverage. No pull requests will be accepted without good unit tests.

If you want to develop a new functionality, develop a Gladys Module instead of modifying the core! More about modules on the website.