Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Next.js (App Router, TypeScript, Tailwind) + Supabase (Postgres, Auth, Storage). Dieses Grundgerüst ist der Start für die neue, modulare Version von MyImmo. 1. Fundament ← du bist hier: Datenmodell + Next.js-Gerüst + Auth + Portfolio-Übersicht 2. Kernverwaltung: Objekte, Einheiten, Mieter, Mietverträge anlegen & bearbeiten 3. Dokumente: Mahnung, Kündigung, Anschreiben als PDF generieren + an Mieter mailen 4. Betriebskosten: Abrechnung hochladen → OCR → Positionen pro Mieter → Nebenkostenabrechnung → mailen 5. Bewertung: Bodenrichtwerte + Marktdaten → laufende Neubewertung des Portfolios查看完整 README ↗
Next.js (App Router, TypeScript, Tailwind) + Supabase (Postgres, Auth, Storage). Dieses Grundgerüst ist der Start für die neue, modulare Version von MyImmo.
# 1. Abhängigkeiten installieren
npm install
# 2. Umgebungsvariablen anlegen
cp .env.local.example .env.local
# NEXT_PUBLIC_SUPABASE_URL und NEXT_PUBLIC_SUPABASE_ANON_KEY eintragen
# (Supabase Dashboard > Project Settings > API)
# Projekt: kozhxrvyilkchjpcuwcm
# 3. Dev-Server starten
npm run dev
# → http://localhost:3000
⚠️ Die Datenbank existiert bereits und enthält echte Daten (9 Objekte, 6 Mieter, Buchungen). Kein Schema einspielen.
supabase/schema.sqlist veraltet; die tatsächliche Struktur steht insupabase/schema-reference.sql.
properties, mieter, einnahmen, kosten, kredite,
verbrauch, notizen, termine, ibans. Besitzspalte überall user_id.auth.uid() = user_id — jeder Vermieter sieht nur
seine eigenen Daten. Diese App setzt beim Anlegen user_id automatisch./login).NEXT_PUBLIC_*-Variablen unter Settings > Environment Variables
eintragen.main deployt automatisch.app/
layout.tsx Layout + Navigation + Abmelden
page.tsx Portfolio-Übersicht
login/page.tsx Login / Registrierung
auth/signout/route.ts Logout
properties/ Objekte: Liste, /new, /[id]/edit
tenants/ Mieter: Liste, /new, /[id]/edit
globals.css
components/
PropertyForm.tsx Objekt-Formular
TenantForm.tsx Mieter-Formular
lib/
supabase/client.ts Supabase-Client (Browser)
supabase/server.ts Supabase-Client (Server)
actions/properties.ts Server Actions (create/update/delete)
actions/tenants.ts Server Actions (create/update/delete)
types.ts TypeScript-Typen (= echtes Schema)
middleware.ts Session-Refresh
supabase/
schema-reference.sql Doku des bestehenden Schemas (nicht ausführen)
properties (Objekt) ← mieter (über prop_id)
einnahmen · kosten · kredite · verbrauch · notizen · termine · ibans
(alle mit prop_id → properties.id)
Jede Zeile gehört genau einem Vermieter (user_id = auth.uid()),
abgesichert per Row-Level-Security.
mieter_positionen — id, user_id, mieter_id → mieter, bezeichnung, betrag,
umlageschluessel, jahr, umlagefaehig, created_at. RLS: auth.uid() = user_id.
Per Migration add_mieter_positionen angewendet — bestehende Daten unberührt.
Hinweis zur Bewertung: Bodenrichtwerte gibt es offiziell über die BORIS-Portale der Bundesländer. Vergleichspreise aus Immobilienportalen sind nicht frei/legal per API verfügbar — diese Phase bewusst später planen.