mirror of
https://github.com/documenso/documenso.git
synced 2026-07-10 21:15:15 +10:00
94adea149d
Refresh README/docs for the current stack, add a security policy, note the external-PR pause, and remove dead config and workflows.
191 lines
5.4 KiB
Plaintext
191 lines
5.4 KiB
Plaintext
---
|
|
title: Quick Start
|
|
description: Get Documenso running locally in minutes with Docker Compose.
|
|
---
|
|
|
|
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
|
|
import { Callout } from 'fumadocs-ui/components/callout';
|
|
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
|
|
|
## Limitations
|
|
|
|
This quick start setup is for local development and testing only:
|
|
|
|
- No HTTPS (not suitable for production)
|
|
- No email delivery (emails are logged to console)
|
|
- Uses a local PostgreSQL database
|
|
- No signing certificate configured (documents will be signed with a generated certificate)
|
|
- Single-node setup (no high availability)
|
|
|
|
For production deployments, see [Docker Compose Deployment](/docs/self-hosting/deployment/docker-compose).
|
|
|
|
## Prerequisites
|
|
|
|
- [Docker](https://docs.docker.com/get-docker/) installed and running
|
|
- [Docker Compose](https://docs.docker.com/compose/install/) v2.0 or later
|
|
- At least 2GB of available RAM
|
|
|
|
Verify your installation:
|
|
|
|
```bash
|
|
docker --version
|
|
docker compose version
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
{/* prettier-ignore */}
|
|
<Steps>
|
|
<Step>
|
|
### Clone the repository
|
|
|
|
```bash
|
|
git clone https://github.com/documenso/documenso.git
|
|
cd documenso
|
|
```
|
|
|
|
</Step>
|
|
|
|
<Step>
|
|
### Create the environment file
|
|
|
|
Copy the example environment file:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
The default values work for local development. No changes are required.
|
|
|
|
</Step>
|
|
|
|
<Step>
|
|
### Start Documenso
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml up -d
|
|
```
|
|
|
|
This pulls the required images and starts the containers. The first run takes a few minutes.
|
|
|
|
</Step>
|
|
|
|
<Step>
|
|
### Access the application
|
|
|
|
Open [http://localhost:3000](http://localhost:3000) in your browser.
|
|
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Create Your First Account
|
|
|
|
{/* prettier-ignore */}
|
|
<Steps>
|
|
<Step>
|
|
|
|
### Sign up
|
|
|
|
Click **Sign Up** on the login page and enter your email address and password.
|
|
|
|
</Step>
|
|
<Step>
|
|
|
|
### Verify your email
|
|
|
|
In development mode, emails are logged to the console instead of being sent. Check the Docker logs for the verification link:
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml logs -f
|
|
```
|
|
|
|
Copy the verification link from the logs and open it in your browser.
|
|
|
|
</Step>
|
|
<Step>
|
|
|
|
### Log in
|
|
|
|
Log in with your credentials.
|
|
|
|
</Step>
|
|
</Steps>
|
|
|
|
### Granting Admin Access
|
|
|
|
All accounts created through signup are regular user accounts. To grant admin access, update the user's role directly in the database:
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml exec database \
|
|
psql -U documenso -d documenso -c "UPDATE \"User\" SET roles = '{ADMIN}' WHERE email = 'your@email.com';"
|
|
```
|
|
|
|
## What's Included
|
|
|
|
The quick start setup runs the following containers:
|
|
|
|
| Container | Purpose | Port |
|
|
| ----------- | ------------------------------------ | ----------------------------- |
|
|
| `documenso` | Main application | 3000 |
|
|
| `database` | PostgreSQL database | 54320 |
|
|
| `inbucket` | Local email testing server | 9000 (web UI), 2500 (SMTP) |
|
|
| `redis` | Cache and background job queue | 63790 |
|
|
| `minio` | S3-compatible storage | 9002 (API), 9001 (console) |
|
|
| `gotenberg` | Document conversion (optional) | 3005 |
|
|
|
|
The local email server is [Inbucket](https://www.inbucket.org/). Open its web UI at [http://localhost:9000](http://localhost:9000) to view emails Documenso sends during development. For your own deployment you can use any SMTP-compatible mailserver, such as Inbucket, [Mailpit](https://github.com/axllent/mailpit), or [Mailhog](https://github.com/mailhog/MailHog).
|
|
|
|
## Useful Commands
|
|
|
|
**View logs:**
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml logs -f
|
|
```
|
|
|
|
**Stop containers:**
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml down
|
|
```
|
|
|
|
**Stop and remove all data:**
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml down -v
|
|
```
|
|
|
|
**Rebuild after changes:**
|
|
|
|
```bash
|
|
docker compose -f docker/development/compose.yml up -d --build
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
<Accordions type="multiple">
|
|
<Accordion title="Port 3000 already in use">
|
|
Another application is using port 3000. Either stop that application or change the port in your
|
|
`.env` file: `PORT=3001`. Then restart the containers.
|
|
</Accordion>
|
|
<Accordion title="Container fails to start">
|
|
Check the logs: `docker compose -f docker/development/compose.yml logs documenso`. Common
|
|
issues: insufficient memory (ensure Docker has at least 2GB RAM allocated), database connection
|
|
(wait for the database container to be healthy before the app starts).
|
|
</Accordion>
|
|
<Accordion title="Cannot access localhost:3000">
|
|
Verify containers are running: `docker compose -f docker/development/compose.yml ps`. Check if
|
|
the app container is healthy. On Linux, ensure Docker is not running in rootless mode with
|
|
network restrictions.
|
|
</Accordion>
|
|
</Accordions>
|
|
|
|
---
|
|
|
|
## See Also
|
|
|
|
- [Docker Compose Deployment](/docs/self-hosting/deployment/docker-compose) - Production setup with PostgreSQL and email
|
|
- [Environment Variables](/docs/self-hosting/configuration/environment) - Configure all available options
|
|
- [Signing Certificate](/docs/self-hosting/configuration/signing-certificate) - Set up document signing
|
|
- [Email Configuration](/docs/self-hosting/configuration/email) - Configure SMTP for production
|