{"id":13548315,"url":"https://github.com/stanford-oval/genie-cloud","last_synced_at":"2025-04-06T08:11:38.541Z","repository":{"id":39202088,"uuid":"51540802","full_name":"stanford-oval/genie-cloud","owner":"stanford-oval","description":"Genie As A Service and Thingpedia","archived":false,"fork":false,"pushed_at":"2023-03-05T18:45:22.000Z","size":46338,"stargazers_count":299,"open_issues_count":85,"forks_count":45,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-03-30T07:07:53.421Z","etag":null,"topics":["cloud-native","hacktoberfest","voice-assistant"],"latest_commit_sha":null,"homepage":"https://genie.stanford.edu/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stanford-oval.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2016-02-11T19:30:13.000Z","updated_at":"2025-03-28T07:13:57.000Z","dependencies_parsed_at":"2023-02-06T12:46:40.532Z","dependency_job_id":"116d5715-1c27-49a2-ab7e-fc4fe177bd55","html_url":"https://github.com/stanford-oval/genie-cloud","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanford-oval","download_url":"https://codeload.github.com/stanford-oval/genie-cloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451653,"owners_count":20940939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","hacktoberfest","voice-assistant"],"created_at":"2024-08-01T12:01:08.699Z","updated_at":"2025-04-06T08:11:38.513Z","avatar_url":"https://github.com/stanford-oval.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Genie for Cloud Environments\n\n[![Build Status](https://travis-ci.com/stanford-oval/almond-cloud.svg?branch=master)](https://travis-ci.com/stanford-oval/almond-cloud)\n[![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)\n[![Dependency Status](https://david-dm.org/stanford-oval/almond-cloud/status.svg)](https://david-dm.org/stanford-oval/almond-cloud)\n[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/stanford-oval/almond-cloud.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/stanford-oval/almond-cloud/context:javascript)\n[![Discord](https://img.shields.io/discord/642041264208085014)](https://discord.gg/anthtR4)\n[![Discourse status](https://img.shields.io/discourse/https/community.almond.stanford.edu/status.svg)](https://community.almond.stanford.edu)\n\nThis repository is the cloud-native version of Genie, the open virtual-assistant.\nIt includes the web frontend, the Genie backend, the embedded skill library, and\nthe NLP model servers.\n\nGenie is a research project led by\nprof. Monica Lam, from Stanford University.  You can find more\ninformation at \u003chttps://oval.cs.stanford.edu\u003e.\n\n## Development\n\n1.  You need Git.\n    \n    Mac:\n    \n    1.  Install [Homebrew](https://brew.sh/)\n    2.  Install Git:\n        \n            brew install git\n    \n2.  Clone this repository.\n    \n    You can clone it wherever you want, but if you don't know where to put it I\n    recommend:\n    \n        mkdir -p \"${HOME}/src/github.com/stanford-oval\" \u0026\u0026 cd \"${HOME}/src/github.com/stanford-oval\"\n    \n    to create a directory and change into it.\n    \n    Then\n    \n        git clone --branch wip/nrser/k8s-dev-setup https://github.com/stanford-oval/almond-cloud.git\n    \n    and change into the cloned repository with\n    \n        cd almond-cloud\n\n3.  You need Kubernetes running locally. For Windows and Mac we recommend \n    [Docker Desktop][]. After installation, follow the\n    [instructions](https://docs.docker.com/desktop/kubernetes/#enable-kubernetes)\n    to enabled Kubernetes.\n    \n    On Linux, there are (of course) several options. [Minikube][], [MicroK8s][]\n    and [Kind][] are the ones I've heard of. These instructions will follow a\n    Docker Desktop installation, so adjust as needed.\n    \n    [Docker Desktop]: https://www.docker.com/products/docker-desktop\n    [Minikube]: https://github.com/kubernetes/minikube\n    [MicroK8s]: https://microk8s.io/\n    [Kind]: https://github.com/kubernetes-sigs/kind\n\n4.  Build the Almond Cloud Docker image\n    \n        docker build -f docker/Dockerfile -t localhost/almond-cloud .\n\n5.  Install the latest `kustomize`.\n    \n    Mac:\n    \n        brew install kustomize\n    \n    Windows and Linux: Follow their installation\n    [instructions](https://kubectl.docs.kubernetes.io/installation/kustomize/).\n    \n    If you're on the Mac, I recommend the Homebrew option.\n    \n    \u003e ### NOTE ###\n    \u003e \n    \u003e Kustomize _does_ come bundled with the `kubectl` utility that Kubernetes\n    \u003e installations ship with, but some or all will be too out-of-date\n    \u003e for our needs.\n    \n    [Kustomize]: https://kustomize.io/\n\n6.  Deploy the Kubernetes Dashboard\n    \n        kustomize build k8s/dashboard/dev | kubectl apply -f -\n    \n    In a separate terminal, run\n    \n        kubectl proxy\n    \n    and keep that terminal open.\n    \n    Visit\n    \n    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/\n    \n    and use the _Skip_ button to login and view the dashboard (there shouldn't\n    be much there yet!).\n\n7.  Deploy the Nginx Ingress Controller\n    \n        kustomize build k8s/ingress-nginx/dev | kubectl apply -f -\n\n8.  Create a [Mailgun][] account (if you don't already have one) and get the\n    _SMTP_ username and password for the domain you want to use to send emails.\n    \n    If you use the \"sandbox\" domain, make sure you add your email address to the\n    _Authorized Recipients_ and click the confirmation link they mail to you.\n    \n    [Mailgun]: https://www.mailgun.com/\n    \n9.  Create a local dev environment file\n    \n    1.  Create a text file in the `dev` directory named `.env`\n    2.  Add these lines to the file, replacing the stuff between the `'` quotes\n        with the SMTP credentials from the last step and your email address.\n        \n            MAILGUN_SMTP_USERNAME='postmaster@your-domain.mailgun.org'\n            MAILGUN_SMTP_PASSWORD='your-smtp-password'\n            DEVELOPER_EMAIL='you@yourself.com'\n    3.  Save the file.\n    \n10. Generate your `kustomize` secret file\n    \n        ./dev/bin/almond-dev.configure.bash\n    \n    The secret file is written to `k8s/config/dev/secret.yaml`.\n\n11. Check your config files build successfully with `kustomize`\n    \n        kustomize build ./k8s/dev\n    \n    You should see a big dump of `YAML` to the screen. If there is an error,\n    try to figure it out or ask for help.\n\n9.  Deploy Genie\n    \n        kustomize build ./k8s/dev | kubectl apply -f -\n    \n10. Go back to the dashboard and switch to the `almond-dev` namespace.\n    \n    You should see the Genie components booting up. It can take a few\n    minutes for everything to \"go green\", but after that you can use Almond\n    Cloud at\n    \n    http://localhost:8080\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanford-oval%2Fgenie-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanford-oval%2Fgenie-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanford-oval%2Fgenie-cloud/lists"}