ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
ワインのAOP(原産地呼称)を地図で学ぶWebアプリ。TanStack Start + MapLibre GL JS + Cloudflare Workers/D1。 公開URL: https://wine.nibo.sh (カスタムドメイン)。Workers のデフォルトドメイン https://wine.niboshi.workers.dev でも動作する。 • ディレクトリ構成・アーキテクチャ・ドメインモデリングのルール: docs/architecture.md • デプロイ・環境構成: docs/deployment.md public/data/aop/*.geojson は INAO / EU PDO のオープンデータから生成する(生成物はコミット済み。データ更新時のみ再実行)。手順・データソース・再生成時の注意は docs/geodata.md を参照。 AOPのメタデータ(土壌・品種・生産者)は src/lib/wine/aops.json にあり、src/lib/wine/aop-schema.ts のスキーマで読み込み時に検証される。 This project uses Vitest for testing. You can run the tests with:README 전문 보기 ↗
ワインのAOP(原産地呼称)を地図で学ぶWebアプリ。TanStack Start + MapLibre GL JS + Cloudflare Workers/D1。
公開URL: https://wine.nibo.sh (カスタムドメイン)。Workers のデフォルトドメイン https://wine.niboshi.workers.dev でも動作する。
public/data/aop/*.geojson は INAO / EU PDO のオープンデータから生成する(生成物はコミット済み。データ更新時のみ再実行)。手順・データソース・再生成時の注意は docs/geodata.md を参照。
AOPのメタデータ(土壌・品種・生産者)は src/lib/wine/aops.json にあり、src/lib/wine/aop-schema.ts のスキーマで読み込み時に検証される。
To run this application:
bun install
bun --bun run dev
To build this application for production:
bun --bun run build
This project uses Vitest for testing. You can run the tests with:
bun --bun run test
This app uses Cloudflare D1 (the DB binding in wrangler.jsonc) to persist Better Auth data (users / sessions / OAuth clients) and the app's own domain data (learning progress, cellar records, credit ledger, etc.).
Create the D1 database:
bunx --bun wrangler d1 create wine-db
Copy the generated database_id into wrangler.jsonc, replacing 00000000-0000-0000-0000-000000000000, then regenerate Worker binding types:
bun run cf-typegen
Migrations are hand-written sequential SQL files under drizzle/ (0000_*.sql, 0001_*.sql, …). Drizzle ORM (src/db/schema.ts / src/db/auth-schema.ts) is the runtime query layer only — schema changes are authored by hand as the next numbered SQL file and applied with wrangler d1 migrations apply. drizzle-kit (db:generate / db:push / db:pull) is intentionally not used, since its tracking state does not include the Better Auth tables and could propose destructive diffs against the production DB. See CLAUDE.md for the schema-change workflow.
Apply migrations to the local D1 (run once initially and after every schema change, before bun run dev):
bun run db:migrate:local
Migrations are applied to the remote databases automatically on deploy — Cloudflare Workers Builds runs db:migrate:remote / db:migrate:preview after a successful build (see docs/deployment.md). To apply them manually against the production D1:
bun run db:migrate:remote
This project uses Biome for linting and formatting. The following scripts are available:
bun --bun run lint
bun --bun run format
bun --bun run check
Add components using the latest version of Shadcn.
pnpm dlx shadcn@latest add button
Authentication is handled by Better Auth. It requires a
BETTER_AUTH_SECRET in every environment — it signs session cookies and OAuth tokens.
Generate one with:
bunx --bun @better-auth/cli secret
Local: put it in .dev.vars as BETTER_AUTH_SECRET=... (see .dev.vars.example).
Production / Preview (Cloudflare Workers): set it as a secret so it is never committed:
bunx --bun wrangler secret put BETTER_AUTH_SECRET
bunx --bun wrangler secret put BETTER_AUTH_SECRET --env preview
wrangler secret put values are not emitted by wrangler types, so the binding is declared
for TypeScript in src/env-secrets.d.ts. If BETTER_AUTH_SECRET is missing, Better Auth falls
back to a built-in default and, with NODE_ENV=production, fails fast at startup.
For local OAuth/MCP verification, also set BETTER_AUTH_URL=http://localhost:3000 in .dev.vars (see .dev.vars.example).
このリポジトリの成果物は PolyForm Noncommercial License 1.0.0 の下で提供されます(SPDX: PolyForm-Noncommercial-1.0.0、原文: https://polyformproject.org/licenses/noncommercial/1.0.0)。
package.json / bun.lock に記載のもの)は各々のライセンスに従います。本リポジトリのライセンス設定とは無関係です。