๐ ้่ฐงๆธฉๆถฆใๆฏซ็ง็ดๅบ โโ ๅบไบ Cloudflare Workers + D1 + R2 + Hono ๆๅปบ็็ฐไปฃๅ Serverless ่พน็ผๅๅฎข็ณป็ปใ
Deploy to Cloudflare Workers License: MIT Release Cloudflare Workers Hono Database TypeScript
English ยท ็ฎไฝไธญๆ
ๅ ผๅ ท้ๆๅๅฎข็ ้ถ็ปดๆคใ้ถๆๅกๅจๆ็งใๅ จ็ CDN ่พน็ผๆฏซ็ง็ดๅบ,ไธๅจๆๅๅฎข็ ๅจ็บฟๅๅฐ็ฎก็ใๅฎๆถๅๅธใ9ๅฅ็ฒพ้ๅคๅคไธ็ฐไปฃไธป้ขๅณๆถๆข่คใFTS5 ๅ จๆๆฃ็ดขใ็ตๅจๅ่จ้ๅฅไธไธ้ฎๅไบซ ่ฝๅใ
๐ ็บฟไธๆผ็คบ DEMO:https://note.0000996.xyz
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Cloudflare Global Edge Network โ
โ (300+ Cities Worldwide) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
[ HTTPS Request ]
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Cloudflare Worker Runtime (Hono Framework) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Edge SSR HTML โ โ FTS5 Search API โ โ Admin SPA Auth โ โ RSS/XML โ โ
โ โ (Zero-Flicker) โ โ (Title+Content) โ โ (JWT HMAC-256) โ โ Sitemap โ โ
โ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโฌโโโโโโ โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโ
โ โ โ โ
โผ โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Cloudflare D1 (Serverless SQLite) โ โ Cloudflare R2 (Storage) โ
โ - posts / categories / tags / links / settings โ โ - Uploaded Images โ
โ - posts_fts (FTS5 Full-Text Search Virtual Table) โ โ - Zero Egress Fees โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅพๅคๅผๅ่ ๆ ๅฟ Serverless ไผๅ ไธบ็ฌ่ซๆๅท้ไบง็ๆๅค่ดฆๅใForestBlog ๅ ๅ่ฟ่กๅจ Cloudflare ๆฐธไน ๅ ่ดน้ขๅบฆ ๅ ,ไธๆฏๆๅจๆงๅถๅฐ่ฎพ็ฝฎ่ถ ้ๆฆๆช,ๅฎ็ฐ็ๆญฃ็ 100% ้ถ่ดฆๅ้ฃ้ฉ:
| Cloudflare ๆๅก้กน | ๅฎๆนๅ ่ดน้ขๅบฆ (Free Tier) | ไธชไบบๅๅฎขๆๅๅฎ้ ๆถ่ไผฐ็ฎ | ่ดน็จๅคๅฎ |
|---|---|---|---|
| Workers ่ฏทๆฑๆฐ | 100,000 ๆฌก / ๅคฉ (300 ไธๆฌก/ๆ) | ็บฆ 3~10 ไธๆฌก / ๆ | ๐ข ๅฎๅ จๅ ่ดน (ๅ ้ขๅบฆ <3%) |
| D1 SQL ่ฏปๅ | 5,000,000 ่ก / ๅคฉ (1.5 ไบฟ่ก/ๆ) | ็บฆ 100~300 ไธ่ก / ๆ | ๐ข ๅฎๅ จๅ ่ดน (ๅ ้ขๅบฆ <2%) |
| D1 SQL ๅๅ ฅ | 100,000 ่ก / ๅคฉ (300 ไธ่ก/ๆ) | ไธป่ฆๆฏ้ ่ฏปๆฐ่ชๅขไธๅๆ | ๐ข ๅฎๅ จๅ ่ดน (ๅ ้ขๅบฆ <2%) |
| D1 ๅญๅจๅฎน้ | 5 GB | 1,000 ็ฏ้ฟๆ็บฆ 15 MB | ๐ข ๅฎๅ จๅ ่ดน (ๅ ้ขๅบฆ <0.3%) |
| R2 ๅฏน่ฑกๅญๅจ | 10 GB ๅญๅจ + 1000 ไธๆฌก/ๆ่ฏปๅ | ๅๅฎข้ ๅพ็บฆ 500 MB~2 GB | ๐ข ๅฎๅ จๅ ่ดน + 0 ๅบ็ฝๆต้่ดน |
| TLS ่ฏไนฆ & CDN | ่ชๅจ็ญพๅๆณๅๅ SSL + ๅ จ็ Anycast CDN | ่ชๅจ็ปญๆ,ๆ ้กปไบบๅทฅ่ฟ็ปด | ๐ข 0 ่ฟ็ปด่ดน็จ |
ๆธฉๆถฆ็บธ่ดจ่ดจๆ,ๆธ ๆฐ็็ป่ฎกๅก็ใๅ็ฑปๅฏผ่ชใ็ฒพ้ๆ ็ญพใๅๆ ้พๆฅไธ็ฝฎ้กถๆ ่ฏใ ้ฆ้กต้ข่ง
็นๅปๅณไธ่ง
๐จ ้ ่ฒ้ๆถๅๆข:ๆ็ฏๆ่ฎฐ (Akari Vintage ยท ้ป่ฎค)ใๅคๅคๆฅๅ (Parchment Retro)ใๆๆจไธญๅค (Caramel Antique)ใๆฃฎ็ณปๆธฉๆถฆใ่ฝๆจฑๅ้ฃใๅฎๆฒปๆน่ถใๆ้ๆทฑ่ใGeist ๆๅฎขใ่ตๅๆทฑๅคใๅๅฅฝๆฌๅฐๆไน ๅ่ฎฐๅฟ,ๆฏๆ่ท้็ณป็ปๆทฑ่ฒๅๅฅฝ,้ฆๅฑ้ถ้ช็ใ ไธป้ขๅๆข้ข่ง
้กถ้จๅนณๆป้ ่ฏป่ฟๅบฆๆกใไปฃ็ ้ซไบฎไธ้ฎๅคๅถใๆ็ซ ็ฎๅฝๆบ่ฝ่ทณ่ฝฌใๅพ็็นๅป็ฏ็ฎฑๆพๅคงไธๆ็ซ ไธ้ฎๅคๅถๅไบซใ ๆ็ซ ้ ่ฏป้ข่ง
้ๅฏนๆๆบ็ซฏๆทฑๅบฆ่ฐไผ,ๆฝๅฑๅผๅฏผ่ชๆ ใ่ช้ๅบ่กจๆ ผๆจชๅๆปๅจใๆฌๆตฎไธ้ฎๅๅฐ้กถ้จ,ๅฐๅฑๅน้ ่ฏปไฝ้ช็ปไฝณใ ็งปๅจ็ซฏ้ข่ง
| ๆจกๅ | ็นๆงไบฎ็น |
|---|---|
| โก ่พน็ผๆธฒๆ (Edge SSR) | Cloudflare Workers ๅ จ็ 300+ ่พน็ผ่็น็ดๅบ HTML,้ฆๅฑ TTFB < 45ms,SEO ๆไฝณใ |
| ๐จ 9ๅฅ็ฒพ่ฐไธป้ข | ๅ ็ฝฎๆ็ฏๆ่ฎฐ (่ดๆฌ Akari ๆธฉๆๆๅธ)ใๅคๅคๆฅๅใๆๆจไธญๅคใๆฃฎ็ณปใ่ฝๆจฑใๆน่ถใๆทฑ่ใGeist ๆๅฎขใ่ตๅๆทฑๅค,ๆฏๆๅฎๆถๆ ๅทๅๆขไธ็ณป็ปๆทฑ่ฒ่ช้ๅบใ |
| ๐ ๅ จๆๅณๆถๆฃ็ดข | ๅบไบ SQLite FTS5 ๅ
จๆ็ดขๅผ + LIKE ๆททๅๅๆจกๅผๆ,ๆฏๆ Ctrl + K ๅฟซๆท้ฎ็ฌ้ด่ฐๅบๆ็ดขๅผน็ชใ |
| ๐ ๅผ็ฎฑๅณ็จๅๅฐ | ่ฎฟ้ฎ /admin/ ๅณๅฏ็ฎก็ๆ็ซ ใๅ็ฑปใๅ้พไธๅ
จ็ซ้
็ฝฎ,ๅ
็ฝฎ Markdown ๅทฅๅ
ทๆ ไธ็ฝฎ้กถ/่็จฟๅผๅ
ณใ |
| ๐ฌ ็ตๅจๅ่จ้ๅฅ | ้กถๆ ้ๆ็ฒพ้ๆๅญฆ/ๅฒๆๅ่จๅบ,ๆฏๆ็นๅป/ๅทๆฐๅณๆถๅผๅธๅๆข,ๅ ๆปกๆฐๅญ่ฑๅญไบบๆๆฐๆฏใ |
| ๐ผ๏ธ ๅพ็็ฏ็ฎฑ & ไปฃ็ ้ซไบฎ | ๆ็ซ ๅ ๅพ็ๆฏๆ็นๅปๆพๅคง้ข่ง (Lightbox),ไปฃ็ ๅ้ๆ Prism ่ฏญๆณ็่ฒไธไธ้ฎๅคๅถไปฃ็ ใ |
| ๐ฑ ๅ จ็ซฏๅๅบๅผ | ๆๆบ็ซฏไธๅฑๆฑๅ ก่ๅๆฝๅฑๅฏผ่ช,้กถ้จๅนณๆป้ ่ฏป่ฟๅบฆๆกไธๆฌๆตฎๅๅฐ้กถ้จๆ้ฎใ |
| ๐ก ๆ ๅ็ๆ | ๅ็่พๅบ RSS 2.0 ่ฎข้
ๆบ (/rss.xml)ใๆ็ดขๅผๆ Sitemap (/sitemap.xml) ไธ OpenGraph ็คพไบคๅก็ใ |
| ๐พ ๆฐๆฎ่ชไธปๆๆง | ๅๅฐๆฏๆไธ้ฎๅฏผๅบๅ จ็ซๆฐๆฎไธบๆ ๅ JSON ๅคไปฝ,้ๆถ่ฟ็งปๆ ็ปๅฎใ |
ๅช้็นๅปไธๆนๆ้ฎ,Cloudflare ไผๅผๅฏผไฝ ่ชๅจ Fork ๆฌไปๅบๅนถๅฎๆ่พน็ผ Worker ้จ็ฝฒ:
- ็นๅปไธๆน Deploy with Workers ๆ้ฎใ
- ็ปๅฝไฝ ็ Cloudflare ่ดฆๅท,ๆ็ ง็ฝ้กตๆๅผๆๆ GitHub ๅนถ Fork ๆฌ้กน็ฎใ
- ๅจ Cloudflare ๆงๅถๅฐไธบๅ
ถ็ปๅฎไธไธช D1 ๆฐๆฎๅบ(ๅ็งฐ:
forest-blog-db)ใ - ๅจ D1 ๆงๅถๅฐ็ Console ไธญ็ฒ่ดดๆง่กๆฌ้กน็ฎๆ น็ฎๅฝ็
schema.sqlๅณๅฏๅฎๆๅๅงๅ!
- Fork ไปๅบ:็นๅปๆฌ้กน็ฎๅณไธ่ง Fork,ๅ ้ไธไปฝๅฐไฝ ่ชๅทฑ็ GitHub ่ดฆๅทไธใ
- ็ปๅฝ Cloudflare:่ฟๅ ฅ Cloudflare ๆงๅถๅฐใ
- ๅๅปบ D1 ๆฐๆฎๅบ:
- ๅฏผ่ชๅฐ Storage & Databases โ D1 SQL Database โ Create databaseใ
- ๆฐๆฎๅบๅ็งฐ่พๅ
ฅ
forest-blog-db,ๅๅปบๅฎๆๅ่ฟๅ ฅ Consoleใ - ๅฐๆฌ้กน็ฎ
schema.sql็ๅ ๅฎนๅคๅถ็ฒ่ดด่ฟๅปๅนถ็นๅป Execute ๆง่กๅๅงๅใ
- ่ฟๆฅ Git ้จ็ฝฒ:
- ๅฏผ่ชๅฐ Compute (Workers & Pages) โ Create Application โ Pages โ Connect to Gitใ
- ้ๆฉๅๆ Fork ็
forest-blogไปๅบ,็นๅป Begin setupใ - ๅจ Settings โ Bindings ไธญๆทปๅ D1 ๆฐๆฎๅบ็ปๅฎ(Variable name:
DB,็ปๅฎๅๆๅๅปบ็forest-blog-db)ใ
- ็นๅป Save and Deploy:็ญๅพ 10 ็งๅณๅปไธ็บฟ!
# 1. ๅ ้ไปฃ็ ๅนถๅฎ่ฃ ไพ่ต git clone https://github.com/shali10/forest-blog.git cd forest-blog npm install # 2. ๅๅปบ Cloudflare D1 ๆฐๆฎๅบๅนถๅๅงๅ่กจ็ปๆ npx wrangler d1 create forest-blog-db # ๅฐ่พๅบ็ database_id ๅกซๅ ฅ wrangler.toml npm run db:init:remote # 3. ไธ้ฎๅๅธไธ็บฟ npm run deploy
๐ก ่ฎพ็ฝฎๅๅฐๅญๆฎ:
npx wrangler secret put ADMIN_PASSWORD npx wrangler secret put JWT_SECRET
JWT_SECRETๅฏ็จopenssl rand -hex 32็ๆใๅฝๅ็ๆฌๆช้ ็ฝฎ่ฟไธคไธช Secret ๆถไผๆ็ปๅๅฐ็ปๅฝ,ไธๆไพๅ ฌๅผ้ป่ฎคๅฏ็ ใ
forest-blog/
โโโ .github/
โ โโโ workflows/
โ โโโ deploy.yml # GitHub Actions ่ชๅจๅ CI/CD ้จ็ฝฒ
โโโ docs/
โ โโโ images/ # ้ซๆธ
ๆๆๅพไธไธป้ขๅฑ็คบ
โโโ src/
โ โโโ index.ts # Hono ่ทฏ็ฑๅ
ฅๅฃไธ SSR ๆ่ฝฝ
โ โโโ auth.ts # HMAC-SHA256 Token ็ญพๅ้ดๆ
โ โโโ db.ts # D1 ๆฐๆฎๅบไบคไบไธ FTS5 ๆฃ็ดข้ป่พ
โ โโโ markdown.ts # Markdown ่งฃๆใ็ฎๅฝ TOC ๆๅไธไปฃ็ ้ซไบฎ
โ โโโ routes/
โ โ โโโ admin.ts # ็ฎก็ๅๅฐ APIใMarkdown ๅทฅๅ
ทๆ ไธๆฐๆฎๅฏผๅบ
โ โ โโโ api.ts # ๅ
ฌๅผ REST APIใRSS ไธ Sitemap
โ โโโ theme/
โ โโโ styles.ts # 6 ๅฅ่ฐ่ฒ็ CSS ๅ้ใ่ฟๅบฆๆกไธๆ็ฎๆ ทๅผ
โ โโโ views.ts # Edge SSR ้กต้ขๆจกๆฟ (้ฆ้กต/ๆ็ซ /ๅฝๆกฃ/ๅ้พ/404)
โโโ schema.sql # D1 ๆฐๆฎๅบ็ปๆไธๅๅงๅๆฐๆฎ
โโโ wrangler.toml # Cloudflare Workers ้จ็ฝฒ้
็ฝฎ
โโโ package.json
โโโ tsconfig.json
ๆฌ้กน็ฎๅบไบ MIT ๅ่ฎฎ ๅผๆบ,ๆฌข่ฟ่ช็ฑ Forkใไฟฎๆนไธๅไบซ!