Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This project was created with Better-T-Stack, a modern TypeScript stack that combines Next.js, Hono, and more.
Three applications — a website, an admin and the API behind both — sharing one typed contract. See docs/ARCHITECTURE.md for how they fit together.
apps/web | The public website | http://localhost:3001 |
apps/admin | The admin | http://localhost:3002 |
apps/server | The API | http://localhost:3000 |
packages/core | Types, validation and publishing rules, shared by all three | |
packages/db | Drizzle schema, migrations and the seed | |
packages/ui | Design tokens and the components the site and its previews share |
packages/uiFirst, install the dependencies:
pnpm install
This project uses PostgreSQL with Drizzle ORM.
Make sure you have a PostgreSQL database of your own — on your machine, in
Docker, or a development branch on Neon. Never production: the seed
below rewrites every content table and --samples deletes every real
enquiry, booking and customer.
Update your apps/server/.env file with that database's connection details.
Fill in the Cloudflare R2 variables — every photograph is stored in and served
from that bucket. apps/server/.env.example explains each one.
Apply the schema, then seed it from the website's own content:
pnpm run db:migrate
pnpm run db:seed -- --samples # --samples adds example enquiries and bookings
Seeding is destructive for content and idempotent: it rewrites every content
table from apps/web/src/content/*. It leaves enquiries, bookings and
customers alone unless you ask it not to — and --samples does ask: it
clears them before adding the examples.
It runs only against a database on your machine (or a local container). For
any other host it stops and says so; to rewrite a remote development
database on purpose, name its host:
SEED_DATABASE_HOST=<host> pnpm run db:seed.
The seed writes bucket addresses for the site's own photography. To put the files themselves in the bucket (once, or again to fill a gap):
cd apps/server
bun run scripts/migrate-media-to-r2.ts # says what it would do
bun run scripts/migrate-media-to-r2.ts --apply # does it
Then, run the development server:
pnpm run dev
Open http://localhost:3001 in your browser to see the web application. The API is running at http://localhost:3000.
React web apps in this stack share shadcn/ui primitives through packages/ui.
packages/ui/src/styles/globals.csspackages/ui/src/components/*packages/ui/components.json and apps/web/components.jsonRun this from the project root to add more primitives to the shared UI package:
npx shadcn@latest add accordion dialog popover sheet table -c packages/ui
Import shared components like this:
import { Button } from "@CC-City-Chauffeurs/ui/components/button";
If you want to add app-specific blocks instead of shared primitives, run the shadcn CLI from apps/web.
CC-City-Chauffeurs/
├── apps/
│ ├── web/ # Frontend application (Next.js)
│ └── server/ # Backend API (Hono)
├── packages/
│ ├── ui/ # Shared shadcn/ui components and styles
│ ├── auth/ # Authentication configuration & logic
│ └── db/ # Database schema & queries
pnpm run dev: Start all applications in development modepnpm run build: Build all applicationspnpm run dev:web: Start only the web applicationpnpm run dev:server: Start only the serverpnpm run check-types: Check TypeScript types across all appspnpm run db:push: Push schema changes to databasepnpm run db:generate: Generate database client/typespnpm run db:migrate: Run database migrationspnpm run db:studio: Open database studio UI