Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
MobiTed is a Bulgarian marketplace for car and vehicle classifieds: cars, SUVs, vans, trucks, motorcycles, caravans, campers, agricultural and construction machinery, trailers, parts, tyres and wheels. The interface is in Bulgarian and every price is in EUR.
It is a full product, not a mockup. Accounts, listings, images, search, favorites, saved searches, dealers, messaging, moderation and admin all keep their data in PostgreSQL. Paid promotions use a built-in demo payment provider. It needs no keys and never contacts a payment network.README 전문 보기 ↗MobiTed is a Bulgarian marketplace for car and vehicle classifieds: cars, SUVs, vans, trucks, motorcycles, caravans, campers, agricultural and construction machinery, trailers, parts, tyres and wheels. The interface is in Bulgarian and every price is in EUR.
It is a full product, not a mockup. Accounts, listings, images, search, favorites, saved searches, dealers, messaging, moderation and admin all keep their data in PostgreSQL. Paid promotions use a built-in demo payment provider. It needs no keys and never contacts a payment network.
src/styles/globals.csssharp for validation and resizingSee docs/architecture.md for the design decisions.
corepack enable)pg_trgm extension. Docker Compose is provided.git clone <repository> mobited && cd mobited
pnpm install
cp .env.example .env # set AUTH_SECRET; DATABASE_URL already matches Docker Compose
docker compose up -d postgres # or point DATABASE_URL at your own PostgreSQL
pnpm db:migrate
pnpm db:seed
pnpm dev
Open http://localhost:3000.
pnpm db:seed creates these accounts. They are for development only and the password for all of them is MobiTed123!.
| Role | |
|---|---|
[email protected] | Super admin (all settings) |
[email protected] | Admin |
[email protected] | Moderator |
[email protected] | Dealer, owner of "Авто Сердика" |
[email protected] | Private user |
The seed also adds about 800 listings, 8 dealers, around 100 private sellers, favorites, conversations, reports and demo payments. It uses a fixed random seed, so every run produces the same content, but database ids change on every run: restart a running app server after reseeding. Seed listings use illustrated placeholder photos, which are generated by /media/demo/*.
If RESEND_API_KEY is not set, emails are not sent. Instead, each email is printed to the server log and saved to a development mailbox at http://localhost:3000/dev/poshta. Registration works the same way: open the mailbox and click the verification link. The mailbox is turned off in production.
If BLOB_READ_WRITE_TOKEN is not set, development uploads are saved to ./.uploads and served from /media/uploads/*. Production always uses Vercel Blob.
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | yes | PostgreSQL connection string. On Neon or Supabase, use the pooled connection string. |
AUTH_SECRET | yes in production | Secret for sessions and tokens (openssl rand -base64 32) |
BLOB_READ_WRITE_TOKEN | yes in production | Vercel Blob token for image uploads |
APP_URL | no | Public base URL. On Vercel it is taken from the deployment URL. |
RESEND_API_KEY, EMAIL_FROM | no | Email delivery. Without them, emails are logged and stored in the dev mailbox. |
CRON_SECRET | recommended in production | Protects /api/cron/maintenance |
MOBITED_SKIP_EMAIL_VERIFICATION | no | 1 turns off email verification while no email provider is configured. New accounts are created as verified. |
Payments need no environment variables.
| Command | Description |
|---|---|
pnpm dev | Development server |
pnpm build / pnpm start | Production build and server |
pnpm lint | ESLint and the long-dash check |
pnpm typecheck | TypeScript |
pnpm test | Vitest unit and integration tests. Uses the mobited_test database, created automatically. |
pnpm test:e2e | Playwright end-to-end tests. Builds the app and uses a freshly seeded mobited_e2e database. |
pnpm db:generate | Generate a migration after changing src/db/schema |
pnpm db:migrate | Apply migrations |
pnpm db:setup | Apply migrations and fill empty reference tables (regions, categories, makes). Production-safe; Vercel runs it on every build. |
pnpm db:seed | Replace all data with the demo dataset. Refuses to run with NODE_ENV=production. |
pnpm db:reset | Drop all tables, then migrate and seed |
pnpm db:studio | Drizzle Studio |
pnpm test # unit + integration (needs PostgreSQL reachable with the DATABASE_URL credentials)
pnpm test:e2e # end-to-end
Both suites connect as the mobited user and need permission to create databases, which the Docker Compose user has. To use other databases, set TEST_DATABASE_URL or E2E_DATABASE_URL. To run E2E against a server that is already running, set E2E_BASE_URL=http://localhost:3000; this uses the data that server already has. If Playwright's bundled Chromium is not installed, run pnpm exec playwright install chromium or set PLAYWRIGHT_CHROMIUM_EXECUTABLE.
MobiTed is built for Vercel: no custom server, no local disk and no long-running processes. See docs/vercel-deployment.md.