diff --git a/README.md b/README.md index d7f3da3f3..e0fc69d2f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@ -Documenso Logo +Documenso Logo

- -

The Open Source DocuSign Alternative.
@@ -18,14 +14,19 @@ Issues · Roadmap + · + Upcoming Launches

- Join Documenso on Discord + Join Documenso on Discord Github Stars License Commits-per-month + + open in devcontainer +

> 🦺 Documenso 1.0 is deployed to our Staging Environment. @@ -51,12 +52,20 @@ ## About this project -Signing documents digitally is fast and easy and should be the 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. +Signing documents digitally should be fast and easy and should be the 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. ## Recognition -Documenso - The open source DocuSign alternative | Product Hunt -Documenso - The Open Source DocuSign Alternative. | Product Hunt +

+ Documenso - The open source DocuSign alternative | Product Hunt + Documenso - The Open Source DocuSign Alternative. | Product Hunt +

## Community and Next Steps 🎯 @@ -101,7 +110,7 @@ Contact us if you are interested in our Enterprise plan for large organizations ### Requirements -To run Documenso locally you need +To run Documenso locally you will need - Node.js - Postgres SQL Database @@ -119,12 +128,16 @@ Want to get up and running quickly? Follow these steps: git clone https://github.com/documenso/documenso ``` -2. Set up your `.env` file using the recommendations in the `.env.example` file. +2. 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. + + 3. Run `npm run dx` in the root directory - This will spin up a postgres database and inbucket mailserver in a docker container. 4. Run `npm run dev` in the root directory + + 5. Want it even faster? Just use ```sh @@ -154,28 +167,27 @@ git clone https://github.com/documenso/documenso 2. Run `npm i` in root directory -3. Generate your `.env` from the `.env.example` +3. Create your `.env` from the `.env.example`. You can use `cp .env.example .env` to get started with our handpicked defaults. -4. Set DATABASE_URL value in .env file +4. Set the following environement variables. + - NEXTAUTH_URL + - NEXTAUTH_SECRET + - NEXT_PUBLIC_WEBAPP_URL + - NEXT_PUBLIC_MARKETING_URL + - NEXT_PRIVATE_DATABASE_URL + - NEXT_PRIVATE_DIRECT_DATABASE_URL + - NEXT_PRIVATE_SMTP_FROM_NAME + - NEXT_PRIVATE_SMTP_FROM_ADDRESS - - You can use the provided test database url (may be wiped at any point) - - Or setup a local postgres sql instance (recommended) +5. Create the database schema by running `npm run prisma:migrate-dev -w @documenso/prisma` -5. Create the database scheme by running `db:migrate-dev` +6. Run `npm run dev` root directory to start -6. Setup your mail provider - - - Set `SENDGRID_API_KEY` value in .env file - - You need a SendGrid account, which you can create [here](https://signup.sendgrid.com/) - - Documenso uses [Nodemailer](https://nodemailer.com/about/) so you can easily use your own SMTP server by setting the `SMTP` variables in your .env - -7. Run `npm run dev` root directory to start - -8. Register a new user at http://localhost:3000/signup +7. Register a new user at http://localhost:3000/signup --- -- Optional: Seed the database using `npm run db:seed` to create a test user and document +- Optional: Seed the database using `npm run prisma:seed -w @documenso/prisma` to create a test user and document - Optional: Create your own signing certificate - To generate your own using these steps and a Linux Terminal or Windows Subsystem for Linux (WSL) see **[Create your own signing certificate](./SIGNING.md)**. @@ -185,25 +197,20 @@ git clone https://github.com/documenso/documenso [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/documenso/documenso) +### Run in DevContainer + +We support DevContainers for VSCode. [Click here to get started.](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/documenso/documenso) + ## Docker -> 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: - -1. cd into `docker` directory -2. Make `build.sh` executable by running `chmod +x build.sh` -3. Run `./build.sh` to start building the docker image. -4. Publish the image to your docker registry of choice (or) if you prefer running the image from local, run the below command - -``` -docker run -d --restart=unless-stopped -p 3000:3000 -v documenso:/app/data --name documenso documenso:latest -``` +🚧 Docker containers and images are current in progress. We are actively working on bringing a simple docker build and publish pipeline for Documenso. ## Self Hosting We support a variety of deployment methods, and are actively working on adding more. Stay tuned for updates! +> Please note the below deployment methods are for v0.9, we will update these to v1.0 once it has been released. + ### Railway [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/DjrRRX) diff --git a/docker/compose-services.yml b/docker/compose-services.yml new file mode 100644 index 000000000..67c193dbc --- /dev/null +++ b/docker/compose-services.yml @@ -0,0 +1,19 @@ +name: documenso-services +services: + database: + image: postgres:15 + container_name: database + environment: + - POSTGRES_USER=documenso + - POSTGRES_PASSWORD=password + - POSTGRES_DB=documenso + ports: + - 54320:5432 + + inbucket: + image: inbucket/inbucket + container_name: mailserver + ports: + - 9000:9000 + - 2500:2500 + - 1100:1100 diff --git a/package.json b/package.json index 6de670d99..56f7964a9 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,11 @@ "format": "prettier --write \"**/*.{js,jsx,cjs,mjs,ts,tsx,cts,mts,mdx}\"", "prepare": "husky install", "commitlint": "commitlint --edit", - "clean": "turbo run clean && rimraf node_modules" + "clean": "turbo run clean && rimraf node_modules", + "d": "npm run dx && npm run dev", + "dx": "npm i && npm run dx:up && npm run prisma:migrate-dev -w @documesno/prisma", + "dx:up": "docker compose up -f docker/compose-services.yml -d", + "dx:down": "docker compose down -f docker/compose-services.yml" }, "engines": { "npm": ">=8.6.0",