mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
7.0 KiB
160 lines
7.0 KiB
# DocuSeal like-a-Pro (Community Edition)
|
|
|
|
> Fork of [DocuSeal](https://github.com/docusealco/docuseal) with select Pro features "unlocked" (read: vibe-coded) as open source.
|
|
|
|
This fork adds features that are not part of the opensource version of DocuSeal, making them available for self-hosted deployments under the same AGPL-3.0 license.
|
|
|
|
Disclaimer:
|
|
|
|
I never had any access to the Pro Version and I have no idea how DocuSeal LLC implemented these features. I don't even think that "white-room copy" would be the right description here.
|
|
I did not review, copy, or use any copyright-protected source code from DocuSeal LLC. The changes in this repo are "designed" based on the official API documentation and feature spotlights on the website or what I thought these features should look like.
|
|
The plan of this repo is not to challenge Docuseal's position; I just needed some features that I thought were simple enough to vibe code and play around with. I would not recommend using this fork for a production environment, and I can't guarantee maintenance at all.
|
|
If you need a professional, reliable solution, stick with the upstream project or buy a subscription with Docuseal!
|
|
Support companies that are providing open-source solutions!
|
|
|
|
|
|
## vibe-coded "Pro" Features
|
|
|
|
| Feature | Status | Description |
|
|
|---------|--------|-------------|
|
|
| Company logo / white-label | Done | Upload your logo in Settings > Personalization. Displayed in signing forms and emails. |
|
|
| Automated reminders | Done | Scheduled follow-up emails with customizable templates, reminder queue visibility, and skip controls. |
|
|
| Template creation via API | Done | `POST /api/templates/pdf` and `PUT /api/templates/:id/documents` — create and manage templates programmatically with field coordinates or embedded text tags. |
|
|
| Professional email design | Done | Table-based responsive email layout with company branding, styled CTA buttons, and proper footer. |
|
|
| Teams & user roles | Done | Multi-team support with admin/editor roles. Editors see only their team's documents. Admins can move folders between teams. |
|
|
|
|
See [`docs/API.md`](docs/API.md) for full API reference on the new endpoints.
|
|
|
|
## Teams & Roles
|
|
|
|
This fork implements team-based access control with two roles:
|
|
|
|
| Role | Access |
|
|
|------|--------|
|
|
| **Admin** | Full access to all teams, users, settings, and resources in the account |
|
|
| **Editor** | Full access to templates, submissions, and documents within their team only. Can manage personalization, API keys, and webhooks. Cannot manage users, teams, or account settings. |
|
|
|
|
**Key features:**
|
|
- Create multiple teams per account (Settings > Teams)
|
|
- Assign users to teams with role selection
|
|
- Editors are scoped to their team — they only see templates, submissions, and folders belonging to their team
|
|
- Admins can move entire folders (with all templates and submissions) to another team via the folder edit modal
|
|
- API tokens respect the user's role and team membership
|
|
- Migrations handle both greenfield installs and existing deployments (auto-creates a "Default" team and backfills)
|
|
|
|
## Automated Reminders
|
|
|
|
Reminder emails are sent to pending signers on a configurable schedule.
|
|
|
|
**Configuration:**
|
|
- Set reminder interval (e.g., every 2 days) in Settings > Notifications
|
|
- Customize reminder email subject and body at account level (Settings > Personalization) or per-template
|
|
- Supports the same template variables as invitation emails (submitter name, template name, link, etc.)
|
|
|
|
**Visibility & Controls:**
|
|
- Submission page shows the next scheduled reminder time per submitter (with timezone tooltip)
|
|
- Settings > Notifications includes a pending reminders queue table showing all upcoming reminders
|
|
- Skip button lets you advance past a pending reminder without sending it (fires a `skip_reminder_email` event)
|
|
|
|
**Reliability:**
|
|
- Deduplication guard prevents the same reminder from being sent twice within 1 minute
|
|
- Job scheduling handles container restarts gracefully (clears stale scheduled jobs before re-registering)
|
|
|
|
## What's NOT included
|
|
|
|
These Pro features remain unavailable in this fork (they require significant UI/infrastructure work):
|
|
|
|
- SMS invitation and verification
|
|
- Conditional fields and formulas
|
|
- Bulk send with CSV/XLSX import
|
|
- SSO / SAML
|
|
- Template creation with HTML or DOCX API
|
|
- Embedded form builder components
|
|
|
|
## Deploy
|
|
|
|
Pre-built images are published to GitHub Container Registry on every release tag.
|
|
|
|
```
|
|
ghcr.io/s256/docuseal-with-some-pro-features:latest
|
|
ghcr.io/s256/docuseal-with-some-pro-features:2.5.3-fork.2
|
|
```
|
|
|
|
Images are signed with [cosign](https://github.com/sigstore/cosign) and include an SBOM and build provenance attestation.
|
|
|
|
#### Docker Compose (recommended)
|
|
|
|
```sh
|
|
curl -O https://raw.githubusercontent.com/s256/docuseal-with-some-pro-features/master/docker-compose.yml
|
|
docker compose up
|
|
```
|
|
|
|
This starts the app with PostgreSQL. Available at `http://localhost:3000`.
|
|
|
|
Data is persisted in `./docuseal` (uploads, active storage) and `./pg_data` (database).
|
|
|
|
#### With SSL (reverse proxy)
|
|
|
|
Uncomment the Caddy service in `docker-compose.yml` and set your domain:
|
|
|
|
```sh
|
|
HOST=your-domain.com docker compose up
|
|
```
|
|
|
|
Caddy auto-provisions TLS certificates via Let's Encrypt.
|
|
|
|
#### Docker (standalone)
|
|
|
|
```sh
|
|
docker run --name docuseal \
|
|
-p 3000:3000 \
|
|
-v ./docuseal:/data/docuseal \
|
|
-e DATABASE_URL=postgresql://user:pass@host:5432/docuseal \
|
|
ghcr.io/s256/docuseal-with-some-pro-features:latest
|
|
```
|
|
|
|
Without `DATABASE_URL`, the app falls back to SQLite (stored in `/data/docuseal`).
|
|
|
|
#### Build from source
|
|
|
|
```sh
|
|
git clone https://github.com/s256/docuseal-with-some-pro-features.git
|
|
cd docuseal-with-some-pro-features
|
|
docker build -t docuseal .
|
|
docker compose up # edit docker-compose.yml to use `build: .` instead of `image:`
|
|
```
|
|
|
|
#### Environment variables
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `DATABASE_URL` | PostgreSQL connection string. Omit for SQLite. |
|
|
| `SECRET_KEY_BASE` | Rails secret key (auto-generated if not set). |
|
|
| `APP_URL` | Public-facing URL for links in emails. |
|
|
| `FORCE_SSL` | Set to your domain to enforce HTTPS redirects. |
|
|
| `SMTP_ADDRESS`, `SMTP_PORT`, `SMTP_USERNAME`, `SMTP_PASSWORD` | SMTP for outgoing emails (invitations, reminders). |
|
|
|
|
See the [environment reference](https://www.docuseal.com/docs/hosting#docker) in the upstream docs for the full list.
|
|
|
|
## Upstream Features
|
|
|
|
All features from the base DocuSeal OSS are included:
|
|
|
|
- PDF form fields builder (WYSIWYG)
|
|
- 12 field types (Signature, Date, File, Checkbox, etc.)
|
|
- Multiple submitters per document
|
|
- Automated emails via SMTP
|
|
- File storage on disk or S3/GCS/Azure
|
|
- Automatic PDF eSignature and verification
|
|
- Users management
|
|
- Mobile-optimized
|
|
- UI in 7 languages, signing in 14 languages
|
|
- API and Webhooks
|
|
- Easy deployment
|
|
|
|
## License
|
|
|
|
Distributed under the AGPLv3 License with Section 7(b) Additional Terms. See [LICENSE](LICENSE) and [LICENSE_ADDITIONAL_TERMS](LICENSE_ADDITIONAL_TERMS) for more information.
|
|
|
|
Original work © 2023-2026 DocuSeal LLC. Modifications in this fork are released under the same license.
|