soroush.asadi
61e44c63ab
refactor(mirror): replace 3 services with single Nexus Repository Manager
...
Consolidates BaGet + Verdaccio + registry:2 into one Sonatype Nexus OSS
instance with a REST API provisioning script.
docker-compose.mirror.yml: single nexus service, ports 8081 (UI/NuGet/npm)
and 8083 (Docker Hub pull-through proxy)
mirrors/nexus/provision.sh: idempotent setup — changes admin password,
enables anonymous access, creates nuget-proxy / npm-proxy / docker-hub-proxy
nuget.mirror.config: updated source URL to Nexus NuGet proxy endpoint
ci-cd.yml: updated npm --registry to Nexus npm proxy endpoint
Run once on server: docker compose -f docker-compose.mirror.yml up -d
then: ./mirrors/nexus/provision.sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 14:35:55 +03:30
soroush.asadi
6f85cfe4d3
feat(infra): add local pull-through mirrors for NuGet, npm, Docker Hub
...
docker-compose.mirror.yml:
- BaGet (port 5101) → proxies nuget.org
- Verdaccio (port 4873) → proxies npmjs.com
- registry:2 (port 5100) → proxies Docker Hub
nuget.mirror.config: points dotnet restore at http://mirror:5101
mirrors/verdaccio/config.yaml: open reads, upstream npmjs fallback
CI workflow:
- All container jobs: --add-host=mirror:host-gateway
- dotnet restore --configfile nuget.mirror.config
- npm install --registry http://mirror:4873
First run: packages fetched from upstream through the VPS.
All subsequent runs: served from local disk, no CDN needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 14:31:12 +03:30