Docker Compose File¶
You can download an example docker compose file via the following link.
GitHub: docker-compose.yml
This file has been configured to download and start up everything you need to run the Panache Legal Platform and its currently available services.
Environment Variables¶
The Panache Legal Platform docker images require several environment variables to be configured, these are listed below.
Note
Not all images require the same variables.
ASPNETCORE_ENVIRONMENT
Set’s the environment that this container uses. This should be set as Development
ASPNETCORE_URLS
The http ports to be spun up by the webserver. This should be set as http://+:80
ConnectionStrings__MySQL
If the image requires a database use this to specify a connection string to a MySQL database.
ConnectionStrings__MSSQL
If the image requires a database use this to specify a connection string to a MSSQL database.
PanacheSoftware__CallMethod__APICallsSecure
Specifies if API calls should be made using http (value of false) or https (value of true). Currently Panache Legal docker images only support a value of False
PanacheSoftware__CallMethod__UICallsSecure
Specifies if UI calls should be made using http (value of false) or https (value of true). Currently Panache Legal docker images only support a value of False
PanacheSoftware__CallMethod__UseAPIGateway
Specifies if API calls should be handled via the Panache Legal API Gateway service. Currently unsupported when using Panache Legal docker images so this should have a value of False
PanacheSoftware__StartDomain
The underlying foundations of the Panache Legal Platform support running as multitenant. This variable should be used to specify the start domain (tenant) and all users created in system will require a username set with an email address that matches this domain. A default user will be created on startup based on this value so, for example, if this is set with a value of panachesoftware.com then on start a default user will be created with the following details.
Username: admin@panachesoftware.com
Password: Passw0rd123!
PanacheSoftware__DBProvider
Used to specify if the service should use Microsoft SQL server or MySQL for its database. This should have a value of either MSSQL or MySQL and you should make sure the corresponding connection string is configured.
PanacheSoftware__Url__IdentityServerURL
and PanacheSoftware__Url__IdentityServerURLSecure
Specifies the URL for the Panache Legal Identity service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__APIGatewayURL
and PanacheSoftware__Url__APIGatewayURLSecure
Specifies the URL for the Panache Legal API Gateway. Currently not supported by Panache Legal docker images, although this should still be included.
PanacheSoftware__Url__UIClientURL
and PanacheSoftware__Url__UIClientURLSecure
Specifies the URL for the Panache Legal UI. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__ClientServiceURL
and PanacheSoftware__Url__ClientServiceURLSecure
Specifies the URL for the Panache Legal Client service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__FileServiceURL
and PanacheSoftware__Url__FileServiceURLSecure
Specifies the URL for the Panache Legal File service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__FoundationServiceURL
and PanacheSoftware__Url__FoundationServiceURLSecure
Specifies the URL for the Panache Legal Foundation service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__TaskServiceURL
and PanacheSoftware__Url__TaskServiceURLSecure
Specifies the URL for the Panache Legal Task service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Url__TeamServiceURL
and PanacheSoftware__Url__TeamServiceURLSecure
Specifies the URL for the Panache Legal Team service. Currently Panache Legal docker images do not support the Secure URL.
PanacheSoftware__Secret__UIClientSecret
The secret used to identify the Panache Legal UI to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__APIGatewaySecret
The secret used to identify the Panache Legal API Gateway to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__ClientServiceSecret
The secret used to identify the Panache Legal Client service to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__FileServiceSecret
The secret used to identify the Panache Legal File service to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__FoundationServiceSecret
The secret used to identify the Panache Legal Foundation service to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__TaskServiceSecret
The secret used to identify the Panache Legal Task service to Panache Legal Identity. Should be set as a unique GUID.
PanacheSoftware__Secret__TeamServiceSecret
The secret used to identify the Panache Legal Team service to Panache Legal Identity. Should be set as a unique GUID.
MySQL or MSSQL Docker¶
MySQL:
sqldata:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=Passw0rd123!
volumes:
- panachesoftware-sqldata:/var/opt/mssql
Microsoft SQL Server:
sqldata:
image: mcr.microsoft.com/mssql/server:2017-latest
environment:
- SA_PASSWORD=Passw0rd123!
- ACCEPT_EULA=Y
ports:
- "5433:1433"
volumes:
- panachesoftware-sqldata:/var/opt/mssql
volumes:
panachesoftware-sqldata:
external: false
This downloads and starts up a Linux based SQL Server container or a MySQL container in docker.
For Microsoft SQL server the password for the sa user will be set to ‘Passw0rd123!’ and the EULA will be automatically accepted. On MySQL the password for the root user will be set to ‘Passw0rd123!’.
For Microsoft SQL Server it is assumed that you will be running this SQL Server image using the free developer licence, but you should confirm that this licence applies to your organisation and use case or whether you require a seperate licence.
Note
This is not required if you are connecting to an existing database installation.
Panache Software Identity¶
panachesoftware.identity:
image: panachesoftware/panachesoftwareidentity:latest
depends_on:
- sqldata
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.Identity;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__UIClientURL=http://host.docker.internal:55001
- PanacheSoftware__Url__UIClientURLSecure=https://host.docker.internal:44301
- PanacheSoftware__Secret__UIClientSecret=49C1A7E1-0C79-4A89-A3D6-A37998FB86B0
- PanacheSoftware__Secret__APIGatewaySecret=DDDCB193-213C-43FB-967A-5A911D2EFC04
- PanacheSoftware__Secret__ClientServiceSecret=1314EF18-40FA-4B16-83DF-B276FF0D92A9
- PanacheSoftware__Secret__FileServiceSecret=839C649E-4FE3-410C-B43F-69C017A52676
- PanacheSoftware__Secret__FoundationServiceSecret=70CD8BB9-5256-42CF-8B95-DD61C1051AD0
- PanacheSoftware__Secret__TaskServiceSecret=AC654B02-E46B-4359-B908-87479CBE1CEB
- PanacheSoftware__Secret__TeamServiceSecret=5C9BF545-3C20-4448-9EEC-6B3E745B671E
ports:
- "55002:80"
The Identity Service requires a database (which will be created on start-up) as well as the secrets to identify all of the other Panache Legal services, along with the address of the Panache Legal UI.
Panache Software Team Service¶
panachesoftware.service.team:
image: panachesoftware/panachesoftwareserviceteam:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.Team;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Secret__TeamServiceSecret=5C9BF545-3C20-4448-9EEC-6B3E745B671E
ports:
- "55006:80"
The Team Service requires a database (which will be created on start-up) as well as a secret that can be used to identify it and the location of the Panache Legal Identity service to allow it to perform authorisation against requests.
Panache Software Task Service¶
panachesoftware.service.task:
image: panachesoftware/panachesoftwareservicetask:latest
depends_on:
- sqldata
- panachesoftware.identity
- panachesoftware.service.team
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.Task;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Url__TeamServiceURL=http://host.docker.internal:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://host.docker.internal:44306
- PanacheSoftware__Secret__TaskServiceSecret=AC654B02-E46B-4359-B908-87479CBE1CEB
ports:
- "55007:80"
The Task Service requires a database (which will be created on start-up) as well as a secret that can be used to identify it and the location of the Panache Legal Identity service to allow it to perform authorisation against requests. This service also needs to call the Team service for data control.
Panache Software Foundation Service¶
panachesoftware.service.foundation:
image: panachesoftware/panachesoftwareservicefoundation:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.Foundation;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Secret__FoundationServiceSecret=70CD8BB9-5256-42CF-8B95-DD61C1051AD0
ports:
- "55004:80"
The Foundation Service requires a database (which will be created on start-up) as well as a secret that can be used to identify it and the location of the Panache Legal Identity service to allow it to perform authorisation against requests.
Panache Software File Service¶
panachesoftware.service.file:
image: panachesoftware/panachesoftwareservicefile:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.File;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Secret__FileServiceSecret=839C649E-4FE3-410C-B43F-69C017A52676
ports:
- "55008:80"
The File Service requires a database (which will be created on start-up) as well as a secret that can be used to identify it and the location of the Panache Legal Identity service to allow it to perform authorisation against requests.
Panache Software Client Service¶
panachesoftware.service.client:
image: panachesoftware/panachesoftwareserviceclient:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__MySQL=server=sqldata;port=3306;database=PanacheSoftware.Client;user=root;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Secret__ClientServiceSecret=1314EF18-40FA-4B16-83DF-B276FF0D92A9
ports:
- "55005:80"
The Client Service requires a database (which will be created on start-up) as well as a secret that can be used to identify it and the location of the Panache Legal Identity service to allow it to perform authorisation against requests.
Panache Software UI¶
panachesoftware.ui.client:
image: panachesoftware/panachesoftwareuiclient:latest
depends_on:
- panachesoftware.identity
- panachesoftware.service.team
- panachesoftware.service.task
- panachesoftware.service.foundation
- panachesoftware.service.file
- panachesoftware.service.client
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://host.docker.internal:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://host.docker.internal:44302
- PanacheSoftware__Url__APIGatewayURL=http://host.docker.internal:55003
- PanacheSoftware__Url__APIGatewayURLSecure=https://host.docker.internal:44303
- PanacheSoftware__Url__UIClientURL=http://host.docker.internal:55001
- PanacheSoftware__Url__UIClientURLSecure=https://host.docker.internal:44301
- PanacheSoftware__Url__ClientServiceURL=http://host.docker.internal:55005
- PanacheSoftware__Url__ClientServiceURLSecure=https://host.docker.internal:44305
- PanacheSoftware__Url__FileServiceURL=http://host.docker.internal:55008
- PanacheSoftware__Url__FileServiceURLSecure=https://host.docker.internal:44308
- PanacheSoftware__Url__FoundationServiceURL=http://host.docker.internal:55004
- PanacheSoftware__Url__FoundationServiceURLSecure=https://host.docker.internal:44304
- PanacheSoftware__Url__TaskServiceURL=http://host.docker.internal:55007
- PanacheSoftware__Url__TaskServiceURLSecure=https://host.docker.internal:44307
- PanacheSoftware__Url__TeamServiceURL=http://host.docker.internal:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://host.docker.internal:44306
- PanacheSoftware__Secret__UIClientSecret=49C1A7E1-0C79-4A89-A3D6-A37998FB86B0
ports:
- "55001:80"
The Panache Legal UI requires a secret that can be used to identify it and the location of all other Panache Legal services so that it can make appropriate API calls.