{"id":13596826,"url":"https://github.com/dfoxg/kratos-admin-ui","last_synced_at":"2025-04-09T20:31:29.923Z","repository":{"id":44341839,"uuid":"328242138","full_name":"dfoxg/kratos-admin-ui","owner":"dfoxg","description":"A simple Admin-Interface for ory/kratos","archived":false,"fork":false,"pushed_at":"2025-04-05T05:33:37.000Z","size":9929,"stargazers_count":162,"open_issues_count":2,"forks_count":28,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T12:06:05.633Z","etag":null,"topics":["admin-dashboard","kratos","ory-kratos"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfoxg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-09T20:39:42.000Z","updated_at":"2025-04-05T05:33:40.000Z","dependencies_parsed_at":"2023-10-15T02:23:34.592Z","dependency_job_id":"a8324bd4-a0c9-404d-bb0d-56e15c24d6f2","html_url":"https://github.com/dfoxg/kratos-admin-ui","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfoxg%2Fkratos-admin-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfoxg%2Fkratos-admin-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfoxg%2Fkratos-admin-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfoxg%2Fkratos-admin-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfoxg","download_url":"https://codeload.github.com/dfoxg/kratos-admin-ui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248107348,"owners_count":21048908,"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":["admin-dashboard","kratos","ory-kratos"],"created_at":"2024-08-01T16:02:50.133Z","updated_at":"2025-04-09T20:31:29.915Z","avatar_url":"https://github.com/dfoxg.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Examples"],"sub_categories":["Ory Kratos"],"readme":"# kratos-admin-ui\n\nA simple Admin-Interface for [ory/kratos](https://www.ory.sh/kratos/docs/). Made with React und [microsoft/fluentui](https://react.fluentui.dev/).\n\n## Features\n\nFollowing a overview over the features of kratos-admin-ui:\n\n### List identites\n\nYou get a searchable and sortable overview of all identites:\n\n![listIdentities](./images/listIdentites.PNG)\n\n### Single select identites\n\nWhen you select one identity, the toolbar is getting expanded with actions like \n- View\n- Edit\n- Delete\n- Recovery\n\n![singleSelectIdentity](./images/selectIdentites.PNG)\n\n### Multiselect identites\n\nYou can also do a delete and/or recovery action on multiple identites simultaneous\n![multiselectIdentities](./images/multiselectIdentites.PNG)\n\n### View identity\n\nIf you want to see all attributes of a identity, you can open it in detail view.\n![viewIdentity](./images/viewSingleIdentity.PNG)\n\n### Create identites\n\nTo create a new identity you have to first select the identity schema which you configured in kratos. All identity traits getting rendered dynamically.\n\n![createIdentity](./images/createIdentity.PNG)\n\n### Edit identity\n\nYou can edit all identity traits on the edit page.\n![editIdentity](./images/editIdentity.PNG)\n\n\n\n## Run\n\nTo run the image, you have to provide two environment variables:\n\n- `KRATOS_ADMIN_URL`: the admin url of your kratos instance\n- `KRATOS_PUBLIC_URL`: the public url of your kratos instance\n\nYou should follow the kratos best practices, [which recommends to never expore the admin-api to the internet, since there is no authentication](https://www.ory.sh/docs/kratos/guides/production#admin-api).\n\nTo run the admin-ui, which of course needs access to the admin-api, you should run the admin-ui in the same network as kratos.\n\nIn the following snipped the admin-ui gets deployed in the same docker network (`kratos_intranet`) as kratos - over the Docker-Compose-DNS resolution the nginx reverse proxy can call the admin\n\n```\ndocker run -it \\\n--rm -p 5173:8080 \\\n-e KRATOS_ADMIN_URL=http://kratos:4434 \\\n-e KRATOS_PUBLIC_URL=http://kratos:4433 \\\n--network kratos_intranet \\\nghcr.io/dfoxg/kratos-admin-ui\n```\n\nor like here, include it in a `docker-compose.yml` file:\n\n```\nservices:\n  kratos-migrate:\n    image: oryd/kratos:v1.0.0\n    environment:\n      - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true\u0026mode=rwc\n    volumes:\n      - type: volume\n        source: kratos-sqlite\n        target: /var/lib/sqlite\n        read_only: false\n      - type: bind\n        source: ./contrib/quickstart/kratos/email-password\n        target: /etc/config/kratos\n    command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes\n    restart: on-failure\n    networks:\n      - intranet\n  kratos:\n    image: oryd/kratos:v1.0.0\n    depends_on:\n      - kratos-migrate\n    ports:\n      - '4433:4433' # public\n    #  - '4434:4434' # admin, do not expose!\n    restart: unless-stopped\n    environment:\n      - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true\n      - LOG_LEVEL=trace\n    command: serve -c /etc/config/kratos/kratos.yml --dev --watch-courier\n    volumes:\n      - type: volume\n        source: kratos-sqlite\n        target: /var/lib/sqlite\n        read_only: false\n      - type: bind\n        source: ./contrib/quickstart/kratos/email-password\n        target: /etc/config/kratos\n    networks:\n      - intranet\n  admin_ui:\n    image: ghcr.io/dfoxg/kratos-admin-ui:v2.5.0\n    ports:\n      - '80:8080'\n    restart: unless-stopped\n    environment:\n      - KRATOS_ADMIN_URL=http://kratos:4434\n      - KRATOS_PUBLIC_URL=http://kratos:4433\n    networks:\n      - intranet\nnetworks:\n  intranet:\nvolumes:\n  kratos-sqlite:\n```\n\n### Optional Environment Variables\n\n- `NAMESERVER`: the nameserver to use for dns resolution for kratos urls. By default, it reads values from /etc/resolv.conf, so it works well without setting this value in many runtimes. If there is no /etc/resolv.conf, it will be set to `127.0.0.11` (Docker dns).\n\n## Start local\n\nIt is required, that a local instance of ory kratos is running. the latest tested version is `v1.1.0`.\n\n```\ncd kratos-admin-ui\nnpm install\nnode cors-proxy.js // starts a cors-proxy for the admin-api, so the browser can make requests\nnpm run start\n```\n\n## Build Docker-Image\n\n```\ncd kratos-admin-ui\ndocker build -t kratos-admin-ui .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfoxg%2Fkratos-admin-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfoxg%2Fkratos-admin-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfoxg%2Fkratos-admin-ui/lists"}