尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Einfache, sichere und ruhige Rechnungserstellung für kleine bis mittelgroße Unternehmen.
Note: Der Brandname ist über die Umgebungsvariable
NEXT_PUBLIC_APP_NAMEkonfigurierbar.
Voraussetzungen: Docker, Supabase CLI, pnpm.
pnpm install
pnpm db:start # Postgres, Auth, REST, Storage, Studio, Mailpit in Docker
pnpm db:env # schreibt .env.local mit den Schlüsseln der lokalen Instanz
pnpm dev
Die App läuft auf http://localhost:3000. Anmelden mit dem Seed-Konto
[email protected] / Email123! — es hat Firma, Kontakte und Beispielrechnungen
(supabase/seed.sql).
Ports. Die lokale Instanz belegt bewusst 55320–55329 statt der Supabase-Standardreihe
54321–54329, damit sie neben anderen Supabase-Projekten laufen kann (siehe supabase/config.toml):
| Dienst | Port |
|---|---|
| API | 55321 |
| Postgres | 55322 |
| Studio | 55323 |
| Mailpit (Web) | 55324 |
Direktzugriff auf die Datenbank: postgresql://postgres:[email protected]:55322/postgres.
Ist einer der Ports bei dir belegt, ändere ihn in supabase/config.toml und passe
NEXT_PUBLIC_SUPABASE_URL in .env.local an.
Nützlich:
pnpm db:reset # Datenbank neu aufbauen: alle Migrationen, dann der Seed
pnpm db:stop # Container anhalten (Daten bleiben erhalten)
Mehrere Worktrees desselben Repos teilen sich diese eine Instanz — pnpm db:start meldet in
einem zweiten Worktree, dass sie schon läuft. Das ist gewollt, heißt aber: Ein db:reset wirkt
auf alle.
Dateien (PDF, XML, Logo) landen lokal im Bucket blitzrechnung von Supabase Storage, den die App
über dieselbe S3-Schnittstelle anspricht wie in Produktion Cloudflare R2. Die Werte stehen schon in
.env.local.example; die Schlüssel setzt pnpm db:env aus der laufenden Instanz ein — sie stehen
bewusst nicht im Repo. Nur der E-Mail-Versand braucht echte Zugangsdaten (AHASEND_*).
Orca. orca.yaml lässt jeden neuen Workspace scripts/orca-setup.sh ausführen: Es übernimmt
die .env.local aus dem Primary-Checkout (sonst die Vorlage) und installiert die Abhängigkeiten
mit der pnpm-Version aus packageManager in der package.json — dieselbe wie in CI und auf Vercel. Einmalig im
Primary-Checkout: pnpm db:env (und dort ergänzen, was nur dir gehört, etwa AHASEND_*). Die Datenbank startet das Skript nicht; es weist nur darauf hin, wenn sie nicht läuft.
supabase/migrations/ an (supabase link und supabase db push).env.local mit NEXT_PUBLIC_SUPABASE_URL und NEXT_PUBLIC_SUPABASE_ANON_KEY des Projekts anDie eigentliche PDF/ZUGFeRD-Generierung wird von einem separaten Service übernommen. Im MVP ist dies als TODO markiert in components/drafts/draft-editor.tsx.
Beim Finalisieren einer Rechnung:
blitzrechnung/
├── app/
│ ├── (app)/ # Geschützte Routen (erfordern Auth)
│ │ ├── drafts/ # Entwürfe
│ │ ├── invoices/ # Finalisierte Rechnungen
│ │ ├── customers/ # Kundenverwaltung
│ │ └── settings/ # Firmeneinstellungen
│ ├── login/ # Login-Seite
│ ├── signup/ # Registrierung
│ └── auth/ # Auth-Callbacks
├── components/
│ ├── drafts/ # Draft-Komponenten
│ ├── invoices/ # Invoice-Komponenten
│ ├── customers/ # Customer-Komponenten
│ └── settings/ # Settings-Komponenten
├── lib/
│ └── supabase/ # Supabase Client Utilities
├── types/ # TypeScript Types
└── supabase/
└── migrations/ # Datenbank-Migrationen
Private Projekt