Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Sistema operacional empresarial da Intercert: processos, pessoas e resultados em um só lugar.
Translation pending
BusinessGitHub @martinsphilippesOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Aplicação web construída com Next.js (App Router), TypeScript, Tailwind CSS e Supabase (Postgres + Auth), publicada na Vercel.
| Serviço | Recurso | Observação |
|---|---|---|
| GitHub | martinsphilippes/interos | Branch padrão main. CI roda lint, typecheck e build. |
| Vercel | Projeto interos, time martinsphilippes | Deploy automático a cada push. Funções em gru1 (São Paulo). |
| Supabase | Projeto interos (vqkpyjpwxsmsqfgpdjao, sa-east-1), Postgres + Auth | Schema versionado em supabase/migrations/. Dados só pelo servidor. |
npm install
cp .env.example .env.local # preencha Supabase, DATABASE_URL e SESSION_COOKIE_SECRET
npm run dev
Abra http://localhost:3000. A página inicial mostra o estado da configuração e /api/health retorna um JSON com o mesmo diagnóstico.
| Comando | O que faz |
|---|---|
npm run dev | Servidor de desenvolvimento |
npm run build | Build de produção |
npm run lint | ESLint |
npm run typecheck | Verificação de tipos sem emitir arquivos |
npm test | Testes unitários (vitest) |
npm run test:db | Testes de integração do banco (Postgres local, ver abaixo) |
npm run db:local | Aplica o schema num Postgres local (DATABASE_ADMIN_URL) |
npm run seed | Recria os dados de demonstração (apaga os da organização) |
Todas as chaves estão documentadas em .env.example. As variáveis NEXT_PUBLIC_* são embutidas no bundle do navegador em tempo de build, portanto:
DATABASE_URL, SESSION_COOKIE_SECRET, chaves de API privadas) fica sem o prefixo NEXT_PUBLIC_.interos (id, data jsonb), criadas por supabase/migrations/. O schema não é exposto pela Data API e tem RLS com acesso só para o papel interos_app, usado pelo servidor via DATABASE_URL (pooler, porta 6543). src/server/docdb.ts oferece a mesma API do Firestore Admin que o sistema usava.COLLECTIONS e crie uma migration com select interos.create_doc_table('<nome>');. Aplique no Supabase (painel → SQL Editor, CLI supabase db push ou MCP) antes do deploy.interos_session. Logins são geridos pelo INTEROS (Admin → Usuários) via funções SQL restritas.https://<domínio>/**, https://*-martinsphilippes.vercel.app/** e http://localhost:3000/** (links de redefinição de senha e retorno do login Microsoft).# Postgres 15+ rodando localmente
DATABASE_ADMIN_URL=postgres://[email protected]:5432/interos npm run db:local
echo 'DATABASE_URL=postgres://interos_app:[email protected]:5432/interos' >> .env.local
npm run seed
DATABASE_ADMIN_URL=postgres://[email protected]:5432/interos DATABASE_URL=postgres://interos_app:[email protected]:5432/interos npm run test:db
src/
app/ rotas (App Router)
api/health/ health check
lib/
supabase/ config validada + cliente de Auth do navegador (lazy singleton)
server/
db.ts, docdb.ts acesso a dados (somente servidor)
supabase/migrations/ schema do banco
.github/workflows/ CI
main.main publica em produção.