mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-02-01 09:51:42 -05:00
50 lines
2.2 KiB
Markdown
50 lines
2.2 KiB
Markdown
# Development/Test Deployment for a multi-tenacy setup
|
|
|
|
The docker compose files in this directory are derived from the
|
|
opencloud-compose project and can be used to deploy a Development or Testing
|
|
environment for a multi-tenancy setup of OpenCloud. It consists of the
|
|
following services:
|
|
|
|
* `provisioning`: The OpenCloud graph service deployed in a standalone mode. It
|
|
is configured to provide the libregraph education API for managing tenants
|
|
and users. The `ldap-server`service (see below) is used to store the tenants
|
|
and users.
|
|
* `ldap-server`: An OpenLDAP server that is used by the provisioning service to
|
|
store tenants and users. Used by the OpenCloud services as the user directory
|
|
(for looking up users and searching for sharees).
|
|
* `keycloak`: The OpenID Connect Provider used for authenticating users. The
|
|
pre-loaded realm is configured to add `tenantid` claim into the identity and
|
|
access tokens. It's also currently consuming user from the `ldap-server`
|
|
(this federation will likely go away in the future and is optional for future
|
|
configurations).
|
|
* `opencloud`: The OpenCloud configured so that is hides users from different
|
|
tenants from each other.
|
|
|
|
To deploy the setup, run:
|
|
|
|
```bash
|
|
docker compose -f docker-compose.yml -f keycloak.yml -f ldap-server.yml -f traefik.yml up
|
|
```
|
|
|
|
Once deployed you can use the `initialize_users.go` to create a couple of example
|
|
tenants and some users in each tenant:
|
|
|
|
* Tenant `Famous Coders` with users `dennis` and `grace`
|
|
* Tenant `Scientists` with users `einstein` and `marie`
|
|
|
|
The passwords for the users is set to `demo` in keycloak
|
|
|
|
```
|
|
> go run initialize_users.go
|
|
Created tenant: Famous Coders with id fc58e19a-3a2a-4afc-90ec-8f94986db340
|
|
Created user: Dennis Ritchie with id ee1e14e7-b00b-4eec-8b03-a6bf0e29c77c
|
|
Created user: Grace Hopper with id a29f3afd-e4a3-4552-91e8-cc99e26bffce
|
|
Created tenant: Scientists with id 18406c53-e2d6-4e83-98b6-a55880eef195
|
|
Created user: Albert Einstein with id 12023d37-d6ce-4f19-a318-b70866f265ba
|
|
Created user: Marie Curie with id 30c3c825-c37d-4e85-8195-0142e4884872
|
|
Setting password for user: grace
|
|
Setting password for user: marie
|
|
Setting password for user: dennis
|
|
Setting password for user: einstein
|
|
```
|