ZeroSetup

讓你的 GitHub 專案
任何人雙擊就能跑

不用教使用者裝 Python、設 PATH、跑 pip install。
他們只需要 git clone,雙擊 setup.bat。

The Problem
你的使用者現在經歷的
1
在 GitHub 上看到一個好用的工具,點進去
2
README 說先安裝 Python 3.11
3
然後安裝 FFmpeg 並「加入系統 PATH」
4
然後 pip install -r requirements.txt
5
然後 python main.py
X
PATH 是什麼?pip 是什麼?我只是想用這個工具。算了,關掉。
90% 的人在第 2 步就離開了。你流失的不是沒興趣的人,是不會裝環境的人。
The Fix
你的 README 只需要兩行
ZeroSetup 讓你的專案從「5 步安裝教學」變成「雙擊就能用」。

Before

## 安裝步驟

1. 安裝 Python 3.11
2. 安裝 FFmpeg 並加入 PATH
3. git clone 本專案
4. cd my-project
5. pip install -r requirements.txt
6. python main.py

After

## 安裝步驟

git clone 本專案
雙擊 setup.bat

就這樣。
Python、FFmpeg、pip install
全部自動處理。
User Experience
使用者看到的
他們雙擊 setup.bat,看到這些。什麼都不用懂,等它跑完就好。
setup.bat
ZeroSetup ========= [Phase 1] Bootstrap... Installing Node.js... ← 自動裝 Node.js OK [Phase 2] Reading config... Found zerosetup.json [Phase 3] Installing dependencies... Installing Python... ← 自動裝 Python OK Installing FFmpeg.FFmpeg... ← 自動裝 FFmpeg.FFmpeg OK Running pip install... ← 自動裝 pip dependencies OK [Phase 4] Starting... Running: python main.py Service is healthy! ======================================== MyApp started! ======================================== URL: http://localhost:8000 Stop: run stop.bat
For Developers
你要做的事
只要一次,一行指令。之後使用者完全不需要碰 ZeroSetup。

1. Scan

對你的專案跑一次 init

npx zerosetup

2. Commit

它生成的三個檔案 commit 進去

zerosetup.json
setup.bat
stop.bat

3. Done

使用者 clone 你的專案,雙擊 setup.bat

git clone → setup.bat → done
Auto Detection
它怎麼知道你的專案需要什麼
不用手動填設定。掃描你的程式碼就知道了。

Runtime

package.json → Node.js
requirements.txt → Python

Framework

PM2 Express Next.js FastAPI Flask Django

Port

.env config.json .listen()

System Tools

掃原始碼找 ffmpeg cloudflared 自動加 winget

npm / pip

自動 npm installpip install

Start / Stop

根據 framework 決定啟動和停止指令

Real World
實測:CloudPipe
對一個真實專案(Node.js + PM2 + Cloudflare Tunnel)跑 init.js,自動偵測出:

cloudpipe / zerosetup.json

GitHub →
{ "name": "cloudpipe", "runtime": "node", // has package.json "entry": "index.js", // from pkg.main "port": 8787, // from .env PORT=8787 "health": "http://localhost:8787/health", "dependencies": { "winget": [ "cloudflare.cloudflared", // found "cloudflared" in source "FFmpeg.FFmpeg" // found "ffmpeg" in source ], "npm-global": ["pm2"], // has ecosystem.config.js "npm": true }, "scripts": { "start": "pm2 start ecosystem.config.js", "stop": "pm2 delete all" } }

讓你的使用者不再流失

對你的專案跑一行指令,從此任何人雙擊就能用。