Hosting IronSecureDoc on Linux Using C#
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
Prerequisites
desktop-linux, on startup.This means images and containers deployed on the Linux Docker Engine (before installation) are not available in Docker Desktop for Linux.
Platforms
- Ubuntu (x86_64 / amd64) - link to download Docker Desktop
- Debian (x86_64 / amd64) - link to download Docker Desktop
- Fedora (x86_64 / amd64) - link to download Docker Desktop
- Red Hat Enterprise Linux (x86_64 / amd64) - link to download Docker Desktop
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 Linux.
- 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
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
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 $HOME/.aspnet/https/ironsecuredoc.pfx -p <CREDENTIAL_PLACEHOLDER> dotnet dev-certs https --trustSHELLReplace
<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 $HOME/.aspnet/https:/https:ro \ -e CERTIFICATE_PATH=$HOME/.aspnet/https/ironsecuredoc.pfx \ -e CERTIFICATE_PASSWORD=<CERTIFICATE_PASSWORD> \ ironsoftwareofficial/ironsecuredoc:latestSHELLReplace
<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>SHELL -
Start the container:
docker start <container_id>SHELL -
Remove the container:
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 * or "all" to allow requests from any origin.HTTP_PORTS: Defines the HTTP ports the container exposes. This should match the port mapping using the-pflag (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 the-pflag (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'
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'
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 used for?
IronSecureDoc is a Docker container designed for powerful PDF manipulation through a simple REST API, offering secure offline document handling and compliance without the hassle of online SaaS services.
How can I pull the latest IronSecureDoc Docker image?
To pull the latest IronSecureDoc Docker image, use the command: `docker pull ironsoftwareofficial/ironsecuredoc:latest`.
What are the system prerequisites for hosting IronSecureDoc on Linux?
The system prerequisites include installing Docker Desktop on a Linux distribution like Ubuntu, Debian, Fedora, or Red Hat Enterprise Linux.
Why do I need a license key for IronSecureDoc?
A license key for IronSecureDoc is required to unlock enterprise features and remove watermarks from the documents processed.
How do I run IronSecureDoc without a certificate?
Run the IronSecureDoc Docker container without a certificate using the command: `docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=
How can I access the IronSecureDoc interface after running the container?
Open a web browser and navigate to `http://localhost:8080/swagger/index.html` to access the IronSecureDoc interface.
What is the process for running IronSecureDoc with a certificate?
First, generate a certificate using the `dotnet dev-certs` command, then run the Docker container with the appropriate environment variables, including `CERTIFICATE_PATH` and `CERTIFICATE_PASSWORD` for security.
How do I redact text in a document using IronSecureDoc?
Use the REST API by performing a POST request with cURL: `curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text'` including necessary form data for the PDF file and words to redact.
What environment variables are important for configuring IronSecureDoc?
Important environment variables include `PDF_MAX_SIZE_MB`, `REQUEST_TIMEOUT_SECONDS`, `ALLOWED_ORIGINS`, `HTTP_PORTS`, `HTTPS_PORTS`, and `IronSecureDoc_LicenseKey`.
How can I manage the running IronSecureDoc container?
Manage your container using Docker commands such as `docker stop

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.