MicroAI Paygate
AI 요청 결제 게이트웨이로 EIP-712 서명, 영수증 발행, 클라이언트 서명 검증 지원
PDF 청구서를 업로드하면 금액·기간·소비량을 추출해 전기·가스·수도·관리비를 월별로 관리
Subí tus facturas en PDF y Factura extrae montos, períodos y consumo. Controlá lo que gastás en luz, gas, agua y expensas de tu hogar, mes a mes.
금융TypeScript · CSSGitHub @irondsd온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Bill tracking app
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This repository contains the public website and publishing system for factura.uno. The signed-in product is a separate project, served from app.factura.uno.
/cms authoring and media interface, plus its CMS-only MCP API./probar, whose browser client sends bill samples to the app origin's API./app/*,
/api/mcp, and /api/oauth/* to the app origin.This repository does not contain the product dashboard, bill APIs, parser
engine, product MCP/OAuth implementation, private bill storage, or PWA runtime.
/sw.js is intentionally retained as a small retirement worker so browsers
that installed the former monolith can clear its share cache and unregister it.
Next.js 16 (App Router), React 19, Tailwind CSS 4, Drizzle ORM, Postgres, Auth.js, Recharts, React Email/Resend, and S3-compatible public CMS media storage.
Requires Bun and Docker.
git clone <your-fork-url> factura
cd factura
cp env.example .env.local
bun install
docker compose up -d
bun run db:push
bun run dev
The site runs at http://localhost:4000; the documented neighboring app runs at
http://localhost:4001.
For another device on the same local network, open http://<this-machine's-LAN-IP>:4000/cms.
In development, Next.js allows the private IPv4 addresses currently assigned to
this machine. Restart bun run dev if its LAN address changes. Email code
sign-in works from this URL. Google OAuth cannot redirect to an arbitrary LAN IP:
Google requires an exact registered callback URL and disallows private IP hosts.
For Google sign-in from other devices, use a stable HTTPS development hostname
with a registered Google callback, or forward port 4000 to this machine so the
other device opens http://localhost:4000/cms.
For the HTTPS option, route a development hostname you control to this server
through LAN DNS and an HTTPS reverse proxy (or a named tunnel). In .env.local,
set AUTH_URL and NEXT_PUBLIC_SITE_URL to that origin. Register
https://<development-host>/api/auth/callback/google in a separate development
Google OAuth client, and use that client's ID and secret locally. Production
configuration stays separate.
Email sign-in works locally without Resend: leave RESEND_API_KEY blank and the
one-time code is printed to the server console. Add Google OAuth credentials to
enable “Continue with Google.”
src/app/ public routes, login/logout, CMS routes, retained APIs
src/components/ marketing, editorial, demo, chart, and shared UI
src/cms/ CMS domain and public-media management
src/content-system/ content repository, rendering, validation, and metadata
src/db/ shared Drizzle schema
src/server/ identity, contact notifications, rate limits, CMS protocol
emails/ OTP and welcome React Email templates
scripts/ SEO audit, public datasets, CMS media, and DB utilities
Public articles are stored in Postgres and authored through /cms or the
factura-cms MCP server. Read src/content/AUTHORING.md before editing content.
Copy env.example to .env.local.
| Variable | Purpose |
|---|---|
DATABASE_URL | Shared Postgres connection string. |
NEXT_PUBLIC_SITE_URL | Canonical marketing origin. |
NEXT_PUBLIC_APP_URL | Canonical app origin used by links, redirects, and allowlists. |
AUTH_SECRET | Auth.js session secret. |
AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET | Google OAuth; optional in development. |
SESSION_COOKIE_DOMAIN | Production cookie domain shared with app.factura.uno. |
RESEND_API_KEY / EMAIL_FROM | OTP and welcome email delivery. |
TELEGRAM_BOT_TOKEN / TELEGRAM_CHANNEL_ID | Contact-form and optional sign-up notices. |
TELEGRAM_NOTIFY_SIGNINS | new by default, all, or off. |
CMS_MEDIA_S3_BUCKET / CMS_MEDIA_PUBLIC_ORIGIN | Public CMS media bucket and browser origin. |
S3_ENDPOINT / S3_REGION / S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY / S3_FORCE_PATH_STYLE | S3-compatible connection used by CMS media. |
NEXT_PUBLIC_AHREFS_ANALYTICS_KEY | Ahrefs Web Analytics site key; the tag loads only where it is set. |
The two public origin variables are deliberately distinct: one names this site and one names the app. Server-only and browser-visible code derive from the same pair, so links and security allowlists cannot drift.
bun run dev # development server on :4000
bun run build # production build
bun run start # serve the production build
bun run lint # ESLint
bun run typecheck # TypeScript
bun run test # Vitest
bun run audit:seo # audit built public SEO output
bun run db:push # push the shared Drizzle schema
bun run db:studio # inspect the shared database
bun run email # preview email templates on :3001
Public-data and CMS-media maintenance commands are listed in package.json.
MIT © Konstantin Mednikov