PIES Studio - Enterprise License Installation Guide
This guide walks you through setting up the full PIES Studio platform in offline mode using Docker Compose. It is designed for enterprise customers who have received access to licensed containers and configuration files.
Table of Contents
1. Prerequisites
Before you begin, ensure the following are installed on your system:
Docker (v20+ recommended)
Docker Compose (v1.29+ or Docker Compose Plugin for v2)
Linux/Unix environment (Ubuntu/RHEL with ARM64 architecture recommended)
A valid offline license file
pies_studio.license
If you’re using a VM or air-gapped machine, ensure Docker can access the required ports.
2. Getting Started
Step 1: Install Docker and Docker Compose
Refer to the official Docker installation docs and Compose plugin guide.
Step 2: Prepare Required Files
Recommended Approach
The most straightforward way to set up the required directory structure is to clone our PIES Studio Enterprise repository from GitHub directly. The link to the repository can be found below.
https://github.com/pies-io/pies_studio_enteprise
Cloning the Repository
Run the below command to clone the .git repository, this should provide you all the necessary files and folders along with the docker-compose.yml
file.
git clone https://github.com/pies-io/pies_studio_enteprise
Copying the License File
Place the pies_studio.license
file that was provided to you inside the config/license
folder.
Preparing Your Deployment Environments
The PIES Studio Deployment Engine requires credentials to interact with cloud platforms such as Google Cloud. This section outlines how to prepare your deployment environment using a Service Account approach for secure access to Google Cloud resources.
Step 1: Create a Service Account
Go to the [Google Cloud Console | https://console.cloud.google.com/].
Navigate to IAM & Admin → Service Accounts.
Click on Create Service Account.
Provide a name and description for the service account (e.g., pies-studio-deployer).
Click Create and Continue.
Step 2: Assign Required Roles
Assign the following roles to the service account to enable deployment functionality:
Kubernetes Engine Admin – To create and manage GKE clusters.
Artifact Registry Administrator – To create repositories and manage pushed images.
Compute Network Admin – To manage VPC and networking during cluster provisioning.
Service Account User – To allow the use of this service account within GKE clusters.
Storage Admin – To allow storage access where required by Kubernetes or Artifact Registry.
Note: These are minimum required roles. Additional roles may be necessary depending on your organization’s security policies.
Step 3: Generate a Service Account Key
After creating the service account, go to the Keys tab.
Click Add Key → Create new key.
Choose JSON and click Create.
Download and securely store the generated key file (e.g., service_account_config.json).
This downloaded JSON key file should be mounted as a volume to the
pies-studio-deployer
image as mentioned in the below configuration.
Setting up your SMTP servers
In order to receive emails from the platform, you need to configure details for an SMTP server inside the following configuration files -
config/core/config.json
config/license/config.json
Modifying the Configuration Files
Each microservice container reads its environment-specific configuration from mounted JSON files located in the config
folder of the repository.
Before starting, make sure that each configuration file contains the correct URLs. Replace any instances of http://localhost
with your server's hostname or IP address.
File Path | Purpose |
---|---|
| Configuration for the License Server |
| Configuration for the License Administrator portal |
| Configuration for the PIES Studio Core backend |
| Runtime config for the Studio frontend |
| Runtime config for the Preview frontend |
| Runtime config for the code generation engine |
| Deployment engine service configuration |
| Cloud credentials for deployment (Service account JSON key file) |
| Unsealing data for Vault, used by Codegen. Automatically generated, should not be written manually. |
| Your encrypted license key (do not modify) |
Detailed information regarding each configuration file can be found on the ‘Repository Overview’ section for the image on DockerHub.
The links to the DockerHub repositories can be found in the sections that follow.
For platform-specific deployments (Kubernetes, Nomad, etc.), ensure these configuration files are:
Mounted into containers using ConfigMaps or host volumes
Set to read-only where applicable
Maintained securely, especially pies_studio.license
Step 3: Start the System
Navigate to your base folder and run the provided start.sh script:
./start.sh
The first time this command runs, it will download all PIES Studio artifacts, create the required networks and volumes, and start all services.
To view running containers:
docker ps
To view logs for a container:
docker logs -f <container_name>
To shut down all services and clean up generated files, use the stop.sh script:
./stop.sh
3. Docker Setup
A docker-compose.yml
file will already be present in the cloned repository with all the necessary configurations. No additional setup steps are necessary if you follow the recommended approach.
If you wish to set-up the docker-compose
file manually, please expand the section below.
PIES Studio Images
The following Docker images are used in this deployment. All are hosted under the piesio organization on DockerHub:
Service Name | Description | Port(s) | Image URL |
| No-code studio frontend | 4200 | https://hub.docker.com/repository/docker/piesio/pies-studio-web/ |
| Backend API server | 8080, 9081 | https://hub.docker.com/repository/docker/piesio/pies-studio-core/ |
| License and Auth management server | 9070 | https://hub.docker.com/repository/docker/piesio/pies-studio-license-server/ |
| Admin portal for licenses and SSO | 4100 | https://hub.docker.com/repository/docker/piesio/pies-studio-license-web/ |
| Code generation engine | 9090 | https://hub.docker.com/repository/docker/piesio/pies-studio-codegen/ |
| Application deployment engine | 9071, 9072 | https://hub.docker.com/repository/docker/piesio/pies-studio-deployer/ |
| Docker-in-Docker service for preview execution | 9010, 9020 | https://hub.docker.com/repository/docker/piesio/pies-studio-dind/ |
| Frontend client for previewing deployed apps | 4300 | https://hub.docker.com/repository/docker/piesio/pies-studio-preview/ |
| Backend AI assistant service | 9075, 9076 | https://hub.docker.com/repository/docker/piesio/pies-studio-ai/ |
| Modified Vault image for secure secret storage | 8200 | https://hub.docker.com/repository/docker/piesio/pies-studio-vault/ |
| MongoDB database | 28018 (27017) | |
| MySQL database for codegen | 3306 | |
| Caching and OTP queue | 6379 |
The setup also includes official images for:
MySQL 8.0
MongoDB
Redis
Start and Stop Scripts
start.sh
docker compose up -d
stop.sh
docker compose down
rm -rf certs/client/*
rm -rf generated/*
4. Post-Setup Verification
After the services are up:
The platform administrator user should receive an email to set-up their password. This is the same email which was used for the license registration.
Click on the link in the email to set-up your password.
Once done, visit http://localhost:4100 and log-in with your credentials to access the License Admin portal.
Visit http://localhost:4200 to access the PIES Studio portal. You can use the same credentials.
Check logs of the codegen container to verify Vault unsealing.
Use docker exec -it mongo mongosh to verify DB connection if needed.
If any containers fail, inspect logs using docker logs or use docker-compose down and retry after fixing config issues.
5. Running on Other Platforms (Kubernetes, Nomad, etc.)
While this guide focuses on Docker Compose, the PIES Studio Offline stack is fully containerised and can be deployed on any container orchestration platform, including Kubernetes, Nomad, Docker Swarm or custom container runtimes.
To do so:
Use the full
docker-compose.yml
as a reference for service definitions, ports, inter-container networking, and volume mounts.Each container must have access to its corresponding
config.json
file through a volume mount or secret.The
pies_studio.license
file must be mounted read-only into the license server container.Vault must be unsealed via the shared volume between
pies-studio-vault
andpies-studio-codegen
as specified in the compose file.Expose ports using Ingress (Kubernetes) or equivalent Service / Proxy mechanisms.
Containers must run within the same network/namespace for internal communication.
You may use environment-specific mechanisms to inject secrets (e.g., Kubernetes Secrets, AWS SSM, Nomad Vault integrations).
6. Individual Installation
For details regarding installing each of the images individually, please refer to the ‘Repository Overview’ section on the DockerHub website for each of the images.
7. Support
For licensing issues or deployment support, please contact your onboarding specialist or reach out to support@pies.io.
Please include the following when raising an issue:
Docker Compose logs (docker-compose logs)
Environment details (OS, Docker version, etc.)