A configurable DIY home automation, assistance and analytics project with IoT plugins.
George can aid you on automating your home.
George doesn't work out of the box! You need a server to run it on your local network and at least one IoT device.
Device | Support |
---|---|
ESP8266 | In development |
- Node
- Typescript
- Express
- GraphQL
- Apollo Server
- TypeORM
- MQTT client (Mosca)
- Redis client
- React
- Typescript
- Fluent UI Northstar
- SASS
- React Router
- Apollo Client
- Apollo in memory cache
- Apollo React Testing
- MobX
- React Testing Library
- Jest
- Webpack
- Clone this project:
git clone https://github.com/marcelovicentegc/george
- Install its dependencies:
npm i
- If you already have
docker
orredis
andpostgres
installed on your machine, jump to the next step, otherwise, install either Docker or Redis and Postgres before continuing - Make sure
redis
is up and running before starting this project (e.g.npm run start:redis
orsudo service redis-server start
orsudo systemctl start redis
) - Make sure
postgres
is up and running before starting this project (e.g.npm run start:postgres
orsudo service postgresl start
orsudo systemctl start postgres
) - By default, Redis runs on port 6379, the MQTT broker runs on port 1883, the server runs on port 4000, and the client on the port 3000. Check the configuration guide if you want to change some configuration.
- You're good to go. Run:
npm start
- A default user will be created every time upon start. It has
admin
as username and password. - To generate new types, first change the types on
src/server/schema/types/
, runnpm run gen
while George is up and running, and add the query or mutation onsrc/gql/
files if necessary.
For pull requests, check the contribution guide
To put George in production, check the production instructions.