Reading the repo
Reading the repo
How to install on Linux
The Open Source DocuSign Alternative.
Saved setup from 11 h ago
Will it work on Linux?
Also: Docs ↗ · In the browser ↗
Heads-upBuilding it yourself? It also needs Redis and 102 settings in .env (20 secret).
CONTRIBUTING.mdWe are no longer accepting external pull requests.
Aside from a small group of trusted contributors we reach out to directly, we no longer merge external PRs. New pull requests will usually be closed with a request to open an issue instead. This is a security decision, not a judgement on your work. Read Why We're Pausing External Pull Requests for the full reasoning.
Documenso stays open source. You can still read, audit, run, and fork the code. The best way to contribute is through detailed issues.
The most useful contribution is a detailed issue. Treat it like a spec. The more detail, the better:
Before opening an issue, search existing issues and discussions for related items. If a proposal is detailed and fits where Documenso is heading, we'll pick it up and build against it.
For security vulnerabilities, do not open a public issue. Follow our Security Policy instead.
The sections below are for trusted contributors working with us directly, and for anyone running Documenso locally or maintaining a fork.
Please write all issues, pull requests, and related comments in English so maintainers and the wider contributor community can follow the discussion.
Before taking an issue, ensure that:
You can then:
Always feel free to ask questions or seek clarification on the issue.
The development branch is <code>main</code>. All pull requests should be made against this branch. If you need help getting started, join us on Discord.
Create a new branch (include the issue id and something readable):
git checkout -b feat/doc-999-somefeature-that-rocks
Note Please ensure you can make a full production build before pushing code or creating PRs.
You can build the project with:
npm run build
We use OpenCode for AI-assisted development. OpenCode provides custom commands and skills to help maintain consistency and streamline common workflows.
OpenCode works with most major AI providers (Anthropic, OpenAI, Google, etc.) or you can use Zen for optimized coding models. Configure your preferred provider in the OpenCode settings.
Important: All AI-generated code must be thoroughly reviewed by the contributor before submitting a PR. You are responsible for understanding and validating every line of code you submit. If we detect that contributors are simply throwing AI-generated code over the wall without proper review, they will be blocked from the repository.
curl -fsSL https://opencode.ai/install | bash
opencode in the project rootUse these commands in OpenCode by typing the command name:
| Command | Description |
| ------------------------------ | -------------------------------------------------------- |
| /implement <spec-path> | Implement a spec from .agents/plans/ autonomously |
| /continue <spec-path> | Continue implementing a spec from a previous session |
| /interview <file-path> | Deep-dive interview to flesh out a spec or design |
| /document <module-path> | Generate MDX documentation for a module or feature |
| /commit | Create a conventional commit for staged changes |
| /create-plan <slug> | Create a new plan file in .agents/plans/ |
| /create-scratch <slug> | Create a scratch file for notes in .agents/scratches/ |
| /create-justification <slug> | Create a justification file in .agents/justifications/ |
/create-plan my-feature to draft a spec for a new feature/interview .agents/plans/<file>.md to refine requirements/implement .agents/plans/<file>.md to build the feature/continue .agents/plans/<file>.md to pick up where you left off/commit to create a conventional commitThe .agents/ directory stores AI-generated artifacts:
.agents/plans/ - Feature specs and implementation plans.agents/scratches/ - Temporary notes and explorations.agents/justifications/ - Decision rationale and technical justificationsThese files use a unique ID format ({word}-{word}-{word}-{slug}.md) to prevent conflicts.
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
git clone https://github.com/documenso/documenso.git cd documenso
Node.js >=24.0.0
# needs nvm: https://github.com/nvm-sh/nvm nvm install --lts
Fill in secrets: NEXT_PRIVATE_DOCUMENSO_LICENSE_KEY, NEXTAUTH_SECRET, NEXT_PRIVATE_ENCRYPTION_KEY, NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY, NEXT_PRIVATE_OIDC_WELL_KNOWN, NEXT_PRIVATE_OIDC_CLIENT_ID, NEXT_PRIVATE_OIDC_CLIENT_SECRET, NEXT_PRIVATE_OIDC_PROVIDER_LABEL
cp .env.example .env
Needs: Redis (no compose file — install locally or run via Docker)
npm ci
npx prisma migrate dev
npm run dev
Note: This is a quickstart for developers. It assumes that you have both docker and docker-compose installed on your machine.
Want to get up and running quickly? Follow these steps:
After forking the repository, clone it to your local device by using the following command:
git clone https://github.com/<your-username>/documenso
Set up your .env file using the recommendations in the .env.example file. Alternatively, just run cp .env.example .env to get started with our handpicked defaults.
Run npm run dx in the root directory
Run npm run dev in the root directory
Want it even faster? Just use
npm run d
App - http://localhost:3000
Incoming Mail Access - http://localhost:9000
Database Connection Details
No reports for Linux yet.
Opens a chat with this manual already filled in, for Linux. It uses your own account; gitmanual sends nothing.