All Projects → stanford-oval → genie-cloud

stanford-oval / genie-cloud

Licence: Apache-2.0 license
Genie As A Service and Thingpedia

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
Pug
443 projects
go
31211 projects - #10 most used programming language
CSS
56736 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to genie-cloud

gotway
☸️ Cloud native API Gateway powered with in-redis cache
Stars: ✭ 71 (-73.41%)
Mutual labels:  cloud-native
newtonjs-graph
Cloud Architecture Graphs for Humans
Stars: ✭ 85 (-68.16%)
Mutual labels:  cloud-native
configuro
An opinionated configuration loading framework for Containerized and Cloud-Native applications.
Stars: ✭ 81 (-69.66%)
Mutual labels:  cloud-native
django-hurricane
Hurricane is an initiative to fit Django perfectly with Kubernetes.
Stars: ✭ 53 (-80.15%)
Mutual labels:  cloud-native
kubernetes-reading-notes
Kubernetes源码阅读笔记
Stars: ✭ 96 (-64.04%)
Mutual labels:  cloud-native
ocibuilder
A tool to build OCI compliant images
Stars: ✭ 63 (-76.4%)
Mutual labels:  cloud-native
smart speaker from scratch
Make an open source smart speaker from scratch
Stars: ✭ 28 (-89.51%)
Mutual labels:  voice-assistant
rust-cloud-native.github.io
A curated list of awesome Cloud Native Rust frameworks, libraries and software
Stars: ✭ 212 (-20.6%)
Mutual labels:  cloud-native
zadig
Zadig is a cloud native, distributed, developer-oriented continuous delivery product.
Stars: ✭ 1,615 (+504.87%)
Mutual labels:  cloud-native
kc-sofastack-demo
SOFAStack Demo for SOFAStack Cloud Native Workshop on KubeCon China 2019
Stars: ✭ 37 (-86.14%)
Mutual labels:  cloud-native
opentelemetry-js-api
OpenTelemetry Javascript API
Stars: ✭ 75 (-71.91%)
Mutual labels:  cloud-native
cloud-native-pipelines
Cloud-native pipelines leveraging Concourse, Pivotal Build Service and Spinnaker to deploy apps
Stars: ✭ 15 (-94.38%)
Mutual labels:  cloud-native
opssight-connector
OpsSight Connector documentation
Stars: ✭ 15 (-94.38%)
Mutual labels:  cloud-native
workshopctl
A tool to run workshops with
Stars: ✭ 38 (-85.77%)
Mutual labels:  cloud-native
wash
WAsmcloud SHell - A multi-tool for various wasmCloud activities.
Stars: ✭ 80 (-70.04%)
Mutual labels:  cloud-native
estafette-ci-builder
Component of Estafette CI that executes build steps
Stars: ✭ 16 (-94.01%)
Mutual labels:  cloud-native
apisix-website
Apache APISIX Website
Stars: ✭ 81 (-69.66%)
Mutual labels:  cloud-native
CoSky
High-performance, low-cost microservice governance platform. Service Discovery and Configuration Service | 高性能、低成本微服务治理平台
Stars: ✭ 57 (-78.65%)
Mutual labels:  cloud-native
k8s-app-monitor-agent
Kubernetes application monitor agent
Stars: ✭ 20 (-92.51%)
Mutual labels:  cloud-native
spokestack-ios
Spokestack: give your iOS app a voice interface!
Stars: ✭ 27 (-89.89%)
Mutual labels:  voice-assistant

Genie for Cloud Environments

Build Status Coverage Status Dependency Status Language grade: JavaScript Discord Discourse status

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 https://oval.cs.stanford.edu.

Development

  1. You need Git.

    Mac:

    1. Install Homebrew

    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-cloud
    
  3. You need Kubernetes running locally. For Windows and Mac we recommend Docker Desktop. After installation, follow the instructions 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.

  4. 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.

    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.

  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.

  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.

  12. Deploy Genie

    kustomize build ./k8s/dev | kubectl apply -f -
    
  13. 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].