Files
documenso/apps/docs/content/docs/self-hosting/getting-started/quick-start.mdx
T
2026-02-27 22:05:27 +11:00

187 lines
4.7 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 |
| `maildev` | Local email testing server | 2500 |
| `minio` | S3-compatible storage (optional) | 9000 |
## 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