Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Open-source SQL data checks for PostgreSQL: write read-only checks, run them on a schedule, and hear about it where your team works when something changes.
Live demo: https://assay.majincheng.com (try it as a guest, or sign in with Google or GitHub; new accounts are viewers)
A check is a read-only SQL query whose returned rows are problems: duplicate orders, payments that do not match, stock below zero. Assay runs checks on a schedule and keeps each one's state:
DATABASE_URL is the built-in database; admins can add more PostgreSQL databases (connection strings encrypted, private hosts refused unless allowed) and each check picks the one it runs against.Next.js (App Router) · TypeScript · Tailwind CSS · MongoDB (checks, runs, users) · PostgreSQL (the databases being checked) · Upstash Redis (cache, rate limits) · Better Auth (Google, GitHub) · Vitest and Playwright. Exact versions are in package.json.
npm install
cp .env.example .env.local # fill in MongoDB, PostgreSQL, Redis, Better Auth and one OAuth provider
npm run seed:demo # optional: a demo schema and sample checks
npm run dev
Sign in once, then make yourself admin: npm run user:set-role -- [email protected] admin.
npm run dev:services starts MongoDB, PostgreSQL and Redis (with Upstash's
REST protocol) from compose.yaml, so development needs no cloud accounts.
Point .env.local at them:
MONGODB_URI=mongodb://127.0.0.1:27017/assay_dev
DATABASE_URL=postgresql://postgres:[email protected]:5432/assay_demo
UPSTASH_REDIS_REST_URL=http://127.0.0.1:8079
UPSTASH_REDIS_REST_TOKEN=local
BETTER_AUTH_SECRET=local-development-only-not-a-secret
APP_URL=http://localhost:3000
AUTH_DEV_PASSWORD_LOGIN=true # email and password sign-in, next dev only
AUTH_DEV_PASSWORD_LOGIN removes the need for a Google or GitHub app
locally; production refuses it.
Scheduled runs need something to call POST /api/cron/run-scheduled every
30 minutes (QStash, any cron, or npm run sql:run-scheduled); see
docs/deployment.md.
| docs/architecture.md | Layers, how a check runs, data sources, API conventions |
| docs/engineering.md | Invariants, public contracts, hotspots, verification |
| docs/database.md | Collections, fields, indexes, retention, concurrency |
| docs/authentication.md | Sign-in and roles |
| docs/notifications.md | Alert channels, delivery, setup |
| docs/mcp.md | Connecting agents (OAuth or API key), tools, security |
| docs/deployment.md | Configuration, scheduled runs, first deploy, smoke test, rollback |
| docs/backup-restore.md | MongoDB backups and restore |
| docs/secret-rotation.md | Rotating or recovering ASSAY_SECRET_KEY |
| docs/roadmap.md | Open reliability goals |
| DESIGN.md | Design tokens, components, the brand mark |
npm run typecheck && npm run lint && npm test # before every commit (see AGENTS.md)
npx knip && npm run build # before a pull request (CI runs both)
src/
├── app/ # routes: pages and API
├── components/ # UI
├── contracts/ # request and response types shared by server and client
├── domain/ # pure rules: runs, alerts, digests, reminders
├── lib/ # infrastructure: config, logging, auth, database clients, SQL validation
└── server/ # services, repositories, notifications, MCP
scripts/ # CLI entry points and migrations
docs/ # engineering docs
Issues and pull requests are welcome: see CONTRIBUTING.md. Report security problems privately, as SECURITY.md describes.
Apache License 2.0. Copyright 2025-2026 Jincheng Ma; see NOTICE and THIRD_PARTY_NOTICES.md.
| scripts/README.md | Command-line tools and migrations |
/docs in the app | User guide (English and Chinese) |