Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stanford-oval/genie-cloud
Genie As A Service and Thingpedia
https://github.com/stanford-oval/genie-cloud
cloud-native hacktoberfest voice-assistant
Last synced: about 9 hours ago
JSON representation
Genie As A Service and Thingpedia
- Host: GitHub
- URL: https://github.com/stanford-oval/genie-cloud
- Owner: stanford-oval
- License: apache-2.0
- Created: 2016-02-11T19:30:13.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-03-05T18:45:22.000Z (almost 2 years ago)
- Last Synced: 2025-02-07T01:13:19.856Z (8 days ago)
- Topics: cloud-native, hacktoberfest, voice-assistant
- Language: JavaScript
- Homepage: https://genie.stanford.edu/
- Size: 44.2 MB
- Stars: 297
- Watchers: 23
- Forks: 44
- Open Issues: 85
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-github-repos - stanford-oval/genie-cloud - Genie As A Service and Thingpedia (JavaScript)
README
# Genie for Cloud Environments
[![Build Status](https://travis-ci.com/stanford-oval/almond-cloud.svg?branch=master)](https://travis-ci.com/stanford-oval/almond-cloud)
[![Coverage Status](https://coveralls.io/repos/github/stanford-oval/almond-cloud/badge.svg?branch=master)](https://coveralls.io/github/stanford-oval/almond-cloud?branch=master)
[![Dependency Status](https://david-dm.org/stanford-oval/almond-cloud/status.svg)](https://david-dm.org/stanford-oval/almond-cloud)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/stanford-oval/almond-cloud.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/stanford-oval/almond-cloud/context:javascript)
[![Discord](https://img.shields.io/discord/642041264208085014)](https://discord.gg/anthtR4)
[![Discourse status](https://img.shields.io/discourse/https/community.almond.stanford.edu/status.svg)](https://community.almond.stanford.edu)This repository is the cloud-native version of Genie, the open virtual-assistant.
It includes the web frontend, the Genie backend, the embedded skill library, and
the NLP model servers.Genie is a research project led by
prof. Monica Lam, from Stanford University. You can find more
information at .## Development
1. You need Git.
Mac:
1. Install [Homebrew](https://brew.sh/)
2. Install Git:
brew install git
2. Clone this repository.
You can clone it wherever you want, but if you don't know where to put it I
recommend:
mkdir -p "${HOME}/src/github.com/stanford-oval" && cd "${HOME}/src/github.com/stanford-oval"
to create a directory and change into it.
Then
git clone --branch wip/nrser/k8s-dev-setup https://github.com/stanford-oval/almond-cloud.git
and change into the cloned repository with
cd almond-cloud3. You need Kubernetes running locally. For Windows and Mac we recommend
[Docker Desktop][]. After installation, follow the
[instructions](https://docs.docker.com/desktop/kubernetes/#enable-kubernetes)
to enabled Kubernetes.
On Linux, there are (of course) several options. [Minikube][], [MicroK8s][]
and [Kind][] are the ones I've heard of. These instructions will follow a
Docker Desktop installation, so adjust as needed.
[Docker Desktop]: https://www.docker.com/products/docker-desktop
[Minikube]: https://github.com/kubernetes/minikube
[MicroK8s]: https://microk8s.io/
[Kind]: https://github.com/kubernetes-sigs/kind4. Build the Almond Cloud Docker image
docker build -f docker/Dockerfile -t localhost/almond-cloud .5. Install the latest `kustomize`.
Mac:
brew install kustomize
Windows and Linux: Follow their installation
[instructions](https://kubectl.docs.kubernetes.io/installation/kustomize/).
If you're on the Mac, I recommend the Homebrew option.
> ### NOTE ###
>
> Kustomize _does_ come bundled with the `kubectl` utility that Kubernetes
> installations ship with, but some or all will be too out-of-date
> for our needs.
[Kustomize]: https://kustomize.io/6. Deploy the Kubernetes Dashboard
kustomize build k8s/dashboard/dev | kubectl apply -f -
In a separate terminal, run
kubectl proxy
and keep that terminal open.
Visit
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
and use the _Skip_ button to login and view the dashboard (there shouldn't
be much there yet!).7. Deploy the Nginx Ingress Controller
kustomize build k8s/ingress-nginx/dev | kubectl apply -f -8. Create a [Mailgun][] account (if you don't already have one) and get the
_SMTP_ username and password for the domain you want to use to send emails.
If you use the "sandbox" domain, make sure you add your email address to the
_Authorized Recipients_ and click the confirmation link they mail to you.
[Mailgun]: https://www.mailgun.com/
9. Create a local dev environment file
1. Create a text file in the `dev` directory named `.env`
2. Add these lines to the file, replacing the stuff between the `'` quotes
with the SMTP credentials from the last step and your email address.
MAILGUN_SMTP_USERNAME='[email protected]'
MAILGUN_SMTP_PASSWORD='your-smtp-password'
DEVELOPER_EMAIL='[email protected]'
3. Save the file.
10. Generate your `kustomize` secret file
./dev/bin/almond-dev.configure.bash
The secret file is written to `k8s/config/dev/secret.yaml`.11. Check your config files build successfully with `kustomize`
kustomize build ./k8s/dev
You should see a big dump of `YAML` to the screen. If there is an error,
try to figure it out or ask for help.9. Deploy Genie
kustomize build ./k8s/dev | kubectl apply -f -
10. Go back to the dashboard and switch to the `almond-dev` namespace.
You should see the Genie components booting up. It can take a few
minutes for everything to "go green", but after that you can use Almond
Cloud at
http://localhost:8080