Initial scaffold: React/Vite/TS PWA + Express/Prisma/Postgres backend
Build and Deploy / version (push) Successful in 1s
Build and Deploy / build (push) Failing after 1s
Build and Deploy / deploy (push) Skipped

Materialschein & Kabelrechner für BergVOLT Elektrotechnik, portiert von der
vorherigen Single-File-HTML-Version. Microsoft-Entra-ID-Login (MSAL), Projekt-
Dashboard statt einer Datei pro Kunde, Retour-Buchen-Zusammenführung, 111
Kabeltypen aus den offiziellen Meinhart-Datenblättern. gitops/ nach
PROX/deploy-standard: git-backed Portainer-Stack, versionierte Docker-Images,
CI-Commit-back auf gitops/stack.yml.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Fidelis Huber
2026-08-21 17:24:38 +02:00
co-authored by Claude Sonnet 5
commit 13cef3c96d
39 changed files with 1798 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { VitePWA } from 'vite-plugin-pwa';
export default defineConfig({
plugins: [
react(),
VitePWA({
registerType: 'autoUpdate',
includeAssets: ['icons/favicon-32.png', 'icons/apple-touch-icon.png'],
manifest: {
name: 'BergVOLT Materialschein',
short_name: 'Materialschein',
description: 'Materialschein & Kabelrechner für BergVOLT Elektrotechnik',
start_url: '/',
scope: '/',
display: 'standalone',
background_color: '#0a1622',
theme_color: '#0a1622',
lang: 'de',
icons: [
{ src: 'icons/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' },
{ src: 'icons/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'maskable' },
{ src: 'icons/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' },
{ src: 'icons/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }
]
},
workbox: {
// API-Aufrufe nie cachen immer live, sonst sieht man veraltete Projektdaten.
navigateFallbackDenylist: [/^\/api\//],
runtimeCaching: [
{
urlPattern: /^\/api\//,
handler: 'NetworkOnly'
}
]
}
})
],
server: {
proxy: {
'/api': 'http://localhost:8787'
}
}
});