Skip to content

KatalystDigital/shieldsign-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

62 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

ShieldSign Logo

Enterprise E-Signatures Built for Security

License: AGPL-3.0

ShieldSign Core is an AGPL-3.0 licensed fork of Documenso (v2.1.0), providing a self-hosted, open-source document signing platform.


🎯 Overview

ShieldSign Core is an AGPL-3.0 licensed fork of Documenso, providing:

  • Self-Hosted - Full control over your signing infrastructure
  • Custom Branding - Configurable color scheme and branding
  • Enterprise Features - Team management, audit logs, webhooks
  • Cloud Ready - Optimized for cloud infrastructure deployment
  • API Access - Full REST API and webhook integrations

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 14+
  • Docker (optional, for development)

Development Setup

# Clone the repository
git clone https://github.com/KatalystDigital/shieldsign-core.git
cd shieldsign-core

# Copy environment template
cp .env.example .env.local

# Install dependencies
npm install

# Start development database (requires Docker)
npm run dx:up

# Run database migrations
npm run prisma:migrate-dev

# Seed the database
npm run prisma:seed

# Start development server
npm run dev

Visit http://localhost:3000 to see the application.

Environment Variables

Key environment variables to configure:

# Database
NEXT_PRIVATE_DATABASE_URL=postgresql://user:password@localhost:5432/shieldsign

# App URLs
NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000

# Email (SMTP)
NEXT_PRIVATE_SMTP_HOST=smtp.example.com
NEXT_PRIVATE_SMTP_PORT=587
NEXT_PRIVATE_SMTP_USERNAME=your-username
NEXT_PRIVATE_SMTP_PASSWORD=your-password
NEXT_PRIVATE_SMTP_FROM_ADDRESS=noreply@your-domain.com
NEXT_PRIVATE_SMTP_FROM_NAME=ShieldSign

See .env.example for all available options.

πŸ—οΈ Project Structure

shieldsign-core/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ remix/              # Main web application (React Router)
β”‚   └── documentation/      # Documentation site
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ prisma/            # Database schema & migrations
β”‚   β”œβ”€β”€ lib/               # Shared library code
β”‚   β”œβ”€β”€ email/             # Email templates
β”‚   β”œβ”€β”€ trpc/              # tRPC API router
β”‚   β”œβ”€β”€ ui/                # UI components
β”‚   └── signing/           # PDF signing logic
β”œβ”€β”€ branding/              # ShieldSign branding assets
β”‚   β”œβ”€β”€ colors.css         # Color definitions
β”‚   β”œβ”€β”€ tailwind-colors.js # Tailwind configuration
β”‚   └── logo/              # Logo assets
β”œβ”€β”€ docker/                # Docker configuration
β”‚   β”œβ”€β”€ Dockerfile
β”‚   └── docker-compose.yml
β”œβ”€β”€ docs/                  # Documentation
└── templates/             # Document templates

🐳 Docker Deployment

Build the Image

docker build -t shieldsign-sign:latest -f docker/Dockerfile .

Run with Docker Compose

cd docker
docker-compose up -d

Azure Container Apps

See Azure Deployment Guide for deploying to Azure Container Apps.

πŸ”§ Development Commands

# Start development server
npm run dev

# Build for production
npm run build

# Run linting
npm run lint

# Format code
npm run format

# Generate Prisma client
npm run prisma:generate

# Create database migration
npm run prisma:migrate-dev

# Run database migrations (production)
npm run prisma:migrate-deploy

# Seed database
npm run prisma:seed

πŸ”— Integration Options

ShieldSign can integrate with your applications via:

  1. Webhook Events - Document signing events trigger webhooks
  2. REST API - Create and manage documents programmatically
  3. OAuth/OIDC - Support for external authentication providers

Webhook Events

  • DOCUMENT_CREATED - New document uploaded
  • DOCUMENT_SENT - Document sent for signing
  • DOCUMENT_SIGNED - Recipient signed the document
  • DOCUMENT_COMPLETED - All signatures collected
  • DOCUMENT_CANCELLED - Document cancelled
  • DOCUMENT_REJECTED - Document rejected by recipient

πŸ“š API Documentation

API documentation is available at /api/v1/openapi when running the application.

Key endpoints:

  • POST /api/v1/documents - Create a document
  • GET /api/v1/documents/{id} - Get document details
  • POST /api/v1/documents/{id}/send - Send for signing
  • GET /api/v1/templates - List templates

🎨 Customization

Branding

Update files in the branding/ directory:

  1. Colors: Edit branding/colors.css
  2. Tailwind: Edit branding/tailwind-colors.js
  3. Logos: Add files to branding/logo/
  4. Constants: Edit branding/app-constants.ts

Legal Pages

Update legal documents:

  • branding/legal/terms.md - Terms of Service
  • branding/legal/privacy.md - Privacy Policy

🀝 Attribution

ShieldSign is based on Documenso v2.1.0, an open-source document signing platform licensed under AGPL-3.0.

We gratefully acknowledge the Documenso team for their excellent work in creating the foundation for this project. See NOTICE.md for full attribution details.

πŸ“„ License

This project is licensed under the AGPL-3.0 License.


ShieldSign Core - Open Source E-Signature Platform

About

Open-source e-signature platform - Self-hosted document signing with enterprise features. AGPL-3.0 fork of Documenso.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages