Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Sistema web modular de Shop Floor / MES para a indústria de manufatura eletrônica Enterplak. Digitaliza e centraliza processos antes feitos em planilhas Excel, Google Forms, Google Apps Script e Looker Studio. Em uso em produção, multi-setor, com arquitetura preparada para crescer. Produção: https://shopfloor.enterplak.com.br (AWS).README 전문 보기 ↗
Sistema web modular de Shop Floor / MES para a indústria de manufatura eletrônica Enterplak. Digitaliza e centraliza processos antes feitos em planilhas Excel, Google Forms, Google Apps Script e Looker Studio. Em uso em produção, multi-setor, com arquitetura preparada para crescer.
Produção: https://shopfloor.enterplak.com.br (AWS).
lucide-react, toasts sonner, temas next-themes@xyflow/react) — canvas do Fluxo de Processosxlsx) — importação de planilhas no clientegoogleapis, @aws-sdk/client-s3) — fotos (configurável via FOTOS_STORAGE; produção usa Drive)qrcode — QR Code da folha da caixa · jose — token do SSO do Portal RwTechtools/repinmetro-conector/): Node.js + pg (node-postgres) + fetch nativoMonólito modular por feature. O domínio é TypeScript puro (sem dependência de Supabase/Next), o que o torna testável e portável.
src/
app/ # rotas Next (App Router) — entrega
modules/<feature>/
domain/ # regras de negócio (TS puro, testado)
application/ # casos de uso / Server Actions finas
infra/ # repositórios (Supabase)
shared/ # design system, clients Supabase, utilidades
supabase/migrations/ # schema versionado (SQL)
deploy/aws/ # deploy na AWS (script, nginx, bootstrap do RDS, checklists)
tools/ # utilitários fora da app (ex.: conector Repinmetro)
docs/ # specs, planos, operação e histórico
Autorização é decidida no banco (RLS) a partir de perfis com permissões granulares por módulo; a UI apenas reflete. Toda mutação relevante gera um log imutável (auditoria).
| Produção | Dev | Demo | |
|---|---|---|---|
| App | shopfloor.enterplak.com.br (AWS Lightsail, pm2 + nginx) | localhost:3000 e previews da Vercel por branch | Vercel (branch main) |
| Banco | Supabase self-hosted + Amazon RDS | Supabase cloud (projeto Dev) | Supabase cloud (projeto antigo, com cópia dos dados reais) |
As credenciais ficam em arquivos locais e fora do git (.env.local, .env.*.local). Nunca vão
pro repositório.
Pré-requisitos: Node.js 20+, um projeto Supabase.
npm install
cp .env.example .env.local # preencha com as chaves do seu projeto Supabase
npm run dev # http://localhost:3000
npm test # testes
npm run lint
npm run build # build de produção
.env.local)# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Armazenamento de fotos: supabase (default) | r2 | drive
FOTOS_STORAGE=supabase
# Google Drive (quando FOTOS_STORAGE=drive)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REFRESH_TOKEN=
GOOGLE_DRIVE_FOLDER_ID=
# Cloudflare R2 (quando FOTOS_STORAGE=r2) — API compatível com S3
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET=
# SSO do Portal RwTech
RWTECH_SSO_SECRET=
RWTECH_SITE_ID=
Lista de referência em
.env.example. O conector Repinmetro tem o próprio.envemtools/repinmetro-conector/(não é o.env.localda app).
NEXT_PUBLIC_*é embutido no build: mudou a URL do Supabase, precisa buildar de novo.
main. O push gera um preview na Vercel apontando pro
banco Dev.main.psql (a senha é digitada, nunca colada em chat ou arquivo);docker compose restart rest na pasta do Supabase;cd ~/ShopFloor && ./deploy/aws/deploy.sh (pull → npm ci se as dependências
mudaram → build → pm2 restart; se o build falhar, o app antigo continua no ar).As migrations em supabase/migrations/ são a fonte da verdade do schema, numeradas em ordem.
No Dev podem ir pelo SQL Editor do Supabase ou pela CLI (supabase db push); na produção (RDS),
por psql. Depois de criar ou alterar tabela/função, recarregar o schema do PostgREST
(notify pgrst, 'reload schema' ou reiniciar o container rest).
O primeiro usuário nasce com perfil Consulta; promova-o a Administrador seguindo
docs/operacao/primeiro-admin.md.
docs/migracao-aws.md e deploy/aws/docs/regras-de-negocio-shopfloor.mddocs/visao-tecnica.md, docs/divida-tecnica.mddocs/estudo-escalabilidade.md, docs/plano-performance-2a-leva.mddocs/superpowers/specs/, docs/superpowers/plans/docs/operacao/docs/historico/tools/repinmetro-conector/: lê a origem com usuário read-only, sync
incremental por marca d'água, roda agendado na máquina do banco. Ver o README.md da pasta.