**Language / Язык:** [English](getting-started.md) | [Русский](ru/getting-started.md) # Getting started Bring up a local Engine lab, authenticate, and run a first read against the simulator. ## Prerequisites - Docker and Docker Compose - `make` (optional but used by the documented commands) Python, linters, and tests run **inside** containers. You do not need a local Python toolchain for day-to-day use. ## Choose a path | Path | When to use | |---|---| | [Development checkout](#1a-development-checkout) | Contribute / bind-mount source | | [Published image](#1b-published-image) | Fastest lab using the Hub image | | [Helm / Kubernetes](kubernetes.md) | Cluster install (no nginx gateway yet) | ## 1a. Development checkout ```bash cp .env.example .env make install make up make seed ``` | Host port | Service | |---|---| | `443` | Engine API + SSO (HTTPS) | | `5000` | Web UI console (HTTP) | Only these two ports are published. Internal FastAPI listens on `:8080` inside the compose network. See [Ports](ports.md). Migrations run automatically via the `migrate` one-shot service. ## 1b. Published image Uses [`docker-compose.release.yml`](../docker-compose.release.yml) — PostgreSQL + migrate + simulator + Engine gateway from the Hub runtime image: ```bash docker compose -f docker-compose.release.yml pull docker compose -f docker-compose.release.yml up -d docker compose -f docker-compose.release.yml run --rm --entrypoint python \ simulator -m app.ovirt.seed_cli --profile minimal ``` Override the tag with `IMAGE_TAG=0.1.0` if needed. From a git checkout: ```bash make release-up make release-seed PROFILE=minimal ``` ## 2. Wait until ready ```bash curl -skf https://127.0.0.1/health/ready curl -sf http://127.0.0.1:5000/health/live ``` Open the console at [http://127.0.0.1:5000/](http://127.0.0.1:5000/) — see [Web UI](web-ui.md) for screenshots of Try-it, catalog, and data drawers. `/health/ready` returns HTTP 503 until PostgreSQL is reachable **and** the latest packaged migration is applied. ## 3. Seed a profile ```bash make seed # minimal lab # or make seed-demo # ~1000 VMs ``` See [Seed profiles](seed-profiles.md). ## 4. Authenticate and list VMs ```bash curl -k -u 'admin@internal:secret' \ -H 'Accept: application/json' -H 'Version: 4' \ https://127.0.0.1/ovirt-engine/api/vms ``` Or obtain an OAuth token: ```bash curl -k -X POST https://127.0.0.1/ovirt-engine/sso/oauth/token \ -d 'grant_type=password&username=admin@internal&password=secret&scope=ovirt-app-api' ``` Details: [Authentication](authentication.md). ## 5. Open the Web UI Browse [http://127.0.0.1:5000/](http://127.0.0.1:5000/) — Auth drawer, API catalog, coverage, and Data reseed controls. See [Web UI](web-ui.md). ## Next steps - [API versions](api-versions.md) — switch series packs (`OVIRT_SERIES`) - [Clients & examples](examples/overview.md) — cookbooks - [Domains](domains/README.md) — VMs, storage, networks - [Troubleshooting](troubleshooting.md) — common failures