Welcome to the Panache Legal documentation (latest)¶

Panache Legal is a complete open source LegalTech platform available to use with unlimited users for no licence fee.
Caution
Panache Legal is currently in early alpha and is not suitable for production environments, it should only be used for early testing.
You should expect missing or incomplete features/functionality with the potential for data loss during upgrades.
Check the GitHub release information for further details.
The Panache Legal Platform is distributed under the Free Software Foundation’s GNU AGPL v3.0 licence.
Free and/or Commercial support
If you need help building and running the Panachel Legal Platform please contact us as we can help.
Supporting Panache Legal
Panache Legal is being built as a collabrative project designed to be supported by the community. If you want to get involved let us know and consider sponsoring the project to help provide a LegalTech platform for all.

The Panache Legal Platform¶
The Panache Legal Platform is built around the following.
Panache Legal Identity
Identity services for Panache Legal that uses the open source IdentityServer to provide OpenID Connect authentication.
Panache Legal UI
A responsive UI built using ASP.NET Core with Razor Pages.
With the following services:
Note
Panache Legal is being built with all functionality encapsulated within loosely coupled microservices.
The services below are those that are currently in place for testing purposes. See the GitHub Project area for more information on what services are currently in development.
Panache Legal Foundation
Provides core functionality to Panache Legal including User and System settings along with multi-language support.
Panache Legal Client
Provides CRM functionality for Panache Legal for storing client data.
Panache Legal Team
Allows for Panache Legal users to be assigned to Teams (replicating organisational structures) enabling access to information within the system to be controlled.
Panache Legal Task
Core component that allows for the creation of tasks within Panache Legal.
Panache Legal File
Provides storage of files including version control.
Running Panache Legal with Docker¶
The easiest way to get the Panache Legal Platform up and running is to use Docker. Docker provides a way of packaging applications in a container which can be run locally, in an on premise environment, or via a platform like Microsoft Azure App Service. When running Panache Legal via docker everything you need is included within the container meaning that as long as you have Docker installed you have everything you need to run Panache Legal.
All Panache Legal Platform containers are distributed via the Panache Software Docker Hub, here you can find docker containers for all the components of the Panache Legal platform distributed as Linux containers (that can be run on Windows, Mac or Linux) as well as Linux ARM32 containers suitable for running on ARM platforms like the Raspberry Pi.
0 to LegalTech in 3 minutes¶
Once you have Docker installed on your system and have a database available it’s possible to get Panache Legal up and running in as little as 3 minutes, just watch this video to see an example of getting Panache Legal up and running on a Raspberry Pi.
This guide provides you with details to get you up and running with Panache Legal in a Windows 10 environment. The principal will be the same in other enviornemnts (like Mac and Linux) so you should be able to adapt these instructions by making adjustments to the docker compose file.
Note
Panache Legal is currently in early alpha development and is not suitable for production environments, it should only be used for early testing.
Panache Legal containers currently include a development build of the software and do not support features like HTTPS to prevent complications with certificates.
The current build of Panache Legal supports Microsoft SQL Server and MySQL.
TL;DR¶
What follows is a step by step guide to running Panache Legal using Docker on Windows but the TL;DR is.
Install Docker Desktop
Download the example docker-compose.yml file
Run the following command:
docker-compose up -d
Install Docker¶
For Windows you will need to install the Docker Desktop application. Under Windows Docker requires that Hyper-V is installed (Available in Windows 10 Pro).
You can enable Hyper-V via Windows ‘Apps and Features’.
- Right click on the Windows button and select ‘Apps and Features’.
- Select Programs and Features on the right under related settings.
- Select Turn Windows Features on or off.
- Select Hyper-V and click OK.
Setup Database Server¶
The Panache Legal Platform requires either a Microsoft SQL Server or MySQL database. Depending on your situation you may have a local database server installation, an on premise server that you have access to, or a hosted database server provided through a service like Microsoft Azure.
Usage of Microsoft SQL Server requires a licence and so your use case will be specific to you and/or your organisation.
In this example we will use a MySQL Linux docker container. You could alternatively use a Microsoft SQL Server Linux container with the free developer licence. This licence includes some limitations on how it can be deployed and you should make sure to read the licence details on the docker hub page, as well as checking which edition will be suitable for your use case.
If you are not using the docker container version of MySQL or Microsoft SQL Server as per this guide and instead will connect to your own database installation you will need to ensure you have a valid connection string to access your database.
Download Docker compose file¶
You can download an example docker compose file via the following link.
GitHub: docker-compose.yml
Steps to run:
Place downloaded docker-compose.yml file in a directory of your choosing.
Right clieck on the Windows button and select ‘Windows PowerShell’.
In Windows Powershell navigate to the directory where you stored docker-compose.yml.
Type the following command:
docker-compose up -d
This will download all the containers from the Docker Hub and start them up.
Note
Time to download and start all containers will depend on your internet connection and the performance of your computer.
This docker compose file will download and start a Linux based MySQL container to store the Panache Legal Platform databases, because several of the containers require this to be in place before they can run correctly if you open the docker dashboard (via the docker desktop application) after running the command above you may see containers that fail to start.

If this happens simply click on the Start button next to any containers that are not running until all have started correctly

Once all containers are running open a web browser and navigate to http://host.docker.internal:55001 to open the Panache Legal Platform. You can use the following details to login (assuming you did not change the PanacheSoftware__StartDomain environment variable to a different domain).
Username: admin@panachesoftware.com
Password: Passw0rd123!
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.
Running Panache Legal on a Raspberry Pi¶

One of the core design considerations for the Panache Legal Platform is to build a LegalTech solution that can be used by an individual lawyer, right through to an enterprise, on any environment they may want to use. Panache Legal is built using Microsoft .NET 5 which provides cross platform functionality allowing Panache Legal to run on Windows, Mac and Linux (including ARM based variants).
Although it is unlikely that you would run a production environment on a Raspberry Pi it is possible to get Panache Legal running on one which means that if you had no available system to test on, you could get up and running with the complete platform for just the cost of a single Raspberry Pi, around £55.
If you want to run Panache Legal on a Raspberry Pi you can grab a copy of the code and build it yourself, but a far simpler method is to run the same way you can on Windows and use our pre-built docker images that you can find on our Docker Hub area, look for the versions ending with ‘-arm32’.
0 to LegalTech in 3 minutes¶
With a SQL Server database configured and Docker installed on your Raspberry Pi it’s possible to get Panache Legal up and running in as little as 3 minutes, just watch this video to see an example.
Note
Panache Legal is currently in early alpha development and is not suitable for production environments, it should only be used for early testing.
Panache Legal containers currently include a development build of the software and do not support features like HTTPS to prevent complications with certificates.
The current build of Panache Legal supports Microsoft SQL Server and MySQL.
TL;DR¶
What follows is a step by step guide to running Panache Legal on a Raspberry Pi but the TL;DR is.
Install Docker and Docker compose
Setup a MySQL database
Download the example docker-compose.yml file
Run the following command:
docker-compose up -d
Setup your Raspberry Pi¶
Firstly you need to setup your Raspberry Pi, this example has been tested with a Raspberry Pi 4 model B 4GB.
- Purchase a Raspberry Pi 4 Model B 4GB
- Wait patiently for delivery….
- Setup your Raspberry Pi
- Before you install Panache Legal maybe checkout some of the cool things you can do, don’t worry, we’ll wait….
- Install Docker and Docker Compose. There are lots of guides for this, here’s one to get you going: Guide
Setup MySQL¶
In this example we will use MySQL installed locally on the Raspberry Pi. The easiest way to set this up is to use the following guides:
- Install MySQL on your Raspberry Pi using MariaDB: MySQL Install
- Although not required you should install phpMyAdmin to make Database administration easy: phpMyAdmin Install
Make sure to note down the MySQL username and password you setup.
Download Docker compose file¶
You can download an example docker compose file suitable for a Raspberry Pi (ARM based Linux) via the following link.
GitHub: docker-compose.yml
Steps to run:
Place downloaded docker-compose.yml file into a folder of your choosing.
Edit the docker-compose.yml file changing the hostname as required, in this example the host name is assumed to be:
raspberrypi
Edit the docker-compose.yml file changing the MySQL logon details, in this example these are assumed to be:
Server=raspberrypi user=pluser password=Passw0rd123!
Recommended Edit the docker-compose.yml to changing GUIDs used for secrets to something specific to your install
In the shell, navigate to the folder where you downloaded the docker-compose.yml file and run the following command:
docker-compose up -d
This will download all the containers from the Docker Hub and start them up.
Note
Time to download and start all containers will depend on your internet connection and the performance of your computer.
Once all containers are running open a web browser and navigate to http://raspberrypi:55001 to open the Panache Legal Platform. You can use the following details to login (assuming you did not change the PanacheSoftware__StartDomain environment variable to a different domain).
Username: admin@panachesoftware.com
Password: Passw0rd123!
Docker Compose File Examples¶
The following are examples of complete docker compose files.
Note
In the examples below whenever a GUID is shown i.e. 9C32BBD1-9C08-40FA-96C3-2195F61661F1, this is used as an example. You should replace these with your own GUIDS when creating your environment.
Raspberry Pi (or Linux) with MySQL¶
The following will provide a Panache Legal Platform environment running on a Raspberry Pi using a local MySQL (MariaDb) database.
In this example the Raspberry Pi hostname is ‘raspberrypi’ and a local installation of MySQL has been performed. A user called ‘pluser’ has been setup with a password of ‘Passw0rd123!’.
Once all containers are running open a web browser on the Raspberry Pi, or from any device connected to the same local network, and navigate to http://raspberrypi:55001 to open the Panache Legal Platform. You can use the following details to login (assuming you did not change the PanacheSoftware__StartDomain environment variable to a different domain).
Username: admin@panachesoftware.com
Password: Passw0rd123!
version: "3.4"
services:
panachesoftware.identity:
image: panachesoftware/panachesoftwareidentity-arm32:latest
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55002
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.Identity.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__UIClientURL=http://raspberrypi:55001
- PanacheSoftware__Url__UIClientURLSecure=https://raspberrypi:44301
- PanacheSoftware__Secret__UIClientSecret=9C32BBD1-9C08-40FA-96C3-2195F61661F1
- PanacheSoftware__Secret__APIGatewaySecret=D32CAA87-2F1F-4D35-B2DF-C712C2AFF6C3
- PanacheSoftware__Secret__ClientServiceSecret=AA04416A-A87B-4D88-956B-27CBFFCC2802
- PanacheSoftware__Secret__FileServiceSecret=6D20E27B-18EE-4694-AFB7-929343F51D43
- PanacheSoftware__Secret__FoundationServiceSecret=A81F774A-6E87-4C37-BEA0-2F62CC2F374A
- PanacheSoftware__Secret__TaskServiceSecret=8CDD9C0B-EAD3-4377-A42E-AEEAC9909C0D
- PanacheSoftware__Secret__TeamServiceSecret=819E2211-EAD4-49D0-84E5-29E6F45587BB
network_mode: "host"
restart: always
panachesoftware.service.team:
image: panachesoftware/panachesoftwareserviceteam-arm32:latest
depends_on:
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55006
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.Team.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Secret__TeamServiceSecret=819E2211-EAD4-49D0-84E5-29E6F45587BB
network_mode: "host"
restart: always
panachesoftware.service.task:
image: panachesoftware/panachesoftwareservicetask-arm32:latest
depends_on:
- panachesoftware.identity
- panachesoftware.service.team
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55007
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.Task.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Url__TeamServiceURL=http://raspberrypi:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://raspberrypi:44306
- PanacheSoftware__Secret__TaskServiceSecret=8CDD9C0B-EAD3-4377-A42E-AEEAC9909C0D
network_mode: "host"
restart: always
panachesoftware.service.foundation:
image: panachesoftware/panachesoftwareservicefoundation-arm32:latest
depends_on:
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55004
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.Foundation.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Secret__FoundationServiceSecret=A81F774A-6E87-4C37-BEA0-2F62CC2F374A
network_mode: "host"
restart: always
panachesoftware.service.file:
image: panachesoftware/panachesoftwareservicefile-arm32:latest
depends_on:
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55008
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.File.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Secret__FileServiceSecret=6D20E27B-18EE-4694-AFB7-929343F51D43
network_mode: "host"
restart: always
panachesoftware.service.client:
image: panachesoftware/panachesoftwareserviceclient-arm32:latest
depends_on:
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55005
- ConnectionStrings__MySQL=server=raspberrypi;port=3306;database=PanacheSoftware.Client.Pi;user=pluser;password=Passw0rd123!;GuidFormat=Char36
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__DBProvider=MySQL
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Secret__ClientServiceSecret=AA04416A-A87B-4D88-956B-27CBFFCC2802
network_mode: "host"
restart: always
panachesoftware.ui.client:
image: panachesoftware/panachesoftwareuiclient-arm32: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://+:55001
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://raspberrypi:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://raspberrypi:44302
- PanacheSoftware__Url__APIGatewayURL=http://raspberrypi:55003
- PanacheSoftware__Url__APIGatewayURLSecure=https://raspberrypi:44303
- PanacheSoftware__Url__UIClientURL=http://raspberrypi:55001
- PanacheSoftware__Url__UIClientURLSecure=https://raspberrypi:44301
- PanacheSoftware__Url__ClientServiceURL=http://raspberrypi:55005
- PanacheSoftware__Url__ClientServiceURLSecure=https://raspberrypi:44305
- PanacheSoftware__Url__FileServiceURL=http://raspberrypi:55008
- PanacheSoftware__Url__FileServiceURLSecure=https://raspberrypi:44308
- PanacheSoftware__Url__FoundationServiceURL=http://raspberrypi:55004
- PanacheSoftware__Url__FoundationServiceURLSecure=https://raspberrypi:44304
- PanacheSoftware__Url__TaskServiceURL=http://raspberrypi:55007
- PanacheSoftware__Url__TaskServiceURLSecure=https://raspberrypi:44307
- PanacheSoftware__Url__TeamServiceURL=http://raspberrypi:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://raspberrypi:44306
- PanacheSoftware__Secret__UIClientSecret=9C32BBD1-9C08-40FA-96C3-2195F61661F1
network_mode: "host"
restart: always
Windows with MySQL¶
The following will provide a Panache Legal Platform environment with a MySQL database running in a Linux Docker container:
version: "3.4"
services:
sqldata:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=Passw0rd123!
volumes:
- panachesoftware-sqldata:/var/opt/mssql
panachesoftware.identity:
image: panachesoftware/panachesoftwareidentity:latest
depends_on:
- sqldata
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55002
- 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://localhost:55001
- PanacheSoftware__Url__UIClientURLSecure=https://localhost: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
network_mode: "host"
restart: always
panachesoftware.service.team:
image: panachesoftware/panachesoftwareserviceteam:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55006
- 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://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__TeamServiceSecret=5C9BF545-3C20-4448-9EEC-6B3E745B671E
network_mode: "host"
restart: always
panachesoftware.service.task:
image: panachesoftware/panachesoftwareservicetask:latest
depends_on:
- sqldata
- panachesoftware.identity
- panachesoftware.service.team
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55007
- 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://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Url__TeamServiceURL=http://localhost:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://localhost:44306
- PanacheSoftware__Secret__TaskServiceSecret=AC654B02-E46B-4359-B908-87479CBE1CEB
network_mode: "host"
restart: always
panachesoftware.service.foundation:
image: panachesoftware/panachesoftwareservicefoundation:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55004
- 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://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__FoundationServiceSecret=70CD8BB9-5256-42CF-8B95-DD61C1051AD0
network_mode: "host"
restart: always
panachesoftware.service.file:
image: panachesoftware/panachesoftwareservicefile:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55008
- 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://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__FileServiceSecret=839C649E-4FE3-410C-B43F-69C017A52676
network_mode: "host"
restart: always
panachesoftware.service.client:
image: panachesoftware/panachesoftwareserviceclient:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55005
- 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://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__ClientServiceSecret=1314EF18-40FA-4B16-83DF-B276FF0D92A9
network_mode: "host"
restart: always
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://+:55001
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Url__APIGatewayURL=http://localhost:55003
- PanacheSoftware__Url__APIGatewayURLSecure=https://localhost:44303
- PanacheSoftware__Url__UIClientURL=http://localhost:55001
- PanacheSoftware__Url__UIClientURLSecure=https://localhost:44301
- PanacheSoftware__Url__ClientServiceURL=http://localhost:55005
- PanacheSoftware__Url__ClientServiceURLSecure=https://localhost:44305
- PanacheSoftware__Url__FileServiceURL=http://localhost:55008
- PanacheSoftware__Url__FileServiceURLSecure=https://localhost:44308
- PanacheSoftware__Url__FoundationServiceURL=http://localhost:55004
- PanacheSoftware__Url__FoundationServiceURLSecure=https://localhost:44304
- PanacheSoftware__Url__TaskServiceURL=http://localhost:55007
- PanacheSoftware__Url__TaskServiceURLSecure=https://localhost:44307
- PanacheSoftware__Url__TeamServiceURL=http://localhost:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://localhost:44306
- PanacheSoftware__Secret__UIClientSecret=49C1A7E1-0C79-4A89-A3D6-A37998FB86B0
network_mode: "host"
restart: always
volumes:
panachesoftware-sqldata:
external: false
Once all containers are running open a web browser and navigate to http://localhost:55001 to open the Panache Legal Platform. You can use the following details to login (assuming you did not change the PanacheSoftware__StartDomain environment variable to a different domain).
Username: admin@panachesoftware.com
Password: Passw0rd123!
Windows with MSSQL¶
The following will provide a Panache Legal Platform environment with a Microsoft SQL Server database running in a Linux Docker container:
version: "3.4"
services:
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
panachesoftware.identity:
image: panachesoftware/panachesoftwareidentity:latest
depends_on:
- sqldata
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55002
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Identity.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__UIClientURL=http://localhost:55001
- PanacheSoftware__Url__UIClientURLSecure=https://localhost: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
network_mode: "host"
restart: always
panachesoftware.service.team:
image: panachesoftware/panachesoftwareserviceteam:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55006
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Service.Team.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__TeamServiceSecret=5C9BF545-3C20-4448-9EEC-6B3E745B671E
network_mode: "host"
restart: always
panachesoftware.service.task:
image: panachesoftware/panachesoftwareservicetask:latest
depends_on:
- sqldata
- panachesoftware.identity
- panachesoftware.service.team
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55007
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Service.Task.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Url__TeamServiceURL=http://localhost:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://localhost:44306
- PanacheSoftware__Secret__TaskServiceSecret=AC654B02-E46B-4359-B908-87479CBE1CEB
network_mode: "host"
restart: always
panachesoftware.service.foundation:
image: panachesoftware/panachesoftwareservicefoundation:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55004
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Service.Foundation.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__FoundationServiceSecret=70CD8BB9-5256-42CF-8B95-DD61C1051AD0
network_mode: "host"
restart: always
panachesoftware.service.file:
image: panachesoftware/panachesoftwareservicefile:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55008
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Service.File.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__FileServiceSecret=839C649E-4FE3-410C-B43F-69C017A52676
network_mode: "host"
restart: always
panachesoftware.service.client:
image: panachesoftware/panachesoftwareserviceclient:latest
depends_on:
- sqldata
- panachesoftware.identity
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:55005
- ConnectionStrings__MSSQL=Server=sqldata;Database=PanacheSoftware.Service.Client.Docker;User Id=sa;Password=Passw0rd123!
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__DBProvider=MSSQL
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Secret__ClientServiceSecret=1314EF18-40FA-4B16-83DF-B276FF0D92A9
network_mode: "host"
restart: always
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://+:55001
- PanacheSoftware__CallMethod__APICallsSecure=False
- PanacheSoftware__CallMethod__UICallsSecure=False
- PanacheSoftware__CallMethod__UseAPIGateway=False
- PanacheSoftware__StartDomain=panachesoftware.com
- PanacheSoftware__Url__IdentityServerURL=http://localhost:55002
- PanacheSoftware__Url__IdentityServerURLSecure=https://localhost:44302
- PanacheSoftware__Url__APIGatewayURL=http://localhost:55003
- PanacheSoftware__Url__APIGatewayURLSecure=https://localhost:44303
- PanacheSoftware__Url__UIClientURL=http://localhost:55001
- PanacheSoftware__Url__UIClientURLSecure=https://localhost:44301
- PanacheSoftware__Url__ClientServiceURL=http://localhost:55005
- PanacheSoftware__Url__ClientServiceURLSecure=https://localhost:44305
- PanacheSoftware__Url__FileServiceURL=http://localhost:55008
- PanacheSoftware__Url__FileServiceURLSecure=https://localhost:44308
- PanacheSoftware__Url__FoundationServiceURL=http://localhost:55004
- PanacheSoftware__Url__FoundationServiceURLSecure=https://localhost:44304
- PanacheSoftware__Url__TaskServiceURL=http://localhost:55007
- PanacheSoftware__Url__TaskServiceURLSecure=https://localhost:44307
- PanacheSoftware__Url__TeamServiceURL=http://localhost:55006
- PanacheSoftware__Url__TeamServiceURLSecure=https://localhost:44306
- PanacheSoftware__Secret__UIClientSecret=49C1A7E1-0C79-4A89-A3D6-A37998FB86B0
network_mode: "host"
restart: always
volumes:
panachesoftware-sqldata:
external: false
Once all containers are running open a web browser and navigate to http://localhost:55001 to open the Panache Legal Platform. You can use the following details to login (assuming you did not change the PanacheSoftware__StartDomain environment variable to a different domain).
Username: admin@panachesoftware.com
Password: Passw0rd123!
Build the project¶
The main GitHub repository for the Panache Legal Platform can be found here.
Panache Legal is built using .NET 5 and the C# language. It includes a main solution file that you can open in the Visual Studio, but editing and buildiing the code could also be done using the cross platform Visual Studio Code editor, or another code editor of your choice.
Prerequisites¶
The only prerequisites are:
Within the UI Core project Node and Gulp are used to import various open source javascript libraries (via NPM), as well as compile some css files. Although not strictly neccesary, as all compiled files and required libraries are included in GitHub, if you want to make changes in this area you should install Node and Gulp and use the provided package.json file to update node modules.