chore: initial project setup with backend, frontend, and infrastructure
Some checks failed
CI / backend (push) Failing after 31s
CI / frontend (push) Successful in 40s
CI / docker (push) Has been skipped

Add complete NexaPantry application structure including:
- Docker Compose configuration with PostgreSQL, Redis, FastAPI backend, worker, frontend and Caddy
- Environment configuration template with database, auth, and service settings
- GitHub Actions CI workflow for backend/frontend linting, testing, auditing and Docker builds
- AGPL-3.0 license and comprehensive README with setup, development, and security documentation
- Backend
This commit is contained in:
2026-06-04 10:26:38 +02:00
commit 3792ca55e7
74 changed files with 13417 additions and 0 deletions

46
frontend/vite.config.ts Normal file
View File

@@ -0,0 +1,46 @@
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vitest/config';
import { VitePWA } from 'vite-plugin-pwa';
export default defineConfig({
plugins: [
react(),
VitePWA({
registerType: 'autoUpdate',
manifest: {
name: 'NexaPantry',
short_name: 'NexaPantry',
description: 'Self-hosted pantry management for homes and shared households.',
theme_color: '#0f766e',
background_color: '#f8fafc',
display: 'standalone',
scope: '/',
start_url: '/',
icons: [
{ src: '/icons/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any maskable' }
]
},
workbox: {
navigateFallback: '/index.html',
globPatterns: ['**/*.{js,css,html,svg,png,woff2}'],
runtimeCaching: [
{
urlPattern: ({ url }) => url.pathname.startsWith('/api/'),
handler: 'NetworkFirst',
options: { cacheName: 'nexapantry-api', networkTimeoutSeconds: 3 }
}
]
}
})
],
server: {
proxy: {
'/api': 'http://127.0.0.1:8000'
}
},
test: {
environment: 'jsdom',
globals: true,
setupFiles: './src/test-setup.ts'
}
});