PanacheLegalDocs
latest

Introduction

  • The Panache Legal Platform

Getting Started

  • Running Panache Legal with Docker
    • 0 to LegalTech in 3 minutes
    • TL;DR
    • Install Docker
    • Setup Database Server
    • Download Docker compose file
  • Docker Compose File
    • Environment Variables
    • MySQL or MSSQL Docker
    • Panache Software Identity
    • Panache Software Team Service
    • Panache Software Task Service
    • Panache Software Foundation Service
    • Panache Software File Service
    • Panache Software Client Service
    • Panache Software UI
  • Running Panache Legal on a Raspberry Pi
    • 0 to LegalTech in 3 minutes
    • TL;DR
    • Setup your Raspberry Pi
    • Setup MySQL
    • Download Docker compose file
  • Docker Compose File Examples
    • Raspberry Pi (or Linux) with MySQL
    • Windows with MySQL
    • Windows with MSSQL
  • Build the project
    • Prerequisites
    • Build
PanacheLegalDocs
  • Docs »
  • PanacheLegalDocs documentation
  • Edit on GitHub

Welcome to the Panache Legal documentation (latest)¶

_images/ps-logo.png

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.

_images/become_a_patron_button.png

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.

  1. Install Docker Desktop

  2. Download the example docker-compose.yml file

  3. 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’.

  1. Right click on the Windows button and select ‘Apps and Features’.
  2. Select Programs and Features on the right under related settings.
  3. Select Turn Windows Features on or off.
  4. 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:

  1. Place downloaded docker-compose.yml file in a directory of your choosing.

  2. Right clieck on the Windows button and select ‘Windows PowerShell’.

  3. In Windows Powershell navigate to the directory where you stored docker-compose.yml.

  4. 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.

_images/docker-dashboard-fail.png

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

_images/docker-dashboard.png

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¶

_images/raspi-logo.png

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.

  1. Install Docker and Docker compose

  2. Setup a MySQL database

  3. Download the example docker-compose.yml file

  4. 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.

  1. Purchase a Raspberry Pi 4 Model B 4GB
  2. Wait patiently for delivery….
  3. Setup your Raspberry Pi
  4. Before you install Panache Legal maybe checkout some of the cool things you can do, don’t worry, we’ll wait….
  5. 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:

  1. Install MySQL on your Raspberry Pi using MariaDB: MySQL Install
  2. 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:

  1. Place downloaded docker-compose.yml file into a folder of your choosing.

  2. Edit the docker-compose.yml file changing the hostname as required, in this example the host name is assumed to be:

    raspberrypi
    
  3. 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!
    
  4. Recommended Edit the docker-compose.yml to changing GUIDs used for secrets to something specific to your install

  5. 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:

  1. Install the latest .NET 5 SDK for your platform.
  2. Install Git

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.

Build¶

This should be as simple as opening the solution in Visual Studio and running or building the project, or alternatively navigating to the ‘src’ directory and running:

dotnet build .\PanacheLegalPlatform.sln

© Copyright 2020, Peter Davis Revision a9afbe78.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.