Merge pull request 'bugfix update alarm' (#3) from update-0.1.9 into main
Reviewed-on: http://10.0.3.108:3000/Vibe/VibeFinance/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
+2
-1
@@ -6,7 +6,8 @@ frontend/dist/
|
||||
|
||||
# Omgevingsvariabelen (gebruik .env.example als sjabloon)
|
||||
.env
|
||||
.env.local
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# Logs en rommel
|
||||
*.log
|
||||
|
||||
@@ -95,6 +95,42 @@ $env:GITEA_TOKEN = "<token>"
|
||||
Het script bouwt één image voor `linux/amd64` en `linux/arm64`, zodat dezelfde
|
||||
tag op een Raspberry Pi en op een x86-server werkt.
|
||||
|
||||
### Tokens niet elke sessie opnieuw zetten
|
||||
|
||||
Staat er een `.env.release` naast `release.ps1`, dan leest het script die in
|
||||
voordat er iets gebeurt. Handig voor stap 3, die anders elke nieuwe shell
|
||||
opnieuw met de hand moet:
|
||||
|
||||
```
|
||||
# .env.release — staat in .gitignore, hoort alleen op de release-machine
|
||||
GITEA_TOKEN=<token met write:repository>
|
||||
REGISTRY_USER=<gitea-gebruiker>
|
||||
REGISTRY_TOKEN=<token met write:package>
|
||||
```
|
||||
|
||||
Een variabele die al in je shell staat wint, zodat je per run kunt afwijken
|
||||
zonder het bestand aan te passen. Het script logt alleen welke namen het heeft
|
||||
geladen, nooit de waarden.
|
||||
|
||||
Twee **verschillende** tokens is hier de bedoeling: de registry heeft
|
||||
`write:package` nodig en het aanmaken van een release `write:repository`. Eén
|
||||
breed token voor beide werkt ook, maar dan gaat een repo-schrijfrecht mee bij
|
||||
elke `docker push`.
|
||||
|
||||
> Een **404** in stap 5 betekent bijna altijd dat de token de repo niet mag
|
||||
> zien: Gitea geeft op repo-endpoints 404 in plaats van 403, om niet te
|
||||
> verklappen dat iets bestaat. Controleer dan eerst wie de token is en wat hij
|
||||
> ziet:
|
||||
>
|
||||
> ```powershell
|
||||
> $h = @{ Authorization = "token $env:GITEA_TOKEN" }
|
||||
> (Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user -Headers $h).login
|
||||
> (Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user/repos -Headers $h).full_name
|
||||
> ```
|
||||
>
|
||||
> Staat de repo niet in die lijst, dan mist de token de repository-scope of
|
||||
> hoort hij bij een account zonder toegang.
|
||||
|
||||
---
|
||||
|
||||
## Docker
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## [Niet vrijgegeven]
|
||||
|
||||
### Gewijzigd
|
||||
- `release.ps1` leest een `.env.release` naast het script in (niet in git), zodat
|
||||
`GITEA_TOKEN` en de registry-credentials niet elke shell opnieuw gezet hoeven
|
||||
te worden; een variabele die al in de omgeving staat wint, en alleen de namen
|
||||
worden gelogd
|
||||
- `.gitignore` negeert nu alle `.env.*` op `.env.example` na — `.env.release`
|
||||
zou anders door een `git add .` in git belanden
|
||||
- `BEHEER.md` beschrijft welke token-scopes waarvoor nodig zijn
|
||||
(`write:package` voor de registry, `write:repository` voor een release) en
|
||||
hoe je een 404 in stap 5 nakijkt
|
||||
- De draaiende versie komt uit de build in plaats van uit een bestand: de
|
||||
frontend leest `__APP_VERSION__` via het nieuwe `src/version.js`, niet meer
|
||||
rechtstreeks uit `frontend/package.json`. `vite.config.js` definieerde die
|
||||
constante al, maar niets gebruikte hem — een productie-image gebouwd terwijl
|
||||
er een `-dev` in `package.json` stond, sloeg de update-check stil helemaal
|
||||
over
|
||||
|
||||
## [0.1.8] - 2026-09-09
|
||||
|
||||
### Gewijzigd
|
||||
|
||||
@@ -13,7 +13,8 @@ export default [
|
||||
languageOptions: {
|
||||
ecmaVersion: "latest",
|
||||
sourceType: "module",
|
||||
globals: { ...globals.browser },
|
||||
// Door Vite ingebakken tijdens de build (define in vite.config.js)
|
||||
globals: { ...globals.browser, __APP_VERSION__: "readonly" },
|
||||
parserOptions: { ecmaFeatures: { jsx: true } },
|
||||
},
|
||||
settings: { react: { version: "detect" } },
|
||||
|
||||
@@ -10,7 +10,7 @@ import SchuldTab from "./pages/SchuldTab.jsx";
|
||||
import VoortgangTab from "./pages/VoortgangTab.jsx";
|
||||
import { RED, PURPLE_LIGHT } from "./constants/index.js";
|
||||
import { fmt } from "./utils/format.js";
|
||||
import { version } from "../package.json";
|
||||
import { version } from "./version.js";
|
||||
import { useUpdateCheck } from "./hooks/useUpdateCheck.js";
|
||||
import ProfielPopup from "./components/ProfielPopup.jsx";
|
||||
import InstellingenModal from "./components/InstellingenModal.jsx";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState } from "react";
|
||||
import { TABS } from "../constants/index.js";
|
||||
import { version } from "../../package.json";
|
||||
import { version } from "../version.js";
|
||||
import { useUpdateCheck } from "../hooks/useUpdateCheck.js";
|
||||
import { useApp } from "../context/AppContext.jsx";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { version } from "../../package.json";
|
||||
import { version } from "../version.js";
|
||||
|
||||
// De check loopt via de eigen backend (/api/update-check): de Gitea API stuurt
|
||||
// geen CORS-headers, dus de browser mag die niet direct bevragen.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// Draaiende versie, tijdens de build ingebakken door Vite (`define` in
|
||||
// vite.config.js). Die leest VITE_APP_VERSION uit de omgeving — de build-arg
|
||||
// die de Dockerfile en release.ps1 doorgeven — en valt terug op de versie uit
|
||||
// package.json wanneer die niet gezet is (dev-server, `npm run build` los).
|
||||
//
|
||||
// Niet rechtstreeks uit package.json importeren: dan hangt de versie aan een
|
||||
// bestand in plaats van aan de build, en checkt een image dat gebouwd is met
|
||||
// een `-dev` in package.json stil nooit meer op updates.
|
||||
export const version = __APP_VERSION__;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vibefinance",
|
||||
"version": "0.1.8",
|
||||
"version": "0.1.9",
|
||||
"description": "VibeFinance — persoonlijk vermogensbeheer",
|
||||
"private": true,
|
||||
"repository": "https://vibehoogie.duckdns.org/vibe/VibeFinance",
|
||||
|
||||
+23
@@ -28,6 +28,29 @@ param(
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# ── Geheimen uit .env.release ──────────────────────────────────────────────
|
||||
# Staat niet in git (.gitignore) en bestaat alleen op de release-machine, zodat
|
||||
# GITEA_TOKEN niet elke sessie met de hand gezet hoeft te worden. Een variabele
|
||||
# die al in de omgeving staat wint, zodat je per run kunt afwijken.
|
||||
$envFile = Join-Path $PSScriptRoot ".env.release"
|
||||
if (Test-Path $envFile) {
|
||||
$geladen = @()
|
||||
foreach ($regel in Get-Content $envFile) {
|
||||
if ($regel -notmatch '^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$') { continue }
|
||||
$naam = $Matches[1]
|
||||
$waarde = $Matches[2].Trim().Trim('"').Trim("'")
|
||||
if (-not $waarde) { continue }
|
||||
# Al gezet in de shell? Dan die laten staan.
|
||||
if ([Environment]::GetEnvironmentVariable($naam)) { continue }
|
||||
[Environment]::SetEnvironmentVariable($naam, $waarde)
|
||||
$geladen += $naam
|
||||
}
|
||||
# Alleen de namen loggen, nooit de waarden.
|
||||
if ($geladen) {
|
||||
Write-Host "Geheimen geladen uit .env.release: $($geladen -join ', ')" -ForegroundColor DarkGray
|
||||
}
|
||||
}
|
||||
|
||||
# ════════════════════════════════════════════════════════════════════════════
|
||||
# ── PROJECTCONFIGURATIE — pas alleen dit blok aan voor een nieuw project ──
|
||||
# ════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user