Extends the previous commit's fix. The only caller (Donate.vue via apiService.getSponsors()) never sends a username and always relied on the server-side default, so the parameter had no legitimate use even after being parameterized — it just let anyone use deflock's server as an unauthenticated relay onto GitHub's GraphQL API under the server's own token. Drop it entirely: the route no longer accepts a username querystring param, and GithubClient.getSponsors() takes no argument, hardcoding the maintainer's login via MAINTAINER_USERNAME. Keeps the $username GraphQL-variable parameterization technique so reintroducing a variable input later can't reintroduce the injection. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
DeFlock
Crowdsourced tool for locating and reporting ALPRs. View Live Site.
Purpose
I created this project after noticing the mass deployment of ALPRs in cities, towns, and even rural areas in the recent years. It's a massive threat to privacy, and this projects helps shed a light on this issue as ALPRs continue to be deployed to thousands of cities across the US and possibly beyond.
What it Does
View ALPRs on a Map
Uses OpenStreetMap data to populate a map with crowdsourced locations of ALPRs, along with their type and direction they face.
The map has become a separate repository, deflockhopper_maps.
Report ALPRs
Provides instructions for using the DeFlock App or OpenStreetMap's iD web editor to report ALPRs using a standardized tagging system.
Identify ALPRs
A constantly-growing repository of ALPR makes, models, and tagging instructions for OpenStreetMap, along with images for identifying them.
Tech Stack
Backend
- TypeScript
- Fastify API server
- Cloudflare R2 for ALPR points and vector tiles
- OpenTelemetry
Cloud
- AWS Lambda (for region segmenting [deprecated] and counts)
- AWS S3 - phasing out for R2
- AWS ECR
- Cloudflare as DNS + Proxy
- Directus CDN
- Zammad helpdesk
Frontend
- Vue3
- Vuetify
- MapLibre GL
- Vue Leaflet [deprecated] - phasing out for MapLibre GL
Services
- OpenStreetMap - Overpass API, Basic Map Tiles [deprecated]
- Nominatim - Geocoding
Development
Requirements
Running Frontend
cd webappbun ibun dev
Running Backend
cd apibun ibun dev
Contributing
We welcome contributions from anyone. Here's how you can help:
How to Contribute
- Fork the Repository
- Make Your Changes
- Open a Pull Request against This Repo
