{"id":25944372,"url":"https://github.com/pngouin/k8s-ory-example","last_synced_at":"2026-03-12T19:59:12.933Z","repository":{"id":48057536,"uuid":"350883105","full_name":"pngouin/k8s-ory-example","owner":"pngouin","description":"Oathkeeper, Kratos and Keto in kubernetes.","archived":false,"fork":false,"pushed_at":"2022-04-18T16:32:25.000Z","size":185,"stargazers_count":37,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-07T01:36:03.865Z","etag":null,"topics":["2fa","keto","kratos","kubernetes","kustomize","mfa","oathkeeper","ory","ory-keto","ory-kratos","ory-oathkeeper"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pngouin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-23T23:11:06.000Z","updated_at":"2023-02-12T03:06:03.000Z","dependencies_parsed_at":"2022-08-19T16:10:11.875Z","dependency_job_id":null,"html_url":"https://github.com/pngouin/k8s-ory-example","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pngouin%2Fk8s-ory-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pngouin%2Fk8s-ory-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pngouin%2Fk8s-ory-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pngouin%2Fk8s-ory-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pngouin","download_url":"https://codeload.github.com/pngouin/k8s-ory-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241809603,"owners_count":20023786,"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":["2fa","keto","kratos","kubernetes","kustomize","mfa","oathkeeper","ory","ory-keto","ory-kratos","ory-oathkeeper"],"created_at":"2025-03-04T08:01:23.309Z","updated_at":"2026-03-12T19:59:12.913Z","avatar_url":"https://github.com/pngouin.png","language":"Shell","funding_links":[],"categories":["Examples"],"sub_categories":["Ory Ecosystem"],"readme":"# Oathkeeper, Kratos and Keto example\n## Authentification, ACL and 2FA\n\nThis repository show how create an SSO and ACL system with the Ory stack and Kubernetes.\nIt use the [kratos-selfservice-ui-node](https://github.com/ory/kratos-selfservice-ui-node), a fork of [mailslurper](https://github.com/pngouin/mailslurper) and a [react-admin app](https://github.com/pngouin/react-admin-ory) for the *admin* page (I'm not an front-end dev the admin page work, nothing plus).\n\n\n## How to run\n\nYou need to install **[minikube](https://minikube.sigs.k8s.io/docs/start/)** and **[kustomize](https://kubernetes-sigs.github.io/kustomize/installation/)** on our machine.\n\n```bash\n$ minikube start\n$ minikube addons enable ingress\n\n# Create all the resources\n$ ./build.sh | kubectl apply -f -\n\n# It wait for Keto to be ready and add policies\n$ ./add-keto-policies.sh | kubectl apply -f -\n$ kubectl get ingress\nNAME               CLASS    HOSTS            ADDRESS        PORTS   AGE\nfake-smtp-server   \u003cnone\u003e   mail.test.info   192.168.XXX.XXX   80      119s\noathkeeper         \u003cnone\u003e   ory.test.info    192.168.XXX.XXX   80      119s\n\n# Add ingress to the hosts file\n$ sudo bash -c 'cat \u003c\u003c EOF \u003e\u003e /etc/hosts\n# ORY Minikube SSO stack\n192.168.XXX.XXX    mail.test.info\n192.168.XXX.XXX    ory.test.info\nEOF'\n\n# Open your browser and open http://ory.test.info/panel/welcome and http://mail.test.info\n```\n\n## How to use\n\nGo to http://ory.test.info/panel/ and create an account, you can validate your mail on http://mail.test.info. When you create an account you have to role `user` or `admin`. Only the admin role have the right to access the admin react app.\n\n| URL | Description |\n| :--- | :--- |\n| http://ory.test.info/panel/welcome | User app for create an account, login, other |\n| http://ory.test.info/admin/ | Admin react app, you need the role `admin` to access |\n| http://mail.test.info | Local mail panel, you will receive mail confirmation here |\n\nThis project is tested on linux with minikube version \n```\n$ minikube version\nminikube version: v1.21.0\ncommit: 76d74191d82c47883dc7e1319ef7cebd3e00ee11\n```\n\n## How it works\n\n![schema](.docs/diagram.png)\n\n*(This is an outline and does not exactly reflect the reality of how the stack works)*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpngouin%2Fk8s-ory-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpngouin%2Fk8s-ory-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpngouin%2Fk8s-ory-example/lists"}