> For the complete documentation index, see [llms.txt](https://docs.digit.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digit.org/complaints-management/deploy/setup/single-machine-setup/tilt.md).

# Tilt

### Option B: Tilt

Tilt wraps Docker Compose with a web dashboard showing live logs, service health, and utility buttons.

{% stepper %}
{% step %}

### Install Tilt

Install upstream Tilt from <https://docs.tilt.dev/install.html>.

```
# Linux amd64
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash

# Verify
tilt version
```

{% hint style="info" %}
**Do not use the `v0.36.3-healthcheck` fork.** We previously recommended a [patched Tilt](https://github.com/ChakshuGautam/tilt/releases/tag/v0.36.3-healthcheck) that waits for Docker Compose health checks, because upstream Tilt marks containers "ready" before they are healthy (upstream PR: [tilt-dev/tilt#6682](https://github.com/tilt-dev/tilt/pull/6682)).

That release is currently **broken and unusable**: the published binary ships without its web assets, so `tilt up` exits immediately with `Could not find Tilt web static files`. Its version string is `v0.36.3-dev`, and the `-dev` suffix makes Tilt serve the UI from the build machine's source tree (`/root/code/tilt-fork/web`) instead of embedded assets. `--web-mode=prod` fails too, so there is no workaround short of rebuilding and re-releasing the fork.

Consequence of using upstream: Tilt may show a service as ready before its health check passes. The stack still comes up — `docker-compose.yml` enforces ordering via `depends_on: service_healthy` — but don't trust the dashboard's "ready" as "healthy". Check the `gatus` resource for real health.
{% endhint %}
{% endstep %}

{% step %}

### Clone and start

```
git clone https://github.com/egovernments/Citizen-Complaint-Resolution-System.git
cd Citizen-Complaint-Resolution-System/local-setup

# Use the db-dump Tiltfile (recommended — no local builds needed)
tilt up -f Tiltfile.db-dump
```

**Available Tiltfiles**:

<table><thead><tr><th width="174.94140625">File</th><th width="179.96875">Use the -f flag</th><th>What it does</th></tr></thead><tbody><tr><td><code>Tiltfile.db-dump</code></td><td><code>tilt up -f Tiltfile.db-dump</code></td><td>Pre-built images only. No Maven/Yarn needed. Best for getting started.</td></tr><tr><td><code>Tiltfile</code></td><td><code>tilt up</code> (default)</td><td>Hot reload for PGR Java and UI code. Requires Maven + Yarn.</td></tr></tbody></table>
{% endstep %}

{% step %}

### Open the Tilt dashboard

Open [http://localhost:10350](http://localhost:10350/) in your browser. You'll see:

* Services grouped by category: **infrastructure**, **core-services**, **pgr**, **frontend**, **gateway**, **tools**
* Health check links next to each service
* Utility buttons in the top nav: **Nuke DB**, **Health Check**, **Smoke Tests**
* Live streaming logs for each service

Wait for all services to turn green (healthy). This takes \~3-5 minutes.
{% endstep %}

{% step %}

### Access the application

Same URLs as Docker Compose:

<table><thead><tr><th width="258.9140625">What</th><th>URL</th></tr></thead><tbody><tr><td>DIGIT UI (Employee login)</td><td><a href="http://localhost:18000/digit-ui/employee">http://localhost:18000/digit-ui/employee</a></td></tr><tr><td>Tilt Dashboard</td><td><a href="http://localhost:10350/">http://localhost:10350</a></td></tr></tbody></table>
{% endstep %}

{% step %}

### Stop

```
# Must use the same -f flag you started with
tilt down -f Tiltfile.db-dump
```

#### Hot Reload Development (Full Tiltfile)

If you're actively editing PGR Java or UI code, use the default `Tiltfile` instead:

```
tilt up    # uses the default Tiltfile with hot reload
```

**PGR Services (Java)** — requires Maven installed:

* Edit files in `backend/pgr-services/src/main/java/...`
* Tilt automatically recompiles with Maven and syncs the JAR

**DIGIT UI (React)** — requires Node.js + Yarn:

* Enable "ui-watch" in the Tilt dashboard, or:

  ```
  cd ../frontend/micro-ui/web && yarn install && yarn build:webpack --watch
  ```

{% endstep %}
{% endstepper %}


---

# 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.digit.org/complaints-management/deploy/setup/single-machine-setup/tilt.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.
