andrei-tatar / node-red-contrib-nora

Node Red Google Home integration
74 stars 25 forks source link

Self hosted #15

Closed jvondrus closed 5 years ago

jvondrus commented 5 years ago

Hello, do you planning to release NORA for self-hosted services as [test] app for private use? Thank you.

andrei-tatar commented 5 years ago

The backend service is open sourced: https://github.com/andrei-tatar/nora-service Feel free to self host it. Keep in mind you also need to change the node-red plugin.

jvondrus commented 5 years ago

Hello, thank you, that's really great. And sorry for duplicity, now I see same question at #14.

jvondrus commented 5 years ago

Dear Andrei, Do you have any "tutorial" for setting nora-service for the local running (config_local) and components like Google Actions, Firebase, JSON webtoken ... ? Thank you.

andrei-tatar commented 5 years ago

Nope no tutorial available. Actually a lot of changes need to be done to the backend in order to support self hosted mode. Since you don't actually need users, authentication, etc.

But you could actually host it also in heroku. You only need to add Postgress (which is also free) for the user table and add your own config variables (access keys/project ids/encryption secrets/etc.)

PORT - set by heroku
OAUTH_ID - from the firebase project - when you enable authentication
OAUTH_SECRET - same as above
JWT_COOKIE - cookie name for auth token (anything you like)
JWT_SECRET - random string used to sign the cookie (anything you like)
PROJECT_ID - firebase project id (same as google actions project id)
PROJECT_API_KEY - api key for request sync (https://developers.google.com/actions/smarthome/request-sync)
DATABASE_URL - set by heroku when you add postgress sql
SERVICE_ACCOUNT_ISSUER - homegraph issuer (https://developers.google.com/actions/smarthome/report-state#service-account-key)
SERVICE_ACCOUNT_KEY - homegraph account key
USER_ADMIN_UID - the uid of the user from firebase that is allowed to see the admin endpoint 
jvondrus commented 5 years ago

Hello, thank you. Your code is made well done. I have just last one question, about web address assignment. For google assistant action is main page .../smarthome, for account linking they are .../token + .../oauth or .../auth? For which service is second one (oauth vs auth)?

jvondrus commented 5 years ago

All done and running, thank you for code.

andrei-tatar commented 5 years ago

So you managed to get everything running?

jvondrus commented 5 years ago

Yes, most problem was on google sites and url address. But I got it :) Upgrading to https (Let’s Encrypt) at this moment, without using heroku or ngrok redirecting. If you give me your mail I can share my "upgrade" with you (if you are interesting, my mail is at profile).

andrei-tatar commented 5 years ago

You can create a pull request if it's compatible with the current setup (maybe behind a configuration flag)