Public source validation / validate (push) Failing after 3m8s
62 lines
1.8 KiB
Markdown
62 lines
1.8 KiB
Markdown
# Development setup
|
|
|
|
## Prerequisites
|
|
|
|
- Git;
|
|
- Go 1.26.6;
|
|
- Node.js 24 or newer and pnpm 10.33 or newer;
|
|
- Python 3 with the packages in `requirements-dev.txt`;
|
|
- PowerShell 7;
|
|
- Docker Engine and Docker Compose;
|
|
- Chromium for Playwright end-to-end tests.
|
|
|
|
## Bootstrap
|
|
|
|
From a clean checkout:
|
|
|
|
```powershell
|
|
Copy-Item .env.example .env
|
|
pwsh -NoProfile -File scripts/bootstrap.ps1
|
|
```
|
|
|
|
The example environment uses mock authentication and local-only credentials. Never reuse production credentials, backups, dashboards, telemetry, or host inventories.
|
|
|
|
## Run the development stack
|
|
|
|
```powershell
|
|
docker compose -f deploy/compose.yaml -f deploy/compose.dev.yaml up --build
|
|
```
|
|
|
|
The development override publishes the web, API, and PostgreSQL ports for local testing. Treat those ports as development-only and use a host firewall when working on an untrusted network.
|
|
|
|
Stop only this stack with:
|
|
|
|
```powershell
|
|
docker compose -f deploy/compose.yaml -f deploy/compose.dev.yaml down --volumes
|
|
```
|
|
|
|
## Validation
|
|
|
|
For a public source checkout:
|
|
|
|
```powershell
|
|
pwsh -NoProfile -File scripts/public-verify.ps1
|
|
```
|
|
|
|
The optional real source-to-browser smoke uses an isolated Compose project and tears it down after the run:
|
|
|
|
```powershell
|
|
pwsh -NoProfile -File scripts/integration-smoke.ps1
|
|
```
|
|
|
|
PostgreSQL integration tests use explicit process-local test DSNs. Never point them at a database that contains data you need to keep.
|
|
|
|
## Production separation
|
|
|
|
- production uses OIDC and rejects mock authentication;
|
|
- the base/production profiles do not publish PostgreSQL or the API;
|
|
- runtime secrets remain outside Git;
|
|
- fixtures are synthetic;
|
|
- the agent remains read-only and receives no Docker socket;
|
|
- production changes follow [`../PUBLIC_DEPLOYMENT.md`](../PUBLIC_DEPLOYMENT.md), not the development procedure.
|