|
9 | 9 | [](https://github.com/TheAngryRaven/DovesDataViewer/actions/workflows/build.yml) |
10 | 10 | [](https://github.com/TheAngryRaven/DovesDataViewer/actions/workflows/coverage.yml) |
11 | 11 |
|
12 | | -🌐 **Live Demo:** [HackTheTrack.net](https://hackthetrack.net) |
| 12 | +🌐 **Live Demo:** [LapWing](https://lapwingdata.com) |
13 | 13 | 🔧 **Hardware Project:** [DovesDataLogger on GitHub](https://github.com/TheAngryRaven/DovesDataLogger) |
14 | 14 |
|
15 | 15 | **Now officially in BETA status** |
@@ -59,7 +59,7 @@ This project is **100% open source**. The entire codebase—every feature, every |
59 | 59 |
|
60 | 60 | ## Free Forever |
61 | 61 |
|
62 | | -- **Single file processing on HackTheTrack.net is always free**—no download or account required |
| 62 | +- **Single file processing on LapWing is always free**—no download or account required |
63 | 63 | - **Self-hosting is always an option**—clone this repo and run it yourself |
64 | 64 | - The only potential future paid feature: optional cloud storage for users who *want* hosted data retention on *my* infrastructure |
65 | 65 |
|
@@ -160,6 +160,7 @@ view. Older JSON with only `sector_2_*`/`sector_3_*` is read as the two majors. |
160 | 160 | | `VITE_ENABLE_ADMIN` | No | Set to `true` to enable admin UI and `/admin` route. `/login` mounts when admin OR cloud is enabled. Default `false` — a fresh clone ships the public, offline-first app, not admin UI pointed at an upstream backend. | |
161 | 161 | | `VITE_ENABLE_CLOUD` | No | Set to `true` to enable public user accounts: Cloud Sync panels, email sign-in/registration, `/register`, `/forgot-password`, `/reset-password`, `/auth/callback`. Default `false` — flag-off builds ship zero cloud auth code (offline-first invariant). | |
162 | 162 | | `VITE_ENABLE_GOOGLE_AUTH` | No | Set to `true` to show the "Continue with Google" buttons (login, register, Profile). Requires `VITE_ENABLE_CLOUD`. Default `false`: Google sign-in currently routes through Lovable's hosted OAuth broker, so it stays hidden until native Supabase Google OAuth is configured (Google Cloud OAuth client + Supabase provider). | |
| 163 | +| `VITE_IS_NATIVE` | No | Set to `true` **only** for the native (Tauri/Android) shell build. Skips the service worker, hides in-app purchases (paid plans are web-only — Google Play billing policy; cloud sync still works), and opens external links in the system browser. The web app leaves this unset/`false`. See [`docs/android.md`](docs/android.md). | |
163 | 164 | | `VITE_TURNSTILE_SITE_KEY` | No | Cloudflare Turnstile site key for track submission CAPTCHA | |
164 | 165 | | `VITE_FIRMWARE_MANIFEST_URL` | No | Override the DovesDataLogger firmware OTA manifest URL used by the in-app firmware updater. When unset: `main` builds use the production manifest (`https://theangryraven.github.io/DovesDataLogger/manifest.json`); non-`main`/preview builds use the **beta channel** (`https://theangryraven.github.io/DovesDataLogger/beta/manifest.json`). Set this to force a specific channel on any branch. | |
165 | 166 | | `TURNSTILE_SECRET_KEY` | No | Cloudflare Turnstile secret key (edge function secret — `???`) | |
@@ -455,6 +456,30 @@ whenever that branch isn't `main`, and ignores them on `main` and in local dev. |
455 | 456 | is also accepted. Add the Cloudflare preview URL to the preview branch's |
456 | 457 | **Auth → Redirect URLs** so cloud sign-in works there. |
457 | 458 |
|
| 459 | +#### Custom domains (production + beta) |
| 460 | + |
| 461 | +- **Production — `lapwingdata.com`:** `wrangler.jsonc` declares a |
| 462 | + `custom_domain` route, so `wrangler deploy` provisions the DNS record and TLS |
| 463 | + certificate automatically. The zone `lapwingdata.com` must be in the same |
| 464 | + Cloudflare account; **do not also attach the domain by hand** in the dashboard |
| 465 | + or the bindings conflict. |
| 466 | +- **Beta — `beta.lapwingdata.com`:** custom domains can't attach to a Branch |
| 467 | + Preview URL, so a separate thin reverse-proxy Worker owns the beta hostname and |
| 468 | + forwards to the stable `beta` preview (`beta-dovesdataviewer.perchwerks.workers.dev`). |
| 469 | + It lives in [`beta-proxy/`](beta-proxy/README.md) and is deployed on its own |
| 470 | + (`cd beta-proxy && npm install && npm run deploy`). Keep Cloudflare Access |
| 471 | + **off** on the upstream preview URL — see that README. |
| 472 | + |
| 473 | +### Android app (Tauri) |
| 474 | + |
| 475 | +The same frontend also serves a native **Android** app built with Tauri (in a |
| 476 | +separate repo) — the web app is unchanged. Build the bundle with |
| 477 | +`VITE_IS_NATIVE=true` and the app skips the service worker, hides in-app purchases |
| 478 | +(paid plans stay web-only per Google Play's billing policy; cloud sync still |
| 479 | +works), and opens external links in the system browser. See |
| 480 | +[`docs/android.md`](docs/android.md) for the platform layer, the native bridge |
| 481 | +contract, the Data Safety form, and the Android permission set. |
| 482 | + |
458 | 483 | --- |
459 | 484 |
|
460 | 485 | ## Project Structure |
|
0 commit comments