The Woodpecker CI pipeline is slow. Both the frontend and backend pipelines install dependencies multiple times per build and pull Docker cache layers from Docker Hub instead of the local registry at `10.0.20.10:5000`.
1.**Frontend `npm ci` runs twice**: once in the test step (bare node image), once inside the Kaniko Dockerfile build. 560MB of node_modules downloaded each time.
2.**Backend builds 2 Docker images**: one for the `:test` target, one for the final image. Both execute the `builder` stage which runs `pip install -r requirements.txt` (1874 lines, hash-pinned).
3.**Docker cache pulled from Docker Hub**: `cache_from` and `cache_repo` point to Docker Hub. Local registry at `10.0.20.10:5000` already exists and has all images but is not used for caching.
## Solution
### 1. Local Registry for Docker Layer Caching
Switch all `cache_from` and `cache_repo` references from Docker Hub to `10.0.20.10:5000`. The local registry already has `viktorbarzin/realestatecrawler` and `viktorbarzin/immoweb` with `builder`, `test`, and `latest` tags. Local network pulls are near-instant vs Docker Hub.
- Docker Hub remains the "production" registry (k8s pulls from there)