✨(keycloak) add keycloak as auth server
Keycloak is a open source identity and access management for modern applications and services. - add keycloak server in docker-compose - add keycloak in frontend
This commit is contained in:
7
Makefile
7
Makefile
@@ -45,6 +45,7 @@ COMPOSE_RUN = $(COMPOSE) run --rm
|
|||||||
COMPOSE_RUN_APP = $(COMPOSE_RUN) app-dev
|
COMPOSE_RUN_APP = $(COMPOSE_RUN) app-dev
|
||||||
COMPOSE_RUN_CROWDIN = $(COMPOSE_RUN) crowdin crowdin
|
COMPOSE_RUN_CROWDIN = $(COMPOSE_RUN) crowdin crowdin
|
||||||
WAIT_DB = @$(COMPOSE_RUN) dockerize -wait tcp://$(DB_HOST):$(DB_PORT) -timeout 60s
|
WAIT_DB = @$(COMPOSE_RUN) dockerize -wait tcp://$(DB_HOST):$(DB_PORT) -timeout 60s
|
||||||
|
WAIT_KC_DB = $(COMPOSE_RUN) dockerize -wait tcp://kc_postgresql:5432 -timeout 60s
|
||||||
|
|
||||||
# -- Backend
|
# -- Backend
|
||||||
MANAGE = $(COMPOSE_RUN_APP) python manage.py
|
MANAGE = $(COMPOSE_RUN_APP) python manage.py
|
||||||
@@ -71,6 +72,7 @@ bootstrap: \
|
|||||||
env.d/development/common \
|
env.d/development/common \
|
||||||
env.d/development/crowdin \
|
env.d/development/crowdin \
|
||||||
env.d/development/postgresql \
|
env.d/development/postgresql \
|
||||||
|
env.d/development/kc_postgresql \
|
||||||
build \
|
build \
|
||||||
run \
|
run \
|
||||||
migrate \
|
migrate \
|
||||||
@@ -96,7 +98,9 @@ run: ## start the wsgi (production) and development server
|
|||||||
@$(COMPOSE) up --force-recreate -d nginx
|
@$(COMPOSE) up --force-recreate -d nginx
|
||||||
@$(COMPOSE) up --force-recreate -d app-dev
|
@$(COMPOSE) up --force-recreate -d app-dev
|
||||||
@$(COMPOSE) up --force-recreate -d celery-dev
|
@$(COMPOSE) up --force-recreate -d celery-dev
|
||||||
|
@$(COMPOSE) up --force-recreate -d keycloak
|
||||||
@echo "Wait for postgresql to be up..."
|
@echo "Wait for postgresql to be up..."
|
||||||
|
@$(WAIT_KC_DB)
|
||||||
@$(WAIT_DB)
|
@$(WAIT_DB)
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
|
|
||||||
@@ -202,6 +206,9 @@ env.d/development/common:
|
|||||||
env.d/development/postgresql:
|
env.d/development/postgresql:
|
||||||
cp -n env.d/development/postgresql.dist env.d/development/postgresql
|
cp -n env.d/development/postgresql.dist env.d/development/postgresql
|
||||||
|
|
||||||
|
env.d/development/kc_postgresql:
|
||||||
|
cp -n env.d/development/kc_postgresql.dist env.d/development/kc_postgresql
|
||||||
|
|
||||||
# -- Internationalization
|
# -- Internationalization
|
||||||
|
|
||||||
env.d/development/crowdin:
|
env.d/development/crowdin:
|
||||||
|
|||||||
@@ -133,3 +133,33 @@ services:
|
|||||||
working_dir: /app
|
working_dir: /app
|
||||||
volumes:
|
volumes:
|
||||||
- ./src/terraform:/app
|
- ./src/terraform:/app
|
||||||
|
|
||||||
|
kc_postgresql:
|
||||||
|
image: postgres:14.3
|
||||||
|
platform: linux/amd64
|
||||||
|
ports:
|
||||||
|
- "5433:5432"
|
||||||
|
env_file:
|
||||||
|
- env.d/development/kc_postgresql
|
||||||
|
|
||||||
|
keycloak:
|
||||||
|
image: quay.io/keycloak/keycloak:20.0.1
|
||||||
|
volumes:
|
||||||
|
- ./docker/auth/realm.json:/opt/keycloak/data/import/realm.json
|
||||||
|
command:
|
||||||
|
- start-dev
|
||||||
|
- --features=preview
|
||||||
|
- --import-realm
|
||||||
|
environment:
|
||||||
|
KEYCLOAK_ADMIN: admin
|
||||||
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
||||||
|
KC_DB: postgres
|
||||||
|
KC_DB_URL_HOST: kc_postgresql
|
||||||
|
KC_DB_URL_DATABASE: keycloak
|
||||||
|
KC_DB_PASSWORD: pass
|
||||||
|
KC_DB_USERNAME: people
|
||||||
|
KC_DB_SCHEMA: public
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
depends_on:
|
||||||
|
- kc_postgresql
|
||||||
|
|||||||
2262
docker/auth/realm.json
Normal file
2262
docker/auth/realm.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -18,3 +18,6 @@ DJANGO_EMAIL_PORT=1025
|
|||||||
|
|
||||||
# Backend url
|
# Backend url
|
||||||
PEOPLE_BASE_URL="http://localhost:8072"
|
PEOPLE_BASE_URL="http://localhost:8072"
|
||||||
|
|
||||||
|
# Keycloak
|
||||||
|
SIMPLE_JWT_JWK_URL="http://keycloak:8080/realms/people/protocol/openid-connect/certs"
|
||||||
|
|||||||
11
env.d/development/kc_postgresql.dist
Normal file
11
env.d/development/kc_postgresql.dist
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Postgresql db container configuration
|
||||||
|
POSTGRES_DB=keycloak
|
||||||
|
POSTGRES_USER=people
|
||||||
|
POSTGRES_PASSWORD=pass
|
||||||
|
|
||||||
|
# App database configuration
|
||||||
|
DB_HOST=kc_postgresql
|
||||||
|
DB_NAME=keycloak
|
||||||
|
DB_USER=people
|
||||||
|
DB_PASSWORD=pass
|
||||||
|
DB_PORT=5433
|
||||||
Reference in New Issue
Block a user