mirror of
https://github.com/yyhuni/xingrin.git
synced 2026-01-31 11:46:16 +08:00
3.5 KiB
3.5 KiB
WARP.md
This file provides guidance to WARP (warp.dev) when working with code in this repository.
Common commands
Repo scripts (Docker-based deployment)
./install.sh(prod) /./install.sh --dev(build local dev images) /./install.sh --no-frontend./start.sh/./start.sh --dev./stop.sh./restart.sh./update.sh./uninstall.sh
Docker Compose (full stack with Django backend)
- Dev:
docker compose -f docker/docker-compose.dev.yml up -d - Dev + local Postgres:
docker compose -f docker/docker-compose.dev.yml --profile local-db up -d - Down:
docker compose -f docker/docker-compose.dev.yml down
Frontend (Next.js in frontend/)
cd frontendpnpm installpnpm dev(orpnpm dev:mock,pnpm dev:noauth)pnpm buildpnpm startpnpm lint
Go server rewrite (Gin/GORM in server/)
cd servermake run/make build/make test/make lint- Single test:
go test ./internal/... -run TestName - Dev deps only (Postgres/Redis):
docker compose -f docker-compose.dev.yml up -d
Go worker (scan executor in worker/)
cd workermake run/make build/make test- Single test:
go test ./internal/... -run TestName
Django backend (production server in backend/)
cd backendpytest- Single test:
pytest apps/<app>/... -k "TestName or test_name"
Seed data generator (API-based, tools/seed-api/)
cd tools/seed-apipip install -r requirements.txtpython seed_generator.py(seetools/seed-api/README.mdfor options)- Tests:
pytest(integration requires a running backend)
Architecture overview (big picture)
- Monorepo services:
- Django backend in
backend/(current production server, runs viadocker/server/start.shwith migrations +uvicorn). - Go backend rewrite in
server/(Gin/GORM; incomplete perserver/README.md). - Next.js frontend in
frontend/(App Router; containerized viadocker/frontend/Dockerfile). - Go worker in
worker/plus agent (heartbeat/monitor) indocker/agent/Dockerfile.
- Django backend in
- Deployment topology:
docker/docker-compose.yml(prod) anddocker/docker-compose.dev.yml(dev) orchestrate Postgres, Redis, Django server, agent, frontend, and nginx. Nginx terminates HTTPS on8083and proxies to backend8888. - Versioning:
VERSIONis the single source of release version.IMAGE_TAGindocker/.envpins all images to the same tag;./update.shrefreshes it (seedocs/version-management.md). - Scan pipeline: stages and toolchain are documented in
docs/scan-flow-architecture.md. Stage ordering is defined inbackend/apps/scan/configs/command_templates.py. - Templates & wordlists:
- Nuclei templates: server-side sync and worker-side checkout are documented in
docs/nuclei-template-architecture.md. - Wordlists: upload on server, hash-based cache + download on worker (see
docs/wordlist-architecture.md).
- Nuclei templates: server-side sync and worker-side checkout are documented in
- Backend domain layout: Django apps under
backend/apps/(e.g.,scan,engine,asset,targets,common). Worker/agent deployment helpers live inbackend/scripts/worker-deploy/. - Go server layout:
server/internal/is layered (handler→service→repository→model, plusdto,middleware,config,database). - Go worker layout:
worker/internal/splits workflow orchestration (workflow,activity) from runtime/server glue (server,config,pkg). - Config files:
.envtemplates live indocker/.env.example(Django stack),server/.env.example(Go server), andworker/.env.example(Go worker).