Rename the web app from FatihsMG4 to Nils' MG4
Browser title, login heading, hidden password-manager username, session cookie (nilsmg4_session) and package name. The README keeps the credit to fatihdonmezdev/FatihsMG4. Server version 1.1.1; the manifests pin it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
@@ -74,7 +74,7 @@ car ──live telemetry───▶ car.stinnesbeck.com ──▶ ABRP api.ite
|
||||
- [x] Manifests in `k8s/`, validated offline. **Not applied** — that is Nils' step (`k8s/README.md`).
|
||||
- [x] Car app 2.3.0: Server tab with config import, live telemetry upload, cadence controls.
|
||||
Unit tests and lint pass; **not yet tried on the car**.
|
||||
- [ ] Push the image to git.stinnesbeck.com (needs a registry login on the build machine).
|
||||
- [ ] Push the image (`mg4-server:1.1.1`) to git.stinnesbeck.com (needs a registry login on the build machine).
|
||||
- [ ] Check the Traefik ingress class in `k8s/ingress.yaml` (placeholder `traefik-external`).
|
||||
- [ ] First drive with 2.3.0: telemetry arrives in InfluxDB and at ABRP.
|
||||
|
||||
@@ -92,8 +92,7 @@ car ──live telemetry───▶ car.stinnesbeck.com ──▶ ABRP api.ite
|
||||
`NilsMG4-unstable-<version>.apk` with a `.sha256` sidecar (`build-car` writes both).
|
||||
- [ ] **Charging currency.** Prices and costs are shown in Turkish lira (`₺/kWh`, `₺`) in
|
||||
`pane_charging.xml` and `MainActivity.java`.
|
||||
- [ ] **Dashboard language and branding.** The `web/` pages are still Turkish, say "FatihsMG4" and
|
||||
show prices in lira.
|
||||
- [ ] **Dashboard language.** The `web/` pages are still Turkish and show prices in lira.
|
||||
- [ ] **Telemetry queue survives restarts.** Unsent live samples are kept in memory only.
|
||||
- [ ] **Translate the rest.** The docs (`CHANGELOG.md`, `OTA.md`'s
|
||||
message table, comments in `mise.toml`/`app/build.gradle`) are still Turkish or French.
|
||||
|
||||
@@ -9,4 +9,4 @@ resources:
|
||||
- ingress.yaml
|
||||
images:
|
||||
- name: git.stinnesbeck.com/nils/mg4-server
|
||||
newTag: "1.1.0"
|
||||
newTag: "1.1.1"
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
Next.js app, self-hosted at car.stinnesbeck.com: the ingest API the car writes to, the ABRP
|
||||
forwarder, and a phone-shaped dashboard for reading the history back. Data lives in
|
||||
InfluxDB 2. Based on upstream's Vercel/MongoDB app in FatihsMG4.
|
||||
InfluxDB 2. Based on upstream's Vercel/MongoDB app in fatihdonmezdev/FatihsMG4.
|
||||
|
||||
```
|
||||
car ──live telemetry───▶ server ──▶ ABRP api.iternio.com/1/tlm/send
|
||||
|
||||
Generated
+4
-4
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "fatihsmg4-web",
|
||||
"version": "1.1.0",
|
||||
"name": "nilsmg4-web",
|
||||
"version": "1.1.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "fatihsmg4-web",
|
||||
"version": "1.1.0",
|
||||
"name": "nilsmg4-web",
|
||||
"version": "1.1.1",
|
||||
"dependencies": {
|
||||
"@influxdata/influxdb-client": "^1.35.0",
|
||||
"next": "^15.5.4",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "fatihsmg4-web",
|
||||
"version": "1.1.0",
|
||||
"name": "nilsmg4-web",
|
||||
"version": "1.1.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { Metadata, Viewport } from "next";
|
||||
import "./globals.css";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "FatihsMG4",
|
||||
title: "Nils' MG4",
|
||||
description: "MG4 tüketim ve şarj geçmişi",
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ export default async function LoginPage({
|
||||
return (
|
||||
<div className="login">
|
||||
<form className="login-card" action="/api/session" method="post">
|
||||
<h1 className="title">FatihsMG4</h1>
|
||||
<h1 className="title">Nils' MG4</h1>
|
||||
<p className="subtitle">Tüketim ve şarj geçmişi</p>
|
||||
{/*
|
||||
A hidden username so password managers will offer to save this.
|
||||
@@ -24,7 +24,7 @@ export default async function LoginPage({
|
||||
<input
|
||||
type="text"
|
||||
name="username"
|
||||
value="fatih"
|
||||
value="nils"
|
||||
autoComplete="username"
|
||||
readOnly
|
||||
hidden
|
||||
|
||||
@@ -11,7 +11,7 @@ import crypto from "node:crypto";
|
||||
* Reading the history needs the dashboard password, which never leaves the browser's
|
||||
* cookie jar and is never compiled into anything.
|
||||
*/
|
||||
export const SESSION_COOKIE = "fatihsmg4_session";
|
||||
export const SESSION_COOKIE = "nilsmg4_session";
|
||||
const SESSION_TTL_SECONDS = 60 * 60 * 24 * 30;
|
||||
|
||||
/** Constant-time compare that does not leak length through an early return. */
|
||||
|
||||
Reference in New Issue
Block a user