Hosting on Windows

IronSecureDoc is a Docker container designed to give you powerful PDF manipulation behind a simple REST API, without the hassle and overhead of online SaaS services. This guide will walk you through the steps to host IronSecureDoc on your machine, including setting up environment variables and a basic example of using the REST API. For the full API, view our REST API Reference
docker pull ironsoftwareofficial/ironsecuredoc:latest
docker pull ironsoftwareofficial/ironsecuredoc:latest
Prerequisites
- Windows Operating System
- Windows 10 or later
- Windows Server (2016, 2019, 2022) Note: may have extra steps required
- Programs
- Docker Desktop for Windows installed and running
Step-by-Step Guide
1. Install Docker Desktop
If you haven't already installed Docker Desktop, follow these steps:
- Go to the Docker Desktop download page.
- Download the Docker Desktop installer for Windows.
- Run the installer and follow the on-screen instructions.
- After installation, start Docker Desktop and make sure it's running.
2. Pull the "IronSecureDoc" Docker Image
Open a command prompt and pull the latest IronSecureDoc image from Docker Hub:
docker pull ironsoftwareofficial/ironsecuredoc:latest
docker pull ironsoftwareofficial/ironsecuredoc:latest
3. Run the Container Without Certificate
Run the Docker container with the necessary environment variables:

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
Apply a Trial or License Key to Remove Watermarks
<IRONSECUREDOC_LICENSE_KEY>
with your actual IronSecureDoc license key. Otherwise, a watermark will be applied on Enterprise Features.
4. Access the Container
Once the container is running, you can access IronSecureDoc by opening a web browser and navigating to:
http://localhost:8080/swagger/index.html

You should see the IronSecureDoc interface, indicating that your container is running successfully.
5. Run the IronSecureDoc Container With Certificate
If you need to run the container with a certificate, follow these steps to generate the certificate and configure the local machine:
Generate Certificate:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\ironsecuredoc.pfx -p <CREDENTIAL_PLACEHOLDER> dotnet dev-certs https --trust
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\ironsecuredoc.pfx -p <CREDENTIAL_PLACEHOLDER> dotnet dev-certs https --trust
SHELLReplace
<CREDENTIAL_PLACEHOLDER>
with a password.Run the Docker Container:
docker container run -d -p 8081:8081 -p 8080:8080 -e HTTP_PORTS=8080 -e HTTPS_PORTS=8081 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Production -v %USERPROFILE%\.aspnet\https:/https:ro -e CERTIFICATE_PATH=%USERPROFILE%\.aspnet\https\ironsecuredoc.pfx -e CERTIFICATE_PASSWORD=<CERTIFICATE_PASSWORD> ironsoftwareofficial/ironsecuredoc:latest
docker container run -d -p 8081:8081 -p 8080:8080 -e HTTP_PORTS=8080 -e HTTPS_PORTS=8081 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Production -v %USERPROFILE%\.aspnet\https:/https:ro -e CERTIFICATE_PATH=%USERPROFILE%\.aspnet\https\ironsecuredoc.pfx -e CERTIFICATE_PASSWORD=<CERTIFICATE_PASSWORD> ironsoftwareofficial/ironsecuredoc:latest
SHELLReplace
<IRONSECUREDOC_LICENSE_KEY>
and<CERTIFICATE_PASSWORD>
with your actual IronSecureDoc license key and certificate password respectively.
6. Managing the Container
You can manage your running container using Docker commands. Here are a few useful commands:
Stop the container:
docker stop <container-id>
docker stop <container-id>
SHELLStart the container:
docker start <container-id>
docker start <container-id>
SHELLRemove the container:
docker rm -f <container-id>
docker rm -f <container-id>
SHELL
Replace <container-id>
with the actual container ID or name.
Environment Variables
The container can be configured using the following environment variables:
PDF_MAX_SIZE_MB
(Default: 30): Sets the maximum allowed file size for PDF uploads in Megabytes.REQUEST_TIMEOUT_SECONDS
(Default: 5): Sets the timeout duration in seconds for API requests. A value of -1 allows requests to run indefinitely.ALLOWED_ORIGINS
: Configures Cross-Origin Resource Sharing (CORS) by specifying allowed origin URLs. Separate multiple URLs with commas. Use*
orall
to allow requests from any origin.HTTP_PORTS
: Defines the HTTP ports the container exposes. This should match the port mapping using-p
flag (e.g., 8080). Separate multiple ports with a semicolon (;
).HTTPS_PORTS
: Defines the HTTPS ports the container exposes. This should match the port mapping using-p
flag (e.g., 8081). Separate multiple ports with a semicolon (;
).IronSecureDoc_LicenseKey
(Required): Sets the IronSecureDoc license key. Important: Do not share this value publicly.
Basic Example: Redact Text in a Document
For the full list of API endpoints, refer to the full REST API Reference.
Redact Text
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' -H 'accept: */*' -H 'Content-Type: multipart/form-data' -F 'pdf_file=@/path/to/your/document.pdf;type=application/pdf' -F 'words_to_redact="sensitiveWord"' -F 'draw_black_box=true' -F 'match_whole_word=true' -F 'match_case=true'
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' -H 'accept: */*' -H 'Content-Type: multipart/form-data' -F 'pdf_file=@/path/to/your/document.pdf;type=application/pdf' -F 'words_to_redact="sensitiveWord"' -F 'draw_black_box=true' -F 'match_whole_word=true' -F 'match_case=true'
Replace /path/to/your/document.pdf
with the actual path to the document you want to redact and sensitiveWord
with the word you want to redact.
Redact Regular Expression
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' -H 'accept: */*' -H 'Content-Type: multipart/form-data' -F 'pdf_file=@/path/to/your/document.pdf;type=application/pdf' -F 'regular_expression="[0-9]"' -F 'draw_black_box=true'
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' -H 'accept: */*' -H 'Content-Type: multipart/form-data' -F 'pdf_file=@/path/to/your/document.pdf;type=application/pdf' -F 'regular_expression="[0-9]"' -F 'draw_black_box=true'
Replace /path/to/your/document.pdf
with the actual path to the document you want to redact and [0-9]
with the regular expression you want to match and redact.
Conclusion
You have successfully hosted IronSecureDoc on your machine and configured it with necessary environment variables. You also learned how to interact with the IronSecureDoc REST API using cURL for both basic and advanced operations. For further configuration and usage details, refer to the full REST API Reference.
Frequently Asked Questions
What is IronSecureDoc?
IronSecureDoc is a Docker container that offers powerful PDF manipulation through a simple REST API, designed specifically for offline document security and compliance.
What are the system requirements for hosting IronSecureDoc on Windows?
To host IronSecureDoc on Windows, you need Windows 10 or later, or a Windows Server version (2016, 2019, 2022) and Docker Desktop for Windows installed.
How can I install Docker Desktop on my Windows machine?
Download Docker Desktop from the official Docker website, run the installer, and follow the installation instructions. Once installed, start Docker Desktop to begin using it.
How do I download the IronSecureDoc Docker image?
Open your command prompt and execute the command: docker pull ironsoftwareofficial/ironsecuredoc:latest
to download the IronSecureDoc image.
Is it possible to run IronSecureDoc without an SSL certificate?
Yes, you can run the IronSecureDoc container without an SSL certificate by executing the command: docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=
, replacing
How can I access the IronSecureDoc interface once the container is running?
You can access the IronSecureDoc interface by opening a web browser and navigating to http://localhost:8080/swagger/index.html
.
How do I configure IronSecureDoc with an SSL certificate?
Generate a certificate using dotnet dev-certs
and then run the IronSecureDoc container with the command that includes the certificate path and password for enhanced security.
Which environment variables are available for configuring the IronSecureDoc container?
You can configure various environment variables such as PDF_MAX_SIZE_MB, REQUEST_TIMEOUT_SECONDS, ALLOWED_ORIGINS, HTTP_PORTS, HTTPS_PORTS, and IronSecureDoc_LicenseKey.
How can I redact sensitive information in a PDF using IronSecureDoc?
To redact text in a PDF, use a cURL command to send a POST request to the IronSecureDoc REST API, specifying the PDF file and the text or pattern to redact.
Where can I find detailed documentation for the IronSecureDoc REST API?
The full REST API Reference for IronSecureDoc is available at /enterprise/securedoc/tutorials/use-rest-api/
.