Sign Service es un sistema para la firma electrónica avanzada de documentos utilizando SoftHSM, Node.js, Express y MongoDB.
- Docker
- Docker Compose
-
Clona el repositorio:
git clone https://github.com/sebavidal10/sign-service.git cd sign-service -
Elimina las dependencias locales:
rm -rf node_modules package-lock.json
-
Construye las imágenes Docker:
docker-compose build
-
Levanta los contenedores:
docker-compose up -d
El archivo docker-compose.yml incluye la configuración de los servicios necesarios:
- SoftHSM
- MongoDB
- Servicio de firma (
sign-service)
Para registrar un usuario, envía una solicitud POST al endpoint /register con el RUN y la información del usuario.
curl -X POST http://localhost:3000/register \
-H "Content-Type: application/json" \
-d '{
"run": "15989091",
"userInfo": {
"name": "John Doe",
"email": "john.doe@example.com"
}
}'{
"certificateId": "60d5f2d72f8fb814c8a65d93"
}Para firmar un documento, convierte el archivo PDF a base64 y envía una solicitud POST al endpoint /sign con el documento en base64 y el RUN del usuario registrado.
base64 -i document.pdf > document_base64.txtdocument_base64=$(cat document_base64.txt)
curl -X POST http://localhost:3000/sign \
-H "Content-Type: application/json" \
-d '{
"documentBase64": "'"$document_base64"'",
"run": "15989091"
}'{
"documentBase64": "JVBERi0xLjQKJcTl8uXrp...",
"signature": "3046022100e4f...a6f"
}sign-service/
├── Dockerfile
├── docker-compose.yml
├── index.js
├── package.json
└── package-lock.json
Dockerfile: Define la configuración de la imagen Docker para el servicio de firma.docker-compose.yml: Configura y orquesta los servicios necesarios para el sistema.index.js: Contiene la lógica del servidor y los endpoints de la API.package.jsonypackage-lock.json: Definen las dependencias del proyecto.