Documarkr is an open-source document signing platform similar to DocuSign, but with a streamlined feature set focused on the core electronic signature workflow. Built with Ruby on Rails 8 and Hotwire, it provides a modern, responsive experience for document signing needs.
- Document Management: Upload, organize, and track PDF documents
- Field Placement: Visually place signature fields, text boxes, date fields, and initials on documents
- Signing Workflow: Support for sequential or parallel signing by multiple users
- Signature Options: Draw, type, or upload signature images
- Security & Audit: Comprehensive audit trails with metadata tracking (IP, email, timestamp, user agent)
- Templates: Save frequently used documents as reusable templates
- Mobile Friendly: Responsive design works on desktop and mobile devices
- Ruby on Rails 8
- PostgreSQL database
- Active Storage for file management
- Sidekiq for background processing
- HexaPDF for PDF manipulation
- Hotwire (Turbo + Stimulus)
- PDF.js for PDF rendering
- Fabric.js for signature drawing capabilities
- Ruby 3.3.0+
- Rails 8.0.0+
- PostgreSQL 14+
- Node.js 18+ and Yarn
- Redis (for Sidekiq)
- Clone the repository
git clone https://github.com/yourusername/documarkr.git
cd documarkr
- Install dependencies
bundle install
yarn install
- Setup database
rails db:create
rails db:migrate
rails db:seed # Creates sample users and templates
- Start the servers
# In separate terminals:
rails server
redis-server
bundle exec sidekiq
- Visit
http://localhost:3000
in your browser
Configuration is managed through environment variables. Copy the example file and adjust as needed:
cp .env.example .env
Key configurations:
DATABASE_URL
: PostgreSQL connection stringREDIS_URL
: Redis connection for SidekiqSMTP_*
: Email delivery settingsAWS_*
: S3 storage settings (optional)
- Admin: Manage users and system settings
- Document Creator: Upload documents, create templates, send for signature
- Signer: View and sign documents sent to them
# Run all tests
rails test
# Run system tests
rails test:system
# Run linters
rubocop
eslint app/javascript
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- This project was inspired by the need for a simpler, open-source document signing solution
- Thanks to all the contributors who have helped build Documarkr