Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Space

English | 繁體中文 | 簡體中文

CI

以 Astro 與 Cloudflare Workers 建立的雙語內容發佈系統,提供公開筆記、文章、 人工審閱選輯,以及只限部署者使用的內容管理介面。

公開網站 · 健康檢查 · 文檔 · 版本記錄 · Releases

本 repository 的專案自有軟件及相關技術文件依 GNU AGPL v3.0 only 提供。品牌、使用者/部署者資料與第三方內容不在 授權範圍內;詳見 授權範圍

專案定位

Personal Space 是一個單一部署者管理的全端發佈網站。公開讀者無需登入即可瀏覽 內容、搜尋、分類、標籤、月份封存、RSS feeds 及 sitemap;草稿、媒體、來源、修訂 與發佈工作則留在受保護的 Studio。

這不是純靜態模板。Astro 產生 Cloudflare 相容的 server output,Worker 處理動態 頁面、API 與可選排程事件,Workers Static Assets 提供建置後資產,D1 與私人 R2 分別保存部署者自己的應用資料和媒體。

目前狀態

項目 狀態 可核對資料
公開閱讀 可用 網站 · 健康檢查
管理介面 單一部署者、Cloudflare Access 保護 安全政策
Source v0.8.0main 持續整合 package.json · CHANGELOG.md
GitHub Release v0.8.0 最新 Release
部署模型 Cloudflare Workers + Static Assets + D1 + R2 自部署指南

本地 build、CI、preview、GitHub Release 與 production 是不同證據;完整定義見 專案狀態

主要功能

  • 公開筆記與長篇文章的列表、詳情及閱讀時間;
  • 全文搜尋、時間動態、分類、標籤與月份封存;
  • Notes、Articles、Editions 的獨立 RSS feeds,以及 sitemap;
  • 草稿、預覽、發佈、排程、封存及修訂工作流;
  • 經驗證的圖片上載與受控媒體回應;
  • 可選的 RSS/Atom 來源擷取、人工審閱及 Edition 發佈;
  • 響應式公開介面與 Studio;
  • 對未發佈內容、私人媒體及受保護路由採取 fail-closed 行為。

不在目前範圍內:多租戶、公開帳戶、公開投稿、訂閱、付款,以及 runtime 生成式 AI。完整產品邊界見 專案概覽

架構摘要

flowchart LR
  Reader[Public reader] --> Worker[Cloudflare Worker]
  Owner[Operator] --> Access[Cloudflare Access]
  Access --> Studio[Protected Studio]
  Studio --> Worker
  Cron[Cron Triggers] --> Worker
  Worker --> Assets[Workers Static Assets]
  Worker --> D1[(D1)]
  Worker --> R2[(Private R2)]
Loading
範疇 技術 責任
Application Astro、TypeScript 頁面、API、server output 與介面
Runtime Cloudflare Workers 動態請求、API 及排程事件
Static delivery Workers Static Assets CSS、SVG 及其他建置資產
Data Cloudflare D1 部署者自己的內容及應用資料
Media Cloudflare R2 部署者自己的私人媒體物件
Access Cloudflare Access + 應用層 owner 核對 保護 Studio 及寫入操作
Quality ESLint、Prettier、Astro check、Vitest 格式、靜態分析、型別及測試

套件的固定版本以 package.jsonpackage-lock.json 為準。

快速開始

需求:Node.js 22.22.3 或以上、npm 10 或以上。

npm ci
npm run db:migrate:local
npm run dev

如需在 loopback 環境測試 Studio,可先建立只含虛構值的本機設定:

cp .dev.vars.example .dev.vars

完整檢查與 built-Worker 預覽:

npm run check
npm run preview

各指令、目錄責任與測試策略見 開發指南。 讀者與 Studio 的完整內容流程見 使用指南

自行部署摘要

部署會修改你的 Cloudflare 帳戶。執行遠端步驟前,請先閱讀完整的 Cloudflare 自部署指南,並確認你有權使用本程式碼。

  1. 以自己的 Cloudflare 帳戶建立全新的 D1 database 與私人 R2 bucket。
  2. 複製公開範本至已被 Git 忽略的 wrangler.self-host.jsonc
  3. 只在該私人設定填入自己的資源名稱與 identifiers;不要修改 binding 名稱。
  4. 執行本地 migration、npm run check、私人設定 build 與 Wrangler dry-run。
  5. --remote 對全新 D1 套用 migration,再部署至 workers.dev 測試網址。
  6. 設定 Cloudflare Access、應用程式 secrets,以及 /studio 和相關 API 的保護。
  7. 核對公開頁、受保護路由、D1、R2、logs 與 Git 狀態後,才連接自訂 domain。

Repository 不保存 production secrets、真實內容、Cloudflare resource identifiers、 Access 設定、logs 或備份。它也沒有提供會略過這些核對的一鍵部署流程。

Repository 導覽

位置 內容
src/pages 公開頁面、Studio 頁面及 API routes
src/components 共用公開與 Studio 介面元件
src/server 認證、發佈、來源、feeds、媒體與 HTTP 邊界
src/worker.ts Cloudflare Worker fetch/scheduled 入口
migrations 可重建空白環境的版本化 D1 migrations
tests 使用合成資料的單元與邊界測試
examples 不含 production 資料的 Markdown 範例
docs 目前說明與歷史設計/交付記錄

文檔

文件 用途
文檔索引 目前文檔、歷史記錄與閱讀順序
專案概覽 產品範圍、架構、資料責任與技術棧
使用指南 公開閱讀、Studio、內容、媒體與 Editions
介面設計系統 色彩角色、版面、元件、responsive 與可存取性
開發指南 本地環境、指令、測試與貢獻流程
自部署指南 Workers、D1、R2、Access、domain 及 rollback
驗證指南 隔離本機、production 唯讀及 release QA
專案狀態 版本、成熟度與證據定義
安全政策 私人漏洞回報與部署安全要求
更新記錄 公開安全的版本變更摘要

貢獻、支援與安全

  • 一般錯誤或功能建議:使用 GitHub Issues
  • 開始較大改動前:先閱讀 貢獻指南 並建立 issue 對齊範圍。
  • 安全問題:依 安全政策 使用 Private vulnerability reporting, 不要建立公開 issue。

Issue、PR、截圖與 logs 都不得包含 secret、真實內容、私人資料、Cloudflare identifiers 或本機絕對路徑。

版權與使用權

Copyright © 2026 kyeunga25.

專案自有軟件、測試、建置腳本及相關技術文件依 AGPL-3.0-only 提供。透過網絡提供修改版本時須留意 AGPL 第 13 節 的相應原始碼義務。品牌、使用者/作者/部署者內容與資料、私人設定及第三方材料 均不包含在授權內。請閱讀 LICENSING.mdCOPYRIGHT.mdTHIRD_PARTY_NOTICES.md

About

Astro + Cloudflare Workers 雙語內容發佈系統,提供公開筆記、文章、選輯與受保護 Studio。 / Bilingual publishing app with a protected operator Studio.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages