chore: replace AI Coding Starter Kit references with archivmail project info
- CLAUDE.md: vollständig auf archivmail-Kontext umgeschrieben (Go/Xapian Stack, On-Premise Deploy, keine Supabase/Vercel) - package.json: name und description auf archivmail aktualisiert Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,66 +1,70 @@
|
|||||||
# AI Coding Starter Kit
|
# archivmail
|
||||||
|
|
||||||
> A Next.js template with an AI-powered development workflow using specialized skills for Requirements, Architecture, Frontend, Backend, QA, and Deployment.
|
Selbst gehostetes Mail-Archiv-System. Go-Backend + Next.js-Frontend + PostgreSQL + Xapian.
|
||||||
|
|
||||||
## Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
- **Framework:** Next.js 16 (App Router), TypeScript
|
- **Backend:** Go 1.23, CGO, Xapian (Volltext-Index)
|
||||||
- **Styling:** Tailwind CSS + shadcn/ui (copy-paste components)
|
- **Frontend:** Next.js 16 (App Router), TypeScript, Tailwind CSS, shadcn/ui
|
||||||
- **Backend:** Supabase (PostgreSQL + Auth + Storage) - optional
|
- **Datenbank:** PostgreSQL (pgx/v5)
|
||||||
- **Deployment:** Vercel
|
- **Deployment:** On-Premise (192.168.1.131), Systemd
|
||||||
- **Validation:** Zod + react-hook-form
|
- **Auth:** JWT (httpOnly Cookie), bcrypt Cost 12
|
||||||
- **State:** React useState / Context API
|
|
||||||
|
|
||||||
## Project Structure
|
## Projektstruktur
|
||||||
|
|
||||||
```
|
```
|
||||||
|
cmd/archivmail/ CLI-Einstiegspunkt + Subkommandos
|
||||||
|
config/ YAML-Konfiguration
|
||||||
|
internal/
|
||||||
|
api/ HTTP-API + Handler
|
||||||
|
audit/ Audit-Log (PostgreSQL + Flat-File)
|
||||||
|
auth/ JWT-Authentifizierung
|
||||||
|
imap/ IMAP-Import, Scheduler, Store
|
||||||
|
index/ Xapian-Wrapper (CGO), Async Worker
|
||||||
|
smtpd/ Eingebetteter SMTP-Daemon
|
||||||
|
storage/ AES-256-GCM Dateispeicher + PostgreSQL-Metadaten
|
||||||
|
userstore/ Benutzerverwaltung
|
||||||
|
pkg/mailparser/ RFC-2822 Parser, MBOX-Splitter
|
||||||
src/
|
src/
|
||||||
app/ Pages (Next.js App Router)
|
app/ Next.js Seiten (/, /search, /mail/[id], /admin, /imap)
|
||||||
components/
|
components/ UI-Komponenten (shadcn/ui)
|
||||||
ui/ shadcn/ui components (NEVER recreate these)
|
hooks/ useAuth
|
||||||
hooks/ Custom React hooks
|
lib/ api.ts, auth-cache.ts
|
||||||
lib/ Utilities (supabase.ts, utils.ts)
|
|
||||||
features/ Feature specifications (PROJ-X-name.md)
|
|
||||||
INDEX.md Feature status overview
|
|
||||||
docs/
|
|
||||||
PRD.md Product Requirements Document
|
|
||||||
production/ Production guides (Sentry, security, performance)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development Workflow
|
## Build & Deploy
|
||||||
|
|
||||||
1. `/requirements` - Create feature spec from idea
|
|
||||||
2. `/architecture` - Design tech architecture (PM-friendly, no code)
|
|
||||||
3. `/frontend` - Build UI components (shadcn/ui first!)
|
|
||||||
4. `/backend` - Build APIs, database, RLS policies
|
|
||||||
5. `/qa` - Test against acceptance criteria + security audit
|
|
||||||
6. `/deploy` - Deploy to Vercel + production-ready checks
|
|
||||||
|
|
||||||
## Feature Tracking
|
|
||||||
|
|
||||||
All features tracked in `features/INDEX.md`. Every skill reads it at start and updates it when done. Feature specs live in `features/PROJ-X-name.md`.
|
|
||||||
|
|
||||||
## Key Conventions
|
|
||||||
|
|
||||||
- **Feature IDs:** PROJ-1, PROJ-2, etc. (sequential)
|
|
||||||
- **Commits:** `feat(PROJ-X): description`, `fix(PROJ-X): description`
|
|
||||||
- **Single Responsibility:** One feature per spec file
|
|
||||||
- **shadcn/ui first:** NEVER create custom versions of installed shadcn components
|
|
||||||
- **Human-in-the-loop:** All workflows have user approval checkpoints
|
|
||||||
|
|
||||||
## Build & Test Commands
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run dev # Development server (localhost:3000)
|
# Backend (CGO + Xapian zwingend erforderlich)
|
||||||
npm run build # Production build
|
CGO_ENABLED=1 go build -tags xapian -buildvcs=false -o archivmail ./cmd/archivmail/
|
||||||
npm run lint # ESLint
|
|
||||||
npm run start # Production server
|
# Frontend
|
||||||
|
npm run build # .next/standalone/ für Produktion
|
||||||
|
|
||||||
|
# Auf Server deployen
|
||||||
|
bash update.sh # oder: curl ... | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
## Product Context
|
## Konventionen
|
||||||
|
|
||||||
@docs/PRD.md
|
- **Commits:** `feat(PROJ-X): ...`, `fix(PROJ-X): ...`, `chore: ...`
|
||||||
|
- **Feature-IDs:** PROJ-1, PROJ-2, … (nächste freie: PROJ-20)
|
||||||
|
- **shadcn/ui:** Keine Custom-Versionen installierter Komponenten
|
||||||
|
- **Kein Supabase, kein Vercel** – reines On-Premise-Deployment
|
||||||
|
|
||||||
## Feature Overview
|
## Wichtige Konfiguration (Server)
|
||||||
|
|
||||||
@features/INDEX.md
|
```
|
||||||
|
/etc/archivmail/config.yml Hauptkonfiguration
|
||||||
|
/etc/archivmail/keyfile AES-256 Schlüssel (32 Bytes, nie committen)
|
||||||
|
/var/archivmail/store/ Verschlüsselter E-Mail-Speicher
|
||||||
|
/var/archivmail/xapian/ Xapian-Index
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dienste (Systemd)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status archivmail # Go-Backend (Port 8080 + 2525)
|
||||||
|
systemctl status archivmail-web # Next.js-Frontend (Port 3000)
|
||||||
|
journalctl -u archivmail -f
|
||||||
|
```
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ai-coding-starter-kit",
|
"name": "archivmail",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "AI Coding Starter Kit with AI Agent Team System for Claude Code",
|
"description": "Selbst gehostetes Mail-Archiv-System",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
Reference in New Issue
Block a user