Skip to content

Commit 57528e8

Browse files
committed
Improve security and privacy documentation
1 parent cdbf8d5 commit 57528e8

1 file changed

Lines changed: 55 additions & 10 deletions

File tree

‎README.md‎

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,15 @@ prices, then manages the FoxESS schedule automatically.
1212

1313
### [▶ Open the live web app](https://samuelkcc.github.io/octopus-foxess-smart-charging/)
1414

15-
No installation is required. Open it in a modern browser and follow the
16-
[web-edition setup instructions](#web-edition).
15+
The web edition is a standalone single-page application (SPA). No installation
16+
or application server is required. You can either:
17+
18+
- use the hosted version on GitHub Pages; or
19+
- [download the latest standalone HTML file](https://github.com/samuelkcc/octopus-foxess-smart-charging/releases/latest/download/Octopus_IGO_Smart_Charging_Detector.html),
20+
save it on your computer, and open it in a modern browser.
21+
22+
Both options run the application in your browser. Follow the
23+
[web-edition setup instructions](#web-edition) before connecting your accounts.
1724

1825
![Smart Charging Detector Dashboard](Dashboard.png)
1926

@@ -239,15 +246,53 @@ function doPost(e) {
239246
Use only one active automation dashboard. For unattended operation, use the
240247
Raspberry Pi edition.
241248

242-
## Security
243-
244-
- This project has no tracking or third-party application server.
245-
- Raspberry Pi credentials are encrypted and never sent to LAN clients.
249+
## Security and privacy
250+
251+
### Web SPA
252+
253+
The web edition is a static, client-side SPA. It can run from
254+
[GitHub Pages](https://samuelkcc.github.io/octopus-foxess-smart-charging/) or as
255+
the [downloaded standalone HTML file](https://github.com/samuelkcc/octopus-foxess-smart-charging/releases/latest/download/Octopus_IGO_Smart_Charging_Detector.html)
256+
on your own computer. There is no developer-operated application server and no
257+
analytics or tracking code.
258+
259+
- Your account numbers, API credentials, relay URL, and preferences are stored
260+
only in that browser profile. They are not uploaded to this repository or
261+
stored by GitHub Pages.
262+
- Persisted credentials are encrypted in the browser with AES-GCM. The
263+
non-exportable encryption key is kept in IndexedDB and the encrypted record
264+
is kept in local storage. If secure persistent storage is unavailable, the
265+
app falls back to session-only storage.
266+
- Credentials still have to be used for authenticated requests: Octopus
267+
credentials are sent directly to the Octopus Energy API, while signed FoxESS
268+
requests pass through the Google Apps Script relay that you create and then
269+
go to FoxESS Cloud.
270+
- To remove all saved web-app data, open **Menu → Wipe Local Data** and confirm
271+
**Yes, Wipe Data**. This clears the app's local storage, session storage, and
272+
IndexedDB data from the current browser profile.
273+
- Browser storage is separate for each browser, profile, and site location. If
274+
you have used both GitHub Pages and a downloaded copy, wipe each copy
275+
separately. Clearing the browser's site data also removes the saved data.
276+
- **Save Config** is optional. If you use it, the app creates a
277+
passphrase-encrypted backup file that you control. **Wipe Local Data** cannot
278+
delete copies of that exported file, so remove them separately when they are
279+
no longer needed.
280+
- Avoid using the app on a shared or public computer, keep the device and
281+
browser profile protected, and remember that web-edition automation stops
282+
when the page is closed or the device sleeps.
283+
284+
### Raspberry Pi edition
285+
286+
- Credentials and automation settings are encrypted on the Pi and are never
287+
returned to browser clients on the LAN.
246288
- The Pi performs Octopus authentication and signs FoxESS requests for the
247-
dashboard.
248-
- Live WS carries read-only telemetry; all controls use the official REST API.
249-
- Keep Dashboard Access Code protection enabled and use VPN or HTTPS for remote
250-
access.
289+
dashboard. The browser client only receives the data needed to display and
290+
control the app.
291+
- Live WS carries read-only telemetry; all scheduler and inverter controls use
292+
the official FoxESS REST API.
293+
- Keep Dashboard Access Code protection enabled. Use a private VPN for remote
294+
access, or an authenticated HTTPS reverse proxy if a VPN is not available.
295+
Never expose the Pi's raw HTTP port directly to the internet.
251296

252297
## Build from source
253298

0 commit comments

Comments
 (0)