Patch Application
This page provides a step-by-step walkthrough for applying a client-specific patch (delivered as a .zip file) to a running SigningHub Docker-based deployment. This mode is designed to update existing SigningHub services in-place while preserving the current configuration and container state.
The wizard-style approach is not used in this process; instead, patching is performed manually through controlled container operations, ensuring minimal disruption to running services.
Overview
A patch ZIP file mirrors the internal directory structure of the SigningHub application (/app inside the container). Applying the patch means extracting it directly into /app, which automatically overwrites only the files included in the patch.
No manual file mapping is required.
Important: Do not recreate or redeploy containers while applying a patch. Recreating containers (e.g.,
docker compose up --force-recreate) removes the writable container layer and results in loss of applied patch changes. The correct approach is to copy and extract the patch into a running container and then restart it usingdocker restart, which preserves the installation state.
Prerequisites
Server access
SSH access to the host running the SigningHub Docker deployment
Docker
Installed and running (docker --version)
Docker Compose
Installed (docker compose version)
Patch ZIP file
Copied to the host server before starting
Permissions
User must have Docker execution rights (root or docker group access)
Container Reference
signinghub-admin-api
Admin API
/app/admin-api/
8084
signinghub-api
Web API
/app/api/
8082
signinghub-web
Web Frontend
/app/web/
8080
signinghub-admin
Admin Frontend
/app/admin/
8081
signinghub-core
Core Service
/app/core/
8086
All SigningHub service containers share the same application root: /app.
Infrastructure services (such as database, cache, and mail services) are not part of patch deployment.

Patch Application Flow
This section outlines the steps to apply a patch to a running SigningHub Docker container. The patch is applied directly into the existing container without recreating it, ensuring that the current configuration and data remain intact.
Follow the steps to safely copy, apply, and activate the patch on the target service.
Step 1: Identify Running Containers
Verify that SigningHub services are running before applying the patch:
Confirm that required services are in an Up (healthy) state.
Step 2: Identify Target Container
The patch may be service-specific or apply to multiple services.
Use the Container Reference table to identify the correct container.
Recommended execution order (if multiple services are affected):
Step 3: Copy Patch to Container
Copy the patch ZIP file into the container:
Example:
Verify file transfer:

Step 4: Extract Patch
Extract the patch into the application directory inside the container:
This will overwrite only the files included in the patch package.
Step 5: Apply Patch
Ensure correct permissions are applied after extraction:
Step 6: Remove Patch File
Clean up the temporary file:
Step 7: Restart Container
Restart the container to apply the changes:
Example:
The container will restart using the existing installation state and will not trigger reinstallation.
If the patch applies to multiple services, repeat steps 3 to 7 for each container.
Validation
1. Check Container Status
Ensure the container status is Up.
2. Check Logs
Look for successful startup messages.
3. Verify Service Response
A valid HTTP response confirms the service is running.
4. Confirm Patch Applied
Verify a known patched file exists:
After applying the patch, the DB scripts provided in the patch zip file need to be manually executed.
The patch ZIP structure must match the internal
/appdirectory structure.Containers must not be recreated during patching.
Only
docker restartshould be used after applying a patch.Patch operations are in-place and do not modify the database configuration or data.
If multiple services are patched, always follow dependency order to avoid service disruption.
Ensure backups are taken before applying patches in production environments.
If a container fails after a restart, review the logs using
docker logs.
Last updated