Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Keycloak #3380

Merged
merged 3 commits into from
Apr 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 12 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -1067,3 +1067,15 @@ SOKETI_METRICS_SERVER_PORT=9601
### ONEDEV ##################################################
ONEDEV_HTTP_PORT=6610
ONEDEV_SSH_PORT=6611

### Keycloak ################################################
KEYCLOAK_VERSION=latest
KEYCLOAK_POSTGRES_INIT=true
KEYCLOAK_HTTP_PORT=8081
KEYCLOAK_CREATE_ADMIN_USER=true
KEYCLOAK_ADMIN_USER='admin'
KEYCLOAK_ADMIN_PASSWORD='secret'
KEYCLOAK_POSTGRES_HOST=postgres
KEYCLOAK_POSTGRES_USER=laradock_keycloak
KEYCLOAK_POSTGRES_PASSWORD=laradock_keycloak
KEYCLOAK_POSTGRES_DB=laradock_keycloak
17 changes: 17 additions & 0 deletions DOCUMENTATION/content/documentation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1490,6 +1490,23 @@ docker-compose exec tarantool console
7 - There you can operate with tarantool database ([official documentation](https://www.tarantool.io/en/doc/latest/) can be helpful).


<br>
<a name="use Keycloak"></a>
## Use Keycloak

1. Run the Keycloak Container (`keycloak`) with the `docker-compose up` command. Example:

```bash
docker-compose up -d keycloak
```

2. Open your browser and visit the localhost on port 8081: `http://localhost:8081`

3. Login with the following credentials:

- Username: `admin`
- Password: `secret`

<br>
<a name="CodeIgniter"></a>

Expand Down
25 changes: 25 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,10 @@ services:
- GITLAB_POSTGRES_USER=${GITLAB_POSTGRES_USER}
- GITLAB_POSTGRES_PASSWORD=${GITLAB_POSTGRES_PASSWORD}
- GITLAB_POSTGRES_DB=${GITLAB_POSTGRES_DB}
- KEYCLOAK_POSTGRES_INIT=${KEYCLOAK_POSTGRES_INIT}
- KEYCLOAK_POSTGRES_USER=${KEYCLOAK_POSTGRES_USER}
- KEYCLOAK_POSTGRES_PASSWORD=${KEYCLOAK_POSTGRES_PASSWORD}
- KEYCLOAK_POSTGRES_DB=${KEYCLOAK_POSTGRES_DB}
- JUPYTERHUB_POSTGRES_INIT=${JUPYTERHUB_POSTGRES_INIT}
- JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
- JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
Expand Down Expand Up @@ -2100,3 +2104,24 @@ services:
- frontend
- backend
restart: always

### keycloak ##################################################
keycloak:
image: bitnami/keycloak:${KEYCLOAK_VERSION}
ports:
- "${KEYCLOAK_HTTP_PORT}:${KEYCLOAK_HTTP_PORT}"
environment:
- KEYCLOAK_HTTP_PORT=${KEYCLOAK_HTTP_PORT}
- KEYCLOAK_CREATE_ADMIN_USER=${KEYCLOAK_CREATE_ADMIN_USER}
- KEYCLOAK_ADMIN_USER=${KEYCLOAK_ADMIN_USER}
- KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD}
- KEYCLOAK_DATABASE_HOST=${KEYCLOAK_POSTGRES_HOST}
- KEYCLOAK_DATABASE_PORT=${POSTGRES_PORT}
- KEYCLOAK_DATABASE_NAME=${KEYCLOAK_POSTGRES_DB}
- KEYCLOAK_DATABASE_USER=${KEYCLOAK_POSTGRES_USER}
- KEYCLOAK_DATABASE_PASSWORD=${KEYCLOAK_POSTGRES_PASSWORD}
depends_on:
- postgres
networks:
- frontend
- backend
44 changes: 44 additions & 0 deletions postgres/docker-entrypoint-initdb.d/init_keycloak_db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash
#
# Copy createdb.sh.example to createdb.sh
# then uncomment then set database name and username to create you need databases
#
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER myuser WITH PASSWORD 'mypassword';
# CREATE DATABASE myshop_db;
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
# EOSQL
#
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
#
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db1 WITH PASSWORD 'db1';
# CREATE DATABASE db1;
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db2 WITH PASSWORD 'db2';
# CREATE DATABASE db2;
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db3 WITH PASSWORD 'db3';
# CREATE DATABASE db3;
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
# EOSQL
#
### default database and user for keycloak ##############################################
if [ "$KEYCLOAK_POSTGRES_INIT" == 'true' ]; then
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER $KEYCLOAK_POSTGRES_USER WITH PASSWORD '$KEYCLOAK_POSTGRES_PASSWORD';
CREATE DATABASE $KEYCLOAK_POSTGRES_DB;
GRANT ALL PRIVILEGES ON DATABASE $KEYCLOAK_POSTGRES_DB TO $KEYCLOAK_POSTGRES_USER;
ALTER ROLE $KEYCLOAK_POSTGRES_USER CREATEROLE SUPERUSER;
EOSQL
echo
fi