> For the complete documentation index, see [llms.txt](https://docs.esignet.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.esignet.io/home/esignet-2.0.0/local-deployment/local-setup.md).

# Local Setup

Getting eSignet running on your own machine is usually the first real interaction you have with the codebase, before writing any integration, most people just want to watch the OIDC flow work end to end. Docker Compose is how eSignet makes that possible without a lengthy manual setup.

### Why Docker Compose

eSignet's OIDC flow depends on more than the eSignet service itself, it needs a database and a source of identity data to authenticate against. Rather than asking you to install and configure each of these individually, matching versions and wiring configuration by hand, Docker Compose brings up the whole stack with a single command and tears it down just as easily. It also mirrors the way these services actually run in production - as separate containers behind well-defined ports, so what you learn locally carries over directly to how the pieces fit together in a real deployment.

### What's Included

A real government or enterprise identity system usually isn't something you have, or should have access to in a local development environment. So eSignet ships with a [Mock Identity System](/home/esignet-2.0.0/local-deployment/local-setup/mock-id-system.md): a stand-in identity backend that eSignet's [Authn Provider](/home/esignet-2.0.0/develop/integration/authenticator.md) connects to, supporting the same authentication factors a real system would (PIN, OTP, and biometrics). This lets the full OIDC flow run end to end locally without any external dependency.

### Two Ways to Start It

There are two Docker Compose files, and which one you need depends on what you're doing:

| Compose file                                                | Services it brings up                                                                   | Use it when                                                                                                     |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **Full demo** -`docker-compose.yaml`                        | Database, Mock Identity System, the eSignet OIDC/OAuth2 service, and the OIDC login UI. | You want to evaluate or demo eSignet end to end without building anything from source.                          |
| **Dev dependencies only** - `dependent-docker-compose.yaml` | Database and Mock Identity System only                                                  | You're running the eSignet service itself from source and don't want a containerized copy running alongside it. |

### Get Started

{% hint style="info" icon="github" %}
**Docker Compose setup**: GitHub — [docker-compose](https://github.com/mosip/esignet/tree/master/docker-compose)
{% endhint %}

{% hint style="info" icon="github" %}
**Step-by-step setup guide**: [Local setup README](https://github.com/mosip/esignet/blob/master/docker-compose/README.md)&#x20;
{% endhint %}

### In This Section

<table data-view="cards"><thead><tr><th data-hidden data-type="content-ref">Cover image</th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><a href="https://1450374920-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGLWCTe02ubJM6M7TcHlg%2Fuploads%2F11PtybT4HgAisbwYZP9C%2FMock%20Identity%20System.png?alt=media&amp;token=0c450c3b-5955-4cd3-a7da-9824ce6a44d8">Mock Identity System.png</a></td><td><a href="/home/esignet-2.0.0/local-deployment/local-setup/mock-id-system.md">Mock Identity System</a></td></tr><tr><td></td><td><a href="https://1450374920-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGLWCTe02ubJM6M7TcHlg%2Fuploads%2FkdoWH3CnRrJsPQC1B4jm%2FMock%20Relying%20Party.png?alt=media&amp;token=a0e8e362-0fcb-4c3a-8d98-9f4fde67a11b">Mock Relying Party.png</a></td><td><a href="/home/esignet-2.0.0/local-deployment/local-setup/mock-client-application.md">Mock Relying Party</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.esignet.io/home/esignet-2.0.0/local-deployment/local-setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
