Lab
實驗室
這裡是實際跑在我自己機器上的實驗與服務,不是規劃書。有些對外可以直接開,有些只有我自己連得上;狀態一律照現況寫,還沒上線的就寫還沒上線。
系統關聯圖
這張圖是從網域設定反推出來的:每一個對外的主機名都先經過 Cloudflare,才落到我機器上的某一個服務,沒有任何服務直接對外開埠。實線代表現在就在運行的路徑,虛線代表已經決定要做、但還沒開通的路徑。
圖比手機螢幕寬,可以在框線內左右滑動。
Legend
- 實線:已在運行
- 灰色虛線:規劃中
- 琥珀色虛線:尚未開通
- 實線外框:運行中
- 虛線外框:規劃中,尚未建立
- 琥珀色虛線外框:尚未對外,前置條件未完成
- 點線外框:保留名稱,這一階段不做
以下是同一張圖的文字版本,依層級列出每個節點的狀態與它連出去的目標。
- 第 1 層:訪客
- 訪客,狀態:運行中。連到 Cloudflare(已在運行)。
- 第 2 層:Cloudflare
- Cloudflare(Tunnel · Access · DNS),狀態:運行中。連到 boyanspace.com(已在運行)、www.boyanspace.com(規劃中)、staging.boyanspace.com(規劃中)、finance.boyanspace.com(尚未開通)、scan.boyanspace.com(尚未開通)、map.boyanspace.com(尚未開通)、api.boyanspace.com(規劃中)、status.boyanspace.com(規劃中)。
- 第 3 層:公開網域
- boyanspace.com(正式站),狀態:運行中。連到作品集靜態站(已在運行)。
- www.boyanspace.com(301 → 主網域),狀態:規劃中,尚未建立。沒有連出去的線。
- staging.boyanspace.com(Access 保護),狀態:規劃中,尚未建立。連到測試版(規劃中)。
- finance.boyanspace.com(尚未對外),狀態:尚未對外,前置條件未完成。連到 Personalized WorldMonitor(尚未開通)。
- scan.boyanspace.com(尚未開通),狀態:尚未對外,前置條件未完成。連到 repo 掃描器(尚未開通)。
- map.boyanspace.com(尚未開通),狀態:尚未對外,前置條件未完成。連到 kepler.gl(尚未開通)。
- api.boyanspace.com(保留),狀態:保留名稱,這一階段不做。沒有連出去的線。
- status.boyanspace.com(保留),狀態:保留名稱,這一階段不做。沒有連出去的線。
- 第 4 層:本機服務
- 作品集靜態站,狀態:運行中。連到 boyanspace-portfolio(已在運行)。
- 測試版,狀態:規劃中,尚未建立。連到 boyanspace-portfolio(已在運行)。
- Personalized WorldMonitor,狀態:尚未對外,前置條件未完成。連到 WorldMonitor fork(規劃中)。
- kepler.gl(分析工具),狀態:尚未對外,前置條件未完成。沒有連出去的線。
- repo 掃描器(gitleaks + trivy),狀態:尚未對外,前置條件未完成。沒有連出去的線。
- 第 5 層:原始碼
- boyanspace-portfolio(private),狀態:運行中。沒有連出去的線。
- WorldMonitor fork(尚未建立),狀態:規劃中,尚未建立。沒有連出去的線。
運行中的服務
每個服務都登記在專案的服務清單裡,這裡顯示的是可以公開的部分。
-
Boyan Space(正式站)
LIVE個人數位空間,Astro 靜態站
- Access
- 任何人可存取
- Tech
- Astro
- TypeScript
- Nginx
- Docker
- Cloudflare Tunnel
這個網站本身。建置產物是純靜態檔案,由本機的 Nginx 容器提供,經 Cloudflare Tunnel 對外,沒有任何服務直接對外監聽。原始碼 repo 目前是私有的,所以這裡沒有連結。
-
Boyan Space(測試站)
IN DEVELOPMENT作品集正式上線前的驗證環境
- Access
- 需登入授權(Cloudflare Access)
- Tech
- Astro
- Nginx
- Docker
- Cloudflare Access
還沒架好。本機容器可以用部署腳本起來,但 staging.boyanspace.com 這個子網域、tunnel 與 Cloudflare Access 都還沒建立,所以目前沒有對外網址。開通後只允許我自己的帳號登入,並且一律 noindex。
尚未開通對外網址
-
repo 掃描器
LOCAL ONLY掃 git repo 的洩漏密鑰、依賴漏洞與 SBOM
- Access
- 本機限定,未對外
- Tech
- gitleaks
- trivy
- Node
給一個 repo 網址,它會查 git 歷史裡的密鑰(含已經被後續 commit 刪掉的)、依賴套件的已知漏洞,並產出一份 SBOM。報告裡的密鑰一律遮蔽,只留規則名稱與位置。掃描器本身有回歸測試:餵它已知有問題的樣本,斷言它真的會叫——一個從沒發現過問題的掃描器,跟一個壞掉的掃描器,輸出長得一樣。目前只在本機。
本機限定
-
kepler.gl(自架)
LOCAL ONLY地理空間資料的視覺化探索工具
- Access
- 本機限定,未對外
- Tech
- kepler.gl
- deck.gl
- MapLibre
- Docker
上游是 MIT 授權的開源專案,我用它官方的 Dockerfile 釘在特定 commit 自己 build,不用來路不明的第三方 image。底圖走 CARTO,不需要任何 Mapbox 金鑰。資料全部留在瀏覽器裡,我的機器不保存任何上傳的檔案。目前只在本機,對外的授權存取入口還沒開通。
本機限定
原始碼 -
Personalized WorldMonitor
LOCAL ONLY個人化全球金融、新聞與市場監控介面
- Access
- 本機限定,未對外
- Tech
- TypeScript
- Vite
跑在我自己的機器上,由 systemd 監管,開機會自動起來。它是公開專案 koala73/worldmonitor 的 fork(AGPL-3.0-only),個人化修改還沒推上任何 remote,而且目前的 production build 會關掉那些修改。對外的授權存取入口正在設定中,設好之後只有我自己能登入,不是公開展示。
本機限定
作品說明
Registry
新增服務的規則
任何新服務上線前,都必須先在專案倉庫的服務清單裡登記:原始碼位置、對外主機名、存取模式、健康檢查、日誌查看方式,以及回滾步驟。欄位空著要寫明原因,不能省略。沒有登記完成就不上線 —— 這條規則的目的是讓半年後的我還知道每個東西怎麼救。