Add consent-first analytics privacy controls

This commit is contained in:
achraf
2026-06-07 16:11:21 +02:00
parent aa44f6c105
commit 0b2d38ee5e
15 changed files with 492 additions and 24 deletions

View File

@@ -1,9 +1,9 @@
# Plimi: Privacy-First Browser Toolbox
Plimi is a modern, modular, zero-backend utility suite that executes all tools directly inside your browser. No data ever leaves your device.
Plimi is a modern, modular utility suite that executes tool processing directly inside your browser. Tool inputs and outputs are not uploaded by Plimi.
## Features
- **Privacy-First Design**: Completely offline-capable. No data is sent to external servers.
- **Privacy-First Design**: Tool processing is offline-capable. Optional audience analytics load only after consent.
- **Plugin Architecture**: Modular, strictly-typed plugin ecosystem supporting custom UI or generated UI based on schema.
- **Web Workers & WASM**: Supports off-loading expensive operations (e.g. PDF manipulation, media processing) into separate threads.
- **High Performance**: Built with React, Vite, and Tailwind CSS v4.
@@ -36,9 +36,9 @@ npm run build
Build and run the static production app with Nginx:
```bash
docker build \
--build-arg VITE_PLIMI_REPO_URL=https://github.com/your-org/plimi \
-t plimi:local .
cp .env.example .env
# Edit .env with the real deployment and legal values.
docker build --secret id=vite_env,src=.env -t plimi:local .
docker run --rm -p 8080:80 --name plimi plimi:local
```
@@ -46,13 +46,33 @@ docker run --rm -p 8080:80 --name plimi plimi:local
Or use Docker Compose:
```bash
VITE_PLIMI_REPO_URL=https://github.com/your-org/plimi PLIMI_PORT=8080 docker compose up --build
cp .env.example .env
# Edit .env, then:
docker compose up --build
```
Environment:
- `VITE_PLIMI_REPO_URL`: build-time public repository URL shown on the Contribute page.
- `VITE_SITE_URL`: canonical public URL used to restrict analytics to the deployed hostname.
- `VITE_LEGAL_NAME`, `VITE_LEGAL_COUNTRY`: controller identity shown in the privacy notice.
- `VITE_PRIVACY_EMAIL`: contact address for privacy and data-subject requests.
- `VITE_PRIVACY_EFFECTIVE_DATE`: effective date displayed on the privacy notice.
- `VITE_ANALYTICS_SCRIPT_URL`, `VITE_ANALYTICS_WEBSITE_ID`: Umami tracker configuration.
- `VITE_ANALYTICS_HOST`, `VITE_ANALYTICS_HOST_COUNTRY`: analytics recipient and hosting location disclosed to visitors.
- `VITE_ANALYTICS_RETENTION_MONTHS`: disclosed analytics retention period. Configure Umami/database deletion to match it.
- `PLIMI_PORT`: host port used by Docker Compose, default `8080`.
Analytics is consent-first. The tracker is injected only after acceptance and is
configured to exclude URL search parameters and hashes and honor Do Not Track.
The privacy page is available at `/privacy`; deployers must replace all example
controller and hosting values before publishing.
Docker mounts `.env` as a BuildKit secret only while Vite builds the static
bundle. The file is ignored by Git and excluded from the regular Docker context.
Remember that `VITE_*` values are public build-time configuration and can be
read from the resulting browser JavaScript; do not put passwords or API secrets
in them.
---
## How to Create a Tool (Plugin)