diff --git a/contrib/quickstart/kratos/cloud/Caddyfile b/contrib/quickstart/kratos/cloud/Caddyfile new file mode 100644 index 000000000000..96cb4c4ad3a6 --- /dev/null +++ b/contrib/quickstart/kratos/cloud/Caddyfile @@ -0,0 +1,17 @@ +{ + http_port 4455 + auto_https off + +} + +:4455 { + route /ui/* { + uri strip_prefix /ui + reverse_proxy kratos-selfservice-ui-node:4438 { + header_up Host {http.request.hostport} + } + } + reverse_proxy /* kratos:4433 { + header_up Host {http.request.hostport} + } +} diff --git a/contrib/quickstart/kratos/cloud/identity.schema.json b/contrib/quickstart/kratos/cloud/identity.schema.json new file mode 100644 index 000000000000..1a137875666e --- /dev/null +++ b/contrib/quickstart/kratos/cloud/identity.schema.json @@ -0,0 +1,49 @@ +{ + "$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Person", + "type": "object", + "properties": { + "traits": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "title": "E-Mail", + "minLength": 3, + "ory.sh/kratos": { + "credentials": { + "password": { + "identifier": true + } + }, + "verification": { + "via": "email" + }, + "recovery": { + "via": "email" + } + } + }, + "name": { + "type": "object", + "properties": { + "first": { + "title": "First Name", + "type": "string" + }, + "last": { + "title": "Last Name", + "type": "string" + } + } + } + }, + "required": [ + "email" + ], + "additionalProperties": false + } + } +} diff --git a/contrib/quickstart/kratos/cloud/kratos.yml b/contrib/quickstart/kratos/cloud/kratos.yml new file mode 100644 index 000000000000..ae1f6a33b79b --- /dev/null +++ b/contrib/quickstart/kratos/cloud/kratos.yml @@ -0,0 +1,73 @@ +version: v0.8.0-alpha.3 + +dsn: memory + +serve: + public: + base_url: http://localhost:4455/ + cors: + enabled: true + admin: + base_url: http://kratos:4434/ + +selfservice: + default_browser_return_url: http://localhost:4455/ui/welcome + whitelisted_return_urls: + - http://localhost:4455 + + methods: + password: + enabled: true + + flows: + error: + ui_url: http://localhost:4455/ui/error + + settings: + ui_url: http://localhost:4455/ui/settings + privileged_session_max_age: 15m + + recovery: + enabled: true + ui_url: http://localhost:4455/ui/recovery + + verification: + enabled: true + ui_url: http://localhost:4455/ui/verification + after: + default_browser_return_url: http://localhost:4455/ui/welcome + + logout: + after: + default_browser_return_url: http://localhost:4455/ui/login + + login: + ui_url: http://localhost:4455/ui/login + + registration: + ui_url: http://localhost:4455/ui/registration + after: + password: + hooks: + - + hook: session + +log: + level: info + format: text + +secrets: + cookie: + - PLEASE-CHANGE-ME-I-AM-VERY-INSECURE + +hashers: + algorithm: bcrypt + bcrypt: + cost: 8 + +identity: + default_schema_url: file:///etc/config/kratos/identity.schema.json + +courier: + smtp: + connection_uri: smtps://test:test@mailslurper:1025/?skip_ssl_verify=true diff --git a/contrib/quickstart/kratos/cloud/quickstart.yml b/contrib/quickstart/kratos/cloud/quickstart.yml new file mode 100644 index 000000000000..bff15beb1fca --- /dev/null +++ b/contrib/quickstart/kratos/cloud/quickstart.yml @@ -0,0 +1,42 @@ +version: '3.7' + +services: + kratos: + volumes: + - type: volume + source: kratos-sqlite + target: /var/lib/sqlite + read_only: false + - type: bind + source: ./contrib/quickstart/kratos/next + target: /etc/config/kratos + kratos-migrate: + volumes: + - type: volume + source: kratos-sqlite + target: /var/lib/sqlite + read_only: false + - type: bind + source: ./contrib/quickstart/kratos/next + target: /etc/config/kratos + + kratos-selfservice-ui-node: + ports: + - "4438:4438" + environment: + - PORT=4438 + - KRATOS_BROWSER_URL=http://localhost:4455/ + + kratos-caddy: + image: caddy:2.4.5-alpine + ports: + - "4455:4455" + volumes: + - type: bind + source: ./contrib/quickstart/kratos/next/Caddyfile + target: /etc/caddy/Caddyfile + command: caddy run -watch -config /etc/caddy/Caddyfile + restart: on-failure + networks: + - intranet +