How to Configure On-Prem Secure Sharing Solution
Last updated
Was this helpful?
Last updated
Was this helpful?
This document outlines how to deploy MinIO (for secure storage) and the On-Prem Secure Sharing Service with TLS/mTLS using Docker and Docker Compose. The process is organized into Pre-Deployment, Registration, Deployment, and Verification phases, with a final step to provide the generated credential file to FenixPyre Support.
Complete these steps before obtaining mTLS certificates from FenixPyre or installing the On-Prem Sharing Service.
Purpose: Runs MinIO with TLS.
Minimum Requirements: Atleast 4 CPU cores, 16 GB RAM, disk space for storage, open inbound port 443 and port 80.
Operating System: Linux (Docker-supported distribution)
CPU: At least 4 cores
Memory: At least 16 GB RAM
Storage: Sufficient space for stored files (e.g., 50 GB or more)
Depending on your environment, use the appropriate approach to provision your VMs:
Follow the to create Linux VMs.
Ensure the Network Security Group (NSG) allows traffic on the required ports. Ports 443, 80 and 8080
Create an A Record on your DNS provider so each domain points to its VM’s public IP:
fp-sharing-storage.your-domain.com → <VM A Public IP>
fp-sharing.your-domain.com → <VM B Public IP>
Why: Let’s Encrypt checks DNS to validate domain ownership. Even with manual certificates, consistent DNS ensures stable host references.
Docker:
Docker Compose:
setup_minio.sh
on VM AAutomatic Certificate Renewal: Let’s Encrypt certificates created by the script are automatically renewed via a scheduled script that runs periodically.
The script creates a daily cron job that:
Runs certbot renew --quiet
Copies renewed certs into the MinIO cert folder
Restarts the MinIO container
Logs the event to ~/minio/certificate-renewal.log
setup_onprem.sh
on VM BDo not run yet until you have mTLS certs from FenixPyre.
With your VMs ready and mTLS certificates from FenixPyre, you can finalize deployment on VM B (On-Prem Sharing Service).
mTLS Certificate Placement (Manual Step): During the Full Setup process, the script will prompt you to place the FenixPyre-provided mTLS certificates (
server.crt
,server.key
,ca.crt
) into the~/onpremsharing/certs/mtls/
directory.
During Full Setup the script will:
Prompt you to place mTLS certs into ~/onpremsharing/certs/mtls/
Optionally obtain a public TLS cert (Let’s Encrypt) or accept a manual one
Collect PostgreSQL & MinIO credentials
Generate secure random values for HMAC secret and Sharing Service token
Write config.yaml
and docker-compose.yaml
in ~/onpremsharing/
Start containers (PostgreSQL + Sharing Service)
Verify:
Public API → https://fp-sharing.example.com/health
Private API (mTLS) → https://<VM B IP>:8080/health
Automatic certificate renewal
If Let’s Encrypt is enabled, a cron job runs nightly at 03:00:
Renews certificates if required
Deploys new certs, restarts the container
Logs to ~/onpremsharing/certificate-renewal.log
Verify Deployment: Checks health of existing On-Prem Service; no new setup.
Extract Credentials: Displays the credentials (including URL, tokens) from the generated onprem_details.txt
file.
Create Credentials File: Rebuilds or updates the credential file from your config.yaml
settings if needed.
Setup Certificate Renewal: Let’s Encrypt certificates created by the script are automatically renewed via a scheduled script that runs periodically.
Note: For a fresh installation, always start with “1) Full Setup.” The other options are useful if you’ve already installed the service or want to re-check or re-generate credentials.
By default, Full Setup already confirms the service health. However, these additional methods help if you want to re-check later or investigate any potential issues
Public API is checked at:
Private API (mTLS) is checked at:
using the FenixPyre-provided certificates.
If these checks pass (the script typically shows “OK” or a JSON response with “status”: “OK”), your On-Prem Sharing Service is online and configured properly.
Single-File Download: Only single-file downloading is currently supported.
Opening Files: Opening files is not yet fully supported and may exhibit unexpected behavior.
Favourites: Marking files as favourites is not fully implemented; please refrain from using it until a future update.
For help or questions:
Support:
Documentation: