Skip to content

Application which creates Openstack Virtual Machines when Google Home commands it to.

License

Notifications You must be signed in to change notification settings

colin-purcell/google-home-openstack

 
 

Repository files navigation

Google Home Openstack

Application which creates Openstack Virtual Machines when command Google Home to.

Gitter Circle CI Status

Architecture

Purpose

google-home-openstack lets you control your Openstack setup with your Google Home. This application was split into multiple parts; internet-part and intranet-part (this appliaction).

Thanks to this architecture it is possible to control your Openstack setup, without connecting it to the internet.

The main purpose of this package is validating the incoming parameters from Dialogflow, sending the correct request(s) to the Openstack API, and sending a human-readable anwser back.

Getting Started

From Source

To build it from source, make sure you have NodeJS 9.x.x and Git installed.

# Clone the repository
git clone https://github.com/brunnel6/google-home-openstack
# Edit configuration
vi config.yml
# Install dependencies
npm install
# Build the application
npm run build
# Run it
CONFIG="$(pwd)/config.yml" npm start

Docker

You can use Docker 18.x.x-ce to run the application, without installing NodeJS on your machine.

# Edit configuration
wget https://raw.githubusercontent.com/BRUNNEL6/google-home-openstack/master/config.yml
vi config.yml

# Start container
# Do not forget environment variables if needed!
docker run \
  -v "$(pwd)/config.yml:/var/lib/google-home-openstack/config.yml" \
  -ti brunnel6/google-home-openstack:latest

docker-compose (+automatic container updates)

This docker-compose configuration starts v2tec/watchtower in addition to google-home-openstack. Watchtower watches over the docker image and updates it, if a new docker image version is public.

# Edit configuration
cp config.yml my-config.yml
vi my-config.yml

# Start applications
docker-compose up

Environment Variables

Variable Name Description Type Example Default
CONFIG The absolute path to the config file string CONFIG="$(pwd)/config.yml" -
DRY_RUN If should only simulate this app (not actually alter anything permanently) boolean DRY_RUN=true false
NO_EMOJI Do not print any emojis boolean NO_EMOJI=true false
LOG_LEVEL The level of the log (error, warn, info, debug, silly) string LOG_LEVEL=silly info

Related

People

About

Application which creates Openstack Virtual Machines when Google Home commands it to.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.6%
  • Dockerfile 0.4%