Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
SaaS multi-tenant de gestão agropecuária: rebanho, lavoura, prestação de serviço e financeiro, com agente de IA no WhatsApp como canal primário. Desenvolvido pela Pleno Digital; cliente/financiador do MVP: Da Mata Sementes LTDA. Produto: docs/tibe-prd.md · Specs por módulo: docs/specs/ · Documentação técnica navegável (arquitetura, schema, todos os endpoints, agente WhatsApp, guias): /docs no app.檢視完整 README ↗
SaaS multi-tenant de gestão agropecuária: rebanho, lavoura, prestação de serviço e financeiro, com agente de IA no WhatsApp como canal primário. Desenvolvido pela Pleno Digital; cliente/financiador do MVP: Da Mata Sementes LTDA.
Produto:
docs/tibe-prd.md· Specs por módulo:docs/specs/· Documentação técnica navegável (arquitetura, schema, todos os endpoints, agente WhatsApp, guias):/docsno app.Trabalhando no código? O contexto operacional completo está em
CLAUDE.md: invariantes, status dos módulos, armadilhas do ambiente e o mapa de onde cada coisa mora. Este README é só a porta de entrada.
Next.js 14 (App Router) · TypeScript · Tailwind CSS · Prisma 7
(@prisma/adapter-pg) · PostgreSQL 17 (Neon) · NextAuth v5 beta · Zod ·
Recharts · Redis Cloud + BullMQ · N8N (orquestração do agente WhatsApp) ·
Evolution API / WhatsApp Cloud API · Asaas (cobrança recorrente).
src/app/(public)/ páginas sem autenticação: home, planos, faq, políticas, docs, login, criar-conta
src/app/(dashboard)/ painel autenticado, uma pasta por módulo
src/app/plataforma/ painel interno da Pleno Digital: auth separada da de tenant
src/app/api/v1/ API de negócio (sessão obrigatória via guard())
src/app/api/platform/ API do painel da plataforma (guardPlatform())
src/app/api/internal/ rotas chamadas pelo N8N e pela Vercel Cron (secret no header)
src/app/api/webhooks/ rotas chamadas por serviços externos (Asaas: token no header)
src/lib/actions/ lógica de negócio pura (funções que recebem o client Prisma escopado)
src/lib/prisma.ts client Prisma + extension de isolamento multi-tenant
src/components/ componentes React, organizados por módulo
prisma/schema.prisma modelos em PascalCase, campos em snake_case
scripts/ testes de isolamento e regressão (via tsx, sem servidor)
.claude/rules/ regras por área, carregadas sob demanda pelo agente
npm install # roda "prisma generate" via postinstall
cp .env.example .env # preencha ao menos DATABASE_URL e NEXTAUTH_SECRET
npm run db:deploy # aplica as migrações
npm run db:seed # tenant Da Mata + owner + catálogo de vacinas
npm run dev # http://localhost:3000
docker run -d --name tibe-pg \
-e POSTGRES_PASSWORD=tibe -e POSTGRES_USER=tibe -e POSTGRES_DB=tibe_dev \
-p 55432:5432 postgres:17
⚠️ O .env deste projeto aponta para o Neon de produção; o .env.local,
quando existe, para o Docker, e o Next e as suítes o leem primeiro (ver o
CLAUDE.md). O Prisma CLI só lê o .env. Para rodar teste ou
migração localmente, passe a URL do Docker inline, com 127.0.0.1 (e não
localhost, que não resolve neste ambiente):
DATABASE_URL="postgresql://tibe:[email protected]:55432/tibe_dev?schema=public" npm run test:m1
Credenciais do seed (dev): [email protected] / tibe123. O tenant do seed
nasce sem TenantProfile, então o primeiro login cai no onboarding.
npm run check # conferência estática do repositório, sem banco
npm run build # build de produção (roda lint + tsc)
npm run test:isolation # isolamento multi-tenant (Módulo 0)
A lista completa de suítes está no package.json, e é ela que vale:
npm run check reprova qualquer comando citado na documentação que não exista
lá, além de caminho e rota que não existem mais.
tenant_id nunca vem do client: é sempre resolvido da sessão no servidor, e o
isolamento é implementado por uma Prisma Client Extension em
src/lib/prisma.ts, fonte única de verdade, validada por
testes automatizados.
A regra completa, com a lista justificada de cada exceção legítima, está em
.claude/rules/isolamento.md e em
/docs/arquitetura no app.
Passo a passo inicial (GitHub + Vercel + Neon) em
docs/deploy.md. A configuração de produção de hoje, com
todas as variáveis de ambiente e o cron de alertas, está em /docs/deploy no
app, mantido junto com o código.
Merge na main dispara deploy de produção: não há staging além dos previews de
PR, e a migração precisa ser aplicada antes do push.