node-red
========
[Node-RED][1] is a tool for wiring together hardware devices, APIs and online
services in new and interesting ways.
![](screenshot.png)
## directory tree
> The `data` directory will be created after first running.
```
~./node-red/
├── docker-compose.yml
└── data/
├── flows_cred.json
├── flows.json
├── lib/
│ └── flows
└── settings.js
```
> The `arm` directory is only needed for ARM deployments, delete it if
> you are not using `arm`.
## docker-compose.yml
```yaml
node-red:
image: vimagick/node-red
ports:
- "1880:1880"
volumes:
- ./data:/data
restart: always
```
## set-up
Copy only the `docker-compose.yml` to your desired installation folder.
And follow these steps:
```bash
$ docker-compose up -d
$ docker-compose exec node-red node-red-admin hash-pw
>>> Password: ******
... $2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.
# Uncomment the adminAuth section and add your hashed password
$ sudo vi data/settings.js
$ docker-compose exec node-red bash
>>> cd /data
>>> apk add -U build-base
>>> npm install node-red-node-irc
>>> npm install node-red-node-daemon
>>> exit
$ docker-compose restart
```
> Install nodes from [node-red-nodes](https://github.com/node-red/node-red-nodes).
[1]: http://nodered.org/
## settings.js
```javascript
module.exports = {
...
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "ADD_HERE_YOUR_HASH_PASSWORD",
permissions: "*"
}],
default: {
permissions: "read"
}
},
...
}
```
> Password hash can be generated by running `node-red-admin hash-pw`
>