Skip to content

BioScanCheck

Eco & Bio Product Certification Scanner — React frontend + MCP backend.

Repository

Field Value
Forgejo bioscan/bioscancheck
Plane prefix BIOS
Profile fullstack
App repo path C:\Users\anik0z\Documents\bioscancheck

Stack

  • Frontend: React 19 + TypeScript + Vite
  • Data: Open Food Facts API + local mock fallback
  • MCP server: BioScanCheck tools for Cursor IDE
  • Tests: Vitest

Deploy flow

flowchart LR
  Push[push main] --> WP[Woodpecker]
  WP --> Test[npm test]
  Test --> FE[SFTP dist to IONOS]
  Test --> Docker[build MCP image]
  Docker --> Registry[Forgejo registry]
  Registry --> SSH[SSH docker compose]
  SSH --> VPS[VPS backend :3100]

Woodpecker pipeline (app repo)

Steps in bioscancheck/.woodpecker.yml:

Step When Action
install all npm ci, mcp:build
test all frontend + mcp-server tests
build all npm run build
deploy-frontend main SFTP dist/ to IONOS
build-push-backend main Docker image → Forgejo registry
deploy-backend main SSH + docker compose up -d on VPS
notify-ci-* all Plane comment on BIOS-N in branch

Woodpecker secrets

Per-repo secrets (via onboard):

  • SFTP: ftp_host, ftp_user, ftp_pass, frontend_remote_path
  • Registry: docker_registry_user, docker_registry_token
  • VPS: ssh_host, ssh_user, ssh_key
  • Plane: plane_api_key, plane_workspace, plane_project_id, plane_api_url, plane_issue_prefix

VPS backend path

/opt/devops/apps/bioscancheck-backend/

Image: git.rafaelgonzalezalbes.com/bioscan/bioscancheck-mcp:latest

MCP (app-level)

Built from app repo — not infra-ops:

cd bioscancheck
npm run mcp:build

Tools: lookup_barcode, get_bio_score, list_known_products

Onboard

bash scripts/onboard-project.sh \
  --profile fullstack \
  --forgejo-owner bioscan \
  --repo bioscancheck \
  --plane-prefix BIOS \
  --plane-name "BioScanCheck"

Monitoring

BioScanCheck API monitor (TCP :3100) is in Kuma manifest — enabled after backend deploy.

See Monitoring.