diff --git a/docker-compose.yml b/docker-compose.yml index a506997..c79fe34 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,16 +7,3 @@ services: - 8080 #restart: always stdin_open: true - - nginx: - image: nginx:latest - ports: - - "80:80" - - "443:443" - volumes: - - ./nginx.conf:/etc/nginx/nginx.conf - - /etc/letsencrypt:/etc/letsencrypt - environment: - - SSL_CERTIFICATE=/etc/letsencrypt/live/deflock.me/fullchain.pem - - SSL_CERTIFICATE_KEY=/etc/letsencrypt/live/deflock.me/privkey.pem - restart: always diff --git a/nginx.conf b/nginx.conf index 05eff84..0ec883e 100644 --- a/nginx.conf +++ b/nginx.conf @@ -24,10 +24,6 @@ http { location / { return 301 https://$host$request_uri; } - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } } server { diff --git a/shotgun/.bsp/sbt.json b/shotgun/.bsp/sbt.json index c5b0993..b7bca3d 100644 --- a/shotgun/.bsp/sbt.json +++ b/shotgun/.bsp/sbt.json @@ -1 +1 @@ -{"name":"sbt","version":"1.9.1","bspVersion":"2.1.0-M1","languages":["scala"],"argv":["/Users/willfreeman/Library/Java/JavaVirtualMachines/corretto-11.0.19/Contents/Home/bin/java","-Xms100m","-Xmx100m","-classpath","/Users/willfreeman/Library/Application Support/JetBrains/IdeaIC2024.1/plugins/Scala/launcher/sbt-launch.jar","-Dsbt.script=/Users/willfreeman/Library/Application%20Support/Coursier/bin/sbt","xsbt.boot.Boot","-bsp"]} \ No newline at end of file +{"name":"sbt","version":"1.9.1","bspVersion":"2.1.0-M1","languages":["scala"],"argv":["/Users/willfreeman/Library/Caches/Coursier/arc/https/github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%252B7/OpenJDK17U-jdk_x64_mac_hotspot_17.0.10_7.tar.gz/jdk-17.0.10+7/Contents/Home/bin/java","-Xms100m","-Xmx100m","-classpath","/Users/willfreeman/Library/Caches/Coursier/arc/https/github.com/sbt/sbt/releases/download/v1.8.2/sbt-1.8.2.zip/sbt/bin/sbt-launch.jar","-Dsbt.script=/Users/willfreeman/Library/Caches/Coursier/arc/https/github.com/sbt/sbt/releases/download/v1.8.2/sbt-1.8.2.zip/sbt/bin/sbt","xsbt.boot.Boot","-bsp"]} \ No newline at end of file diff --git a/shotgun/src/main/scala/me/deflock/shotgun/ShotgunServer.scala b/shotgun/src/main/scala/me/deflock/shotgun/ShotgunServer.scala index 07ef9de..9b6f88e 100644 --- a/shotgun/src/main/scala/me/deflock/shotgun/ShotgunServer.scala +++ b/shotgun/src/main/scala/me/deflock/shotgun/ShotgunServer.scala @@ -70,9 +70,12 @@ object ShotgunServer { ) } - val spaRoutes = pathSingleSlash { + val spaRoutes = pathEndOrSingleSlash { getFromFile("../webapp/dist/index.html") - } ~ getFromDirectory("../webapp/dist") + } ~ getFromDirectory("../webapp/dist") ~ + path(Remaining) { _ => + getFromFile("../webapp/dist/index.html") + } val routes = handleRejections(rejectionHandler) { cors(corsSettings) { diff --git a/webapp/index.html b/webapp/index.html index a888544..068572c 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -2,9 +2,12 @@
- + + + + -- We are a group of concerned citizens who want to raise awareness about the use of Automated License Plate Readers (ALPRs) in the United States. Our goal is to provide information about ALPRs, their uses, and their implications for privacy and civil liberties. + Welcome to DeFlock, your go-to resource for understanding and addressing the growing presence of Automated License Plate Readers (ALPRs) in our communities.
-- Donuts. + Our mission is simple: to shine a light on the widespread use of ALPR technology, raise awareness about the threats it poses to personal privacy and civil liberties, and empower the public to take action. ALPRs are increasingly being deployed by law enforcement and private companies without the public's full understanding or consent, and they collect vast amounts of data on our movements, often without any real oversight.
-- Now. + Privacy is a fundamental right, and the growing use of ALPRs threatens to erode it. Every day, ALPRs capture and store details about the movements of millions of innocent people, creating a massive database that can be used for anything from routine surveillance to potentially more nefarious purposes. This constant monitoring can deter people from exercising their freedoms, like attending protests or engaging in other forms of free expression, which should concern all of us.
+ ++ We provide easy-to-understand information about what ALPRs are, how they work, and why you should care. +
+ ++ Through our platform, you can report locations where you spot ALPRs, and view an interactive map showing where these surveillance devices are deployed. +
+ ++ We encourage communities to stand up against the unchecked spread of these surveillance systems. Together, we can push for greater accountability, stronger privacy protections, and a rollback of invasive surveillance practices. +
++ Want to help us in our mission? Here are a few ways you can get involved: +
+
+ If you spot an ALPR in your community,
+ Share our site with your friends, family, and social networks to help raise awareness about the dangers of ALPRs. +
++ If you have any questions or concerns about the data on this site, please contact us at contact@deflock.me. +
++ We're working on a feature that will allow you to report ALPRs directly on this site. In the meantime, you can follow the steps below to add the ALPR to OpenStreetMap. +
+If you've spotted an ALPR in your area, you can help us track it by reporting it to OpenStreetMap, where we source our information. Here's how you can do it: @@ -12,7 +22,7 @@ title="Are you sure it's an ALPR?" >
- Before you report an ALPR, please read our
- If you've identified the brand of the ALPR as Flock Safety, then you can also add the following tags: -
-+ Download our ALPR sign and hang it near the ALPR to help raise awareness about the device. Be sure to follow all local laws and regulations when hanging signs. +
+- An Automated License Plate Reader (ALPR) is a technology that uses cameras and image processing to automatically read vehicle license plates. These cameras can be mounted on police cars, fixed on utility poles, or even positioned on private properties, capturing images of passing vehicles. ALPR systems extract plate numbers, record the time and location of the vehicle, and often cross-reference that information with databases for law enforcement or private monitoring purposes. This data can be used for a range of reasons, from catching stolen vehicles to tracking the movement of specific cars. -
-- The primary use of ALPRs is surveillance—they gather data that can help create a detailed record of where a vehicle has been over time. This has raised privacy concerns since the vast majority of drivers are not involved in any crime, yet their movements are being documented. + Automated License Plate Readers (ALPRs) are cameras that capture images of all passing license plates, storing details like the car's location, date, and time. These cameras collect data on millions of vehicles—regardless of whether the driver is suspected of a crime. While these systems can be useful for tracking stolen cars or wanted individuals, they are mostly used to track the movements of innocent people.
-For a detailed explanation of how ALPRs are a threat to privacy, see this ACLU article on them.
+ ++ ALPRs can invade your privacy and violate civil liberties in several key ways: +
+ +Your daily movements are tracked and logged, often indefinitely. This creates a detailed record of your daily activities. This information can be used to infer personal details about your life.
+ +ALPR data is often shared with other agencies, including federal law enforcement. This can lead to the creation of a massive database of innocent people's movements.
+ +The knowledge that you are being watched can have a chilling effect on your freedom of speech and association. People may avoid attending protests or political events for fear of being tracked.
+ +Law enforcement officers or other individuals with access could misuse this data, for example, tracking ex-partners, political rivals, or targeting specific communities without oversight.
++ The most common brand of ALPRs in the US is Flock Safety. They are easy to spot because they almost all look the same. They are usually mounted on a standalone black pole with a solar panel on top. The cameras are often placed near intersections or on main roads at the edge of a city or town. +
+ +Not all cameras near roads are ALPRs. Many people mistakenly assume that every traffic camera or intersection camera is an ALPR, but that's not true. Here are some things ALPRs are not:
-Standard traffic cameras typically capture live video or images of intersections to monitor traffic flow and manage signals. They do not specifically focus on reading license plates or storing data long-term.
-Standard traffic cameras typically capture live video or images of intersections to monitor traffic flow and manage signals. They do not specifically focus on reading license plates or storing data long-term.
+These cameras are set up to capture violations, such as running a red light or speeding. They may record plate numbers when a violation is detected, but they do not perform continuous surveillance or collect location data over time.
-These cameras are set up to capture violations, such as running a red light or speeding. They may record plate numbers when a violation is detected, but they do not perform continuous surveillance or collect location data over time.
+Cameras used by businesses or homeowners for security purposes may capture vehicles incidentally, but they are not specifically designed to automatically read and record license plates.
+Cameras used by businesses or homeowners for security purposes may capture vehicles incidentally, but they are not specifically designed to automatically read and record license plates.
+