documenso / documenso
- четверг, 1 июня 2023 г. в 00:00:04
Document Signing as it should be - open and shaped by its community.
The DocuSign Open Source Alternative.
Learn more »
Slack
·
Website
·
Issues
·
Roadmap
Note This project is currently under community review and will publish it's first production release soon™.
Signing documents digitally is fast, easy and should be best practice for every document signed worldwide. This is technically quite easy today, but it also introduces a new party to every signature: The signing tool providers. While this is not a problem in itself, it should make us think about how we want these providers of trust to work. Documenso aims to be the world's most trusted document signing tool. This trust is built by empowering you to self-host Documenso and review how it works under the hood. Join us in creating the next generation of open trust infrastructure.
The current project goal is to release a production ready version for self-hosting as soon as possible. If you want to help making that happen you can:
Documenso is built using awesome open source tech including:
/package.json
and /apps/web/package.json
for moreTo run Documenso locally you need
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:
Clone the repository it to your local device.
git clone https://github.com/documenso/documenso
Set up your .env
file using the recommendations in the .env.example
file.
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
That's it! You should now be able to access the app at http://localhost:3000
Incoming mail will be available at http://localhost:9000
Your database will also be available on port 54320
. You can connect to it using your favorite database client.
Follow these steps to setup documenso on you local machine:
git clone https://github.com/documenso/documenso
npm i
in root directory.env.example
to .env
db-migrate:dev
SENDGRID_API_KEY
value in .env fileSMTP_* variables
in your .envnpm run dev
root directory to startOptional: Seed the database using npm run db-seed
to create a test user and document
Optional: Upload and sign apps/web/resources/example.pdf
manually to test your setup
Optional: Create your own signing certificate
/app/web/resources/certificate.p12
git pull
, it may be necessary to regenerate your database client/packages/prisma
:
npx prisma generate
For the digital signature of your documents you need a signing certificate in .p12 format (public and private key). You can buy one (not recommended for dev) or use the steps to create a self-signed one:
Generate a private key using the OpenSSL command. You can run the following command to generate a 2048-bit RSA key:
openssl genrsa -out private.key 2048
Generate a self-signed certificate using the private key. You can run the following command to generate a self-signed certificate:
openssl req -new -x509 -key private.key -out certificate.crt -days 365
This will prompt you to enter some information, such as the Common Name (CN) for the certificate. Make sure you enter the correct information. The -days parameter sets the number of days for which the certificate is valid.
Combine the private key and the self-signed certificate to create the p12 certificate. You can run the following command to do this:
openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt
You will be prompted to enter a password for the p12 file. Choose a strong password and remember it, as you will need it to use the certificate (can be empty for dev certificates)
Place the certificate /apps/web/resources/certificate.p12
We are still working on the publishing of docker images, in the meantime you can follow the steps below to create a production ready docker image.
Want to create a production ready docker image? Follow these steps:
./docker/build.sh
in the root directory.