# Getting Started

**60 seconds — that's all it takes to launch UMH Core.**

No kubectl, no Kubernetes setup, just a single Docker container. Almost anything that runs Docker works — from your MacBook to enterprise edge boxes.

> **Note:** This getting-started guide follows the common PLC/sensor path (raw → device models). For ERP integration and other patterns, see the [Data Modeling documentation](/usage/data-modeling.md).

## System requirements

**Minimum:**

* 2 vCPU
* 4 GB RAM
* 40 GB SSD

**Architecture:**

* x86\_64 (Intel/AMD 64-bit)
* ARM64 (64-bit ARM, but NOT Raspberry Pi - Redpanda requires 48-bit virtual address space)

For detailed sizing recommendations, see the [Sizing Guide](/production/sizing-guide.md).

## Installation using the Management Console

1. **Sign up** at [management.umh.app](https://management.umh.app)
2. Click **"Add a new instance"**

![Instance setup screen](/files/bQ5yFCy3HCMFCcuyphzY)

3. **Configure your instance:**
   * **Name** (1): Give it a cool name (e.g., `my-first-umh`)
   * **Type** (2): Select "Core" from the dropdown
   * **Location** (3): Enter your location path:
     * **Level 0**: `your-company` (required - your enterprise name)
     * **Level 1**: `Your level 1 name` (optional - e.g., site or plant)
     * **Level 2-4**: Leave empty for now (optional)
   * Click **"Add Instance"** (4)
4. **Copy the Docker command** that appears
5. **Run it** on any machine with Docker installed

## 🎉 Success!

Your instance will appear as **"Online"** in the Management Console within seconds.

**Next step:** [Connect your first data source →](/getting-started/1-connect-data.md)

***

## Troubleshooting

**Volume permission errors** Named volumes automatically handle permissions for the container user (UID 1000). If you still see permission errors like `s6-svscan: warning: unable to stat benthos-dataflow-*`, try removing the container and recreating the volume:

```bash
docker rm -f umh-core && docker volume rm umh-core-data && docker volume create umh-core-data
```

Then re-run the `docker run` command.

For advanced users needing bind mounts (custom data locations), see the [Container Layout reference](/reference/container-layout.md#advanced-custom-data-location).

**Corporate firewall/proxy issues** If your corporate network intercepts TLS traffic, see the [Corporate Firewalls Guide](https://github.com/united-manufacturing-hub/united-manufacturing-hub/blob/staging/umh-core/docs/production/corporate-firewalls.md) to add your CA certificate or, as a last resort, set `allowInsecureTLS: true` in `config.yaml` or use `-e ALLOW_INSECURE_TLS=true` in your docker run command.

For proxy configuration, see the [Corporate Firewalls Guide](https://github.com/united-manufacturing-hub/united-manufacturing-hub/blob/staging/umh-core/docs/production/corporate-firewalls.md) or add these arguments to your docker run:

```bash
-e HTTP_PROXY=http://proxy.company.com:8080 \
-e HTTPS_PROXY=https://proxy.company.com:8080 \
-e NO_PROXY=localhost,127.0.0.1,.local
```

***

## Coming from UMH Classic?

See the [Migration Guide](/production/migration-from-classic.md) for step-by-step migration instructions, including data contract changes and configuration updates.

***

## Concepts Learned

* **UMH Core** - Single-container Industrial IoT platform
* **Management Console** - Cloud UI for managing instances
* **Instance** - A running UMH Core deployment
* **Location hierarchy** - Organizational structure (enterprise → site → area → line)
* **Docker container** - How UMH Core runs

## Ready to Connect Data?

**You've successfully installed UMH Core!** 🚀

**Next step:** [Connect your first data source →](/getting-started/1-connect-data.md)


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.umh.app/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
