尚未检测到更新。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