# Project pack: DocuSeal @ 8f8f69f Facts about **DocuSeal** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > DocuSeal lets you send documents to be signed online, like DocuSign but running on your own server. Upload a PDF or Word file, drag signature, date and text boxes onto it, and email a link to each person who needs to sign. They can sign on a phone or a computer, and everyone gets a signed PDF with a record of who signed and when. Good for tenancy agreements, client contracts, consent forms and club sign-ups. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://raw.githubusercontent.com/docusealco/docuseal/HEAD/README.md - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/docusealco/docuseal - Pinned commit: `8f8f69f0bc6ac2e59746cd6efac54a852289bec3`. Use exactly this version. - Zip the person can download in a browser: https://github.com/docusealco/docuseal/archive/8f8f69f0bc6ac2e59746cd6efac54a852289bec3.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://www.docuseal.com/docs - Live demo: https://demo.docuseal.tech. Official live demo linked from the README. Don't upload real documents. - Licence: **AGPL-3.0-only**. Free to use and change. If you run a changed version that other people use over the internet (for example clients who sign your documents), you must offer them your source code under the same licence. An extra term says you must keep the DocuSeal attribution visible in the app's screens. Some features (company logo, reminders, SMS, bulk sending, conditional fields) are only in the paid Pro edition. ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/docusealco/docuseal bespoke-docuseal cd bespoke-docuseal git checkout --detach 8f8f69f0bc6ac2e59746cd6efac54a852289bec3 # Prepare development requirements and local configuration first. # Setup notes: and in another terminal: bundle exec ./bin/shakapacker-dev-server (both listed in Procfile.dev) bundle install && yarn install && bundle exec rails db:create db:migrate && bundle exec rails s -p 3000 ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh docker run --name docuseal -p 3000:3000 -v docuseal-data:/data docuseal/docuseal # then open http://localhost:3000 and create the first (admin) account. # For a public server with HTTPS, use the repo's docker-compose.yml instead: # sudo HOST=your-domain.com docker compose up ``` - Tools these commands use: Docker, For development, Ruby 4.0.5, Node 20 with Yarn, libvips and leptonica, plus PostgreSQL or SQLite - Develop: `bundle install && yarn install && bundle exec rails db:create db:migrate && bundle exec rails s -p 3000 # and in another terminal: bundle exec ./bin/shakapacker-dev-server (both listed in Procfile.dev)` - Test: `bundle exec rspec # system tests need Chrome; see .github/workflows/ci.yml` - Check/lint: `bundle exec rubocop && bundle exec erb_lint ./app && ./node_modules/eslint/bin/eslint.js 'app/javascript/**/*.js'` - Stack: ruby, javascript, vue (Ruby on Rails 8, Hotwire Turbo, Vue 3, Tailwind CSS, daisyUI, Shakapacker, Sidekiq, HexaPDF). Difficulty for a non-developer with an AI: **moderate**. A standard Rails app. Email wording, the message after signing, policy links, languages, storage and webhooks are settings. Screens are ERB templates in app/views/ with small JavaScript elements; the drag-and-drop form builder (app/javascript/template_builder/) and the signing form (app/javascript/submission_form/) are Vue apps. PDF handling and signing logic is delicate, so code changes need care and testing. Personal data: **yes**. Stored in: SQLite database and uploaded files in /data/docuseal inside the container (the docuseal-data volume), or PostgreSQL/MySQL plus S3, Google Cloud or Azure storage if configured. Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/docuseal/8f8f69f/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/docuseal/8f8f69f/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/docuseal/8f8f69f/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/docuseal/8f8f69f/r3/SKILL.md)