--- 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 */} ### Clone the repository ```bash git clone https://github.com/documenso/documenso.git cd documenso ``` ### 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. ### 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. ### Access the application Open [http://localhost:3000](http://localhost:3000) in your browser. ## Create Your First Account {/* prettier-ignore */} ### Sign up Click **Sign Up** on the login page and enter your email address and password. ### 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. ### Log in Log in with your credentials. ### 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 Another application is using port 3000. Either stop that application or change the port in your `.env` file: `PORT=3001`. Then restart the containers. 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). 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. --- ## 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