Added ory kratos to docker compose file
This commit is contained in:
parent
ebf1dd5adc
commit
b2a16e5181
38
.docker/kratos/identity.schema.json
Normal file
38
.docker/kratos/identity.schema.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"$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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"username": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Username"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["email", "username"],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
83
.docker/kratos/kratos.yml
Normal file
83
.docker/kratos/kratos.yml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
version: v0.10.1
|
||||||
|
|
||||||
|
dsn: memory
|
||||||
|
|
||||||
|
serve:
|
||||||
|
public:
|
||||||
|
base_url: http://127.0.0.1:4433/
|
||||||
|
cors:
|
||||||
|
enabled: true
|
||||||
|
admin:
|
||||||
|
base_url: http://kratos:4434/
|
||||||
|
|
||||||
|
selfservice:
|
||||||
|
default_browser_return_url: http://127.0.0.1:4455/
|
||||||
|
allowed_return_urls:
|
||||||
|
- http://127.0.0.1:4455
|
||||||
|
|
||||||
|
methods:
|
||||||
|
password:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
flows:
|
||||||
|
error:
|
||||||
|
ui_url: http://127.0.0.1:4455/error
|
||||||
|
|
||||||
|
settings:
|
||||||
|
ui_url: http://127.0.0.1:4455/settings
|
||||||
|
privileged_session_max_age: 15m
|
||||||
|
|
||||||
|
recovery:
|
||||||
|
enabled: true
|
||||||
|
ui_url: http://127.0.0.1:4455/recovery
|
||||||
|
|
||||||
|
verification:
|
||||||
|
enabled: false
|
||||||
|
ui_url: http://127.0.0.1:4455/verification
|
||||||
|
after:
|
||||||
|
default_browser_return_url: http://127.0.0.1:4455/
|
||||||
|
|
||||||
|
logout:
|
||||||
|
after:
|
||||||
|
default_browser_return_url: http://127.0.0.1:4455/login
|
||||||
|
|
||||||
|
login:
|
||||||
|
ui_url: http://127.0.0.1:4455/login
|
||||||
|
lifespan: 10m
|
||||||
|
|
||||||
|
registration:
|
||||||
|
lifespan: 10m
|
||||||
|
ui_url: http://127.0.0.1:4455/registration
|
||||||
|
after:
|
||||||
|
password:
|
||||||
|
hooks:
|
||||||
|
- hook: session
|
||||||
|
|
||||||
|
log:
|
||||||
|
level: debug
|
||||||
|
format: text
|
||||||
|
leak_sensitive_values: true
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
cookie:
|
||||||
|
- PLEASE-CHANGE-ME-I-AM-VERY-INSECURE
|
||||||
|
cipher:
|
||||||
|
- 32-LONG-SECRET-NOT-SECURE-AT-ALL
|
||||||
|
|
||||||
|
ciphers:
|
||||||
|
algorithm: xchacha20-poly1305
|
||||||
|
|
||||||
|
hashers:
|
||||||
|
algorithm: bcrypt
|
||||||
|
bcrypt:
|
||||||
|
cost: 8
|
||||||
|
|
||||||
|
identity:
|
||||||
|
default_schema_id: default
|
||||||
|
schemas:
|
||||||
|
- id: default
|
||||||
|
url: file:///etc/config/kratos/identity.schema.json
|
||||||
|
|
||||||
|
courier:
|
||||||
|
smtp:
|
||||||
|
connection_uri: smtps://test:test@mailslurper:1025/?skip_ssl_verify=true
|
13
.env.sample
Normal file
13
.env.sample
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# twitch-clone postgres
|
||||||
|
POSTGRES_USER=postgres
|
||||||
|
POSTGRES_PASSWORD=postgres
|
||||||
|
POSTGRES_DB=postgres
|
||||||
|
|
||||||
|
# Ory Kratos postgres
|
||||||
|
KRATOS_POSTGRES_USER=kratos
|
||||||
|
KRATOS_POSTGRES_PASSWORD=secret
|
||||||
|
KRATOS_POSTGRES_DB=kratos
|
||||||
|
|
||||||
|
# Ory Kratos secrets
|
||||||
|
KRATOS_COOKIE_SECRET=secret
|
||||||
|
KRATOS_CIPHER_SECRET=secret
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -22,3 +22,6 @@ go.work
|
|||||||
|
|
||||||
tmp/
|
tmp/
|
||||||
dist/
|
dist/
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
.env
|
||||||
|
@ -2,9 +2,9 @@ version: '3.3'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
build: "."
|
build: '.'
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- app-postgres
|
||||||
ports:
|
ports:
|
||||||
- 5000:5000
|
- 5000:5000
|
||||||
rtmp:
|
rtmp:
|
||||||
@ -12,9 +12,60 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 1935:1935
|
- 1935:1935
|
||||||
- 8080:80
|
- 8080:80
|
||||||
postgres:
|
app-postgres:
|
||||||
image: postgres:latest
|
image: postgres:9.6
|
||||||
environment:
|
|
||||||
- POSTGRES_PASSWORD=postgres
|
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- '5432:5432'
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
kratos-migrate:
|
||||||
|
image: oryd/kratos:v0.10.1
|
||||||
|
environment:
|
||||||
|
- DSN=postgres://${KRATOS_POSTGRES_USER}:${KRATOS_POSTGRES_PASSWORD}@kratos-postgres:5432/${KRATOS_POSTGRES_DB}?sslmode=disable&max_conns=20&max_idle_conns=4
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: .docker/kratos
|
||||||
|
target: /etc/config/kratos
|
||||||
|
command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
|
||||||
|
restart: on-failure
|
||||||
|
kratos-selfservice-ui-node:
|
||||||
|
image: oryd/kratos-selfservice-ui-node:v0.10.1
|
||||||
|
environment:
|
||||||
|
- KRATOS_PUBLIC_URL=http://kratos:4433/
|
||||||
|
- KRATOS_BROWSER_URL=http://127.0.0.1:4433/
|
||||||
|
restart: on-failure
|
||||||
|
ports:
|
||||||
|
- '4455:3000'
|
||||||
|
kratos:
|
||||||
|
depends_on:
|
||||||
|
- kratos-migrate
|
||||||
|
image: oryd/kratos:v0.10.1
|
||||||
|
ports:
|
||||||
|
- '4433:4433' # public
|
||||||
|
- '4434:4434' # admin
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- DSN=postgres://${KRATOS_POSTGRES_USER}:${KRATOS_POSTGRES_PASSWORD}@kratos-postgres:5432/${KRATOS_POSTGRES_DB}?sslmode=disable&max_conns=20&max_idle_conns=4
|
||||||
|
- LOG_LEVEL=trace
|
||||||
|
- SECRETS_COOKIE_0=${KRATOS_COOKIE_SECRET}
|
||||||
|
- SECRETS_CIPHER_0=${KRATOS_CIPHER_SECRET}
|
||||||
|
command: serve -c /etc/config/kratos/kratos.yml --dev --watch-courier
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: .docker/kratos
|
||||||
|
target: /etc/config/kratos
|
||||||
|
mailslurper:
|
||||||
|
image: oryd/mailslurper:latest-smtps
|
||||||
|
ports:
|
||||||
|
- '4436:4436'
|
||||||
|
- '4437:4437'
|
||||||
|
kratos-postgres:
|
||||||
|
image: postgres:9.6
|
||||||
|
ports:
|
||||||
|
- '5432:5432'
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${KRATOS_POSTGRES_USER}
|
||||||
|
- POSTGRES_PASSWORD=${KRATOS_POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${KRATOS_POSTGRES_DB}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user