serverless-qrcode-hub 開源活碼工具,讓微信群入群連結永久有效

serverless-qrcode-hub 是跑在 Cloudflare Workers 的開源活碼工具,實測官方示範站 235 個條目與 190 個微信活碼:永久的是短網址,QR Code 仍每 7 天過期,換碼收斂到單一管理員後台,零第三方連線,代價是單密碼安全邊界。

用 AI 摘要這篇文章:

用 README 上公開的示範密碼登入作者自己的後台,看到的是一個正在真實運轉的服務:235 個條目、其中 190 個是微信入群活碼、累積 3,880 次造訪。我在這個後台建了一條測試短網址,302 轉址到指定網站成功,換錯密碼則被擋在門外。但同一趟實測也看到最關鍵的事實:其中一個活碼頁面上,微信自己的提示寫著這張入群碼 7 天內有效、重新進入會更新。

這就是 serverless-qrcode-hub 的真實樣貌。它是一套跑在 Cloudflare Workers 上的開源工具(Apache-2.0 授權,截至 2026 年 9 月有 1,858 顆星、807 個 fork),解決的問題只有一個:微信群的入群 QR Code 會不斷失效,印在海報上、貼在社群裡的連結跟著報廢。它給你的承諾寫著「永久」,而實際上永久的是那條短網址,QR Code 本身仍然會過期,只是換圖的工作被收斂到一個人的後台。想直接看別人怎麼用,可以先玩作者的示範站,密碼就放在 README 裡。

實測打開的東西:從登入到刪除的完整一圈

示範站在 qrdemo.2020818.xyz,這是 README 掛名的官方示範站,登入只需要一組管理密碼,沒有帳號、沒有驗證碼。整個過程我走了完整一圈。

serverless-qrcode-hub 示範站登入頁,只有一組管理密碼輸入欄Pin
登入頁只有一組管理密碼,沒有帳號系統,這就是它全部的安全邊界。

登入後的第一屏是儀表板,六個數字卡片:總條目 235、啟用中 232、即將到期 0、已過期 4、微信 QR Code 190、累積造訪 3,880 次。往下滑是兩欄式的新增介面,左邊上傳 QR Code 圖片,右邊填表單,下方是條目清單,每一列都看得到自己的造訪次數和最後造訪時間,能搜尋、排序、篩選狀態,也有匯入匯出和批次刪除。

serverless-qrcode-hub 示範站管理後台儀表板,顯示 235 個條目與 190 個微信活碼Pin
官方示範站的管理後台:235 個條目、190 個微信活碼、累積 3,880 次造訪,是作者本人真實維運中的實例。

後台的資料介面另外回傳一份造訪次數前五名清單,內容比任何介紹文都真實。造訪冠軍是一個寵物食品試吃社團,累積 393 次;第二名是手作丸子店的配送群,177 次;後面跟著大學社團的招新諮詢群和 TEDx 活動的現場討論群,分別是 170 和 131 次。可以看到兩種典型用途:一種是電商取貨和售前諮詢這種天天有人掃的營運型群組,另一種是招新和活動這種季節性爆量的場合,後者正是海報印出去就改不了的痛點。

我建了一條指向 techmoon.xyz 的測試短網址,儲存後立刻用瀏覽器直接打那條網址,拿到的就是標準的 302 暫時轉址,位置正是我填的目標。用錯誤密碼登入會收到 401 錯誤碼,管理 API 在沒有登入的情況下也一律擋下。編輯既有條目、停用、改目標網址都從同一張表單操作,測完我把那條測試項目刪除,後台恢復原狀。

一般短網址只是這套工具的一半功能。另一半是「活碼」:一條固定不變的短網址,背後掛著一張會被管理員定期更換的 QR Code。示範站上 190 個條目屬於這一類。入群碼會過期這件事對這類社群是最痛的:新生季印出去的海報,兩個月後掃出來是失效碼,而重新印一波海報的成本遠比換一張圖高。

活碼是怎麼運作的:固定的是連結,換掉的是圖

把機制拆開看,這套工具做的事其實很薄,但薄得很準確。

管理員在後台上傳微信群入群碼的截圖。瀏覽器裡的 ZXing 解碼器會把圖片裡的網址讀出來,讀不出來就自動換前處理再試一次,總共有原圖、二值化、反相三種,專門應對手機截圖裡常見的雜訊和深色模式。解出來的網址填進目標欄,原始截圖本身則以資料的形式一起存進資料庫。如果解出來的網址開頭是微信的網域,系統會自動把它標成微信模式,換成別的網址就當成一般短網址處理。

訪客打開短網址時拿到的不是轉址,而是一頁乾淨的說明頁:社團名稱、一行公告文字、那張 QR Code,以及一行提示。頁面每次都是現拿現組,不留快取,所以管理員換完圖的下一個訪客看到的就是新碼,不需要等快取到期。公告和提示文字管理員都可以自訂,2026 年 3 月的更新把這兩段開放成富文字編輯,支援粗體、清單和連結,後端只放行白名單標籤,貼進什麼腳本都會被剝掉。也就是說,資料從管理員上傳到訪客看到,中間沒有任何第三方服務。

關鍵在過期這件事。微信入群碼的效期是微信自己決定的,從示範站的活碼頁就能看到微信原生的提示,寫明這張碼 7 天內有效、重新進入會更新。任何第三方工具都改變不了這個上游規則,這套工具也沒有嘗試去改。它的解法是把更新成本集中:QR Code 快過期時,管理員截一張新的圖上傳,儲存的那一瞬間,同一條短網址背後就是新的入群碼。印在海報上的連結、發在社群裡的網址、貼在粉絲頁的按鈕,全部不用動。

serverless-qrcode-hub 活碼公開頁,卡片內顯示微信群 QR Code 與七天效期提示Pin
訪客打開短網址看到的活碼頁。QR Code 下方是微信原生的效期提示:這張碼 7 天內有效、重新進入會更新。

把話講精確:入口不會壞,會壞的只有那張圖,而壞掉的時候不再需要所有人重印重貼。工具的預設提示文字也承認這件事,寫的是請聯絡作者更新。每一筆條目還能設定到期日,到期前 3 天會在後台標記即將過期,過期的條目會顯示一頁到期說明而不是死連結,被停用的條目則直接回 404,過期超過 30 天的資料由每天一次的自動清理工作刪掉,清理排在世界標準時間凌晨兩點,對應台灣時間的上午十點。

還有一個管理面的事實要知道:到期前工具不會主動通知你。待辦清單上的到期郵件通知一直沒有實作,自動檢查只負責在後台標狀態和清理資料,也就是說,唯一會告訴你「碼壞了」的,是掃了碼卻進不了群的訪客。管理員要嘛自己在日曆上記週期,要嘛把後台的即將到期欄位當每週功課看。這是整套工作流裡最脆弱的一環,而它不在程式碼裡,在你的行事曆裡。

另外有個容易錯過的小功能:後台可以把短網址本身生成一張樣式過的 QR Code,圓角、點陣花紋、可疊微信圖示,樣式偏好會記在瀏覽器裡,下次打開還在。這是拿去印刷用的,把這張漂亮的碼印上活動海報,它指到的永遠是那條可換圖的短網址,而不是某一天會失效的入群碼。短網址名也有保護機制,登入、管理這類系統保留字不能拿來當短網址,避免有人把你的管理頁蓋掉。

資料放在誰家:零外連的單人後台

自架工具最該問的問題是資料流向。這裡的答案乾淨得出奇。

我把整包原始碼抓下來逐檔看過:後端那一支檔案裡沒有任何對外請求,前端的管理頁、登入頁、解碼器、樣式庫全部打包在自己的靜態檔案裡,沒有掛任何公開 CDN,也沒有分析或統計服務。整個資料流只有三個角色:訪客的瀏覽器、你自己的 Worker、你自己的 D1 資料庫。QR Code 截圖以資料的形式存在資料庫裡,每一次造訪會加一次計數並記下時間,僅此而已,這些紀錄留在你自己的資料庫,管理介面裡看得一清二楚。它甚至附了一個把全站設為不可索引的 robots.txt,預設就不讓搜尋引擎進來爬你會員的入群頁。

安全模型是另一回事,這裡要誠實地講清楚。整套系統只有一組管理密碼,沒有帳號體系,登入介面也沒有次數限制,想試密碼的人可以一直試。登入後發放的憑證是一個固定值的簽章,秘密來源依序是環境變數裡的自訂金鑰、管理密碼,如果兩個都沒設,就退回程式碼裡寫死的一段文字,等於人人都能算出你的管理憑證。憑證本身不會隨每次登入換新,瀏覽器收到的 cookie 標了 24 小時效期、禁腳本讀取、同站嚴格,但簽章值在密碼改掉之前都有效。換句話說,部署的時候一定要設密碼,而且要設得夠長,README 也確實建議用兩段隨機產生的字串接起來用。對一個班級社團等級的用途,這個模型堪用;如果你的短網址會掛在流量大的公開場合,就要意識到單密碼加固定憑證是你自己要扛的邊界。

介紹文章講的 KV 已經是上一代:三天後就換成 D1 的儲存引擎

網路上流傳的介紹文章多半寫這套工具基於 Cloudflare Workers 加 KV 儲存。這個說法在 2025 年 3 月 18 日文章刊出的那天是對的,但三天後就不是了。

看 git 歷史可以對得很齊:倉庫建立於 2025 年 3 月 14 日,介紹文章 3 月 18 日刊出,3 月 21 日作者提交了改用 D1 的版本,並把 KV 時代的說明書另存成舊版文件。作者自己給的理由很直白,KV 的免費額度太少,D1 的 500 萬次每日讀取夠用。照 Cloudflare 現行文件,D1 免費層每天 500 萬列讀取、10 萬列寫入;這套工具每次造訪至少寫入一列計數,所以真正的天花板其實是寫入額度,換算下來每天大約能承受十萬次等級的造訪,對中小型社群是綽綽有餘的數字。真要逼近額度,後台的累積造訪數字會先說話,你會知道該升級了。

舊版用戶要搬家只能手動來,作者提供的遷移指南就是打開新舊兩個後台對著複製貼上,微信條目建議重新上傳一次。如果你照著舊文章的 KV 教學走,裝到的是作者明說不建議再用的舊版。

順帶一提,倉庫裡的部署設定檔直接附了作者自己的 D1 資料庫編號,README 的安裝步驟要求你換成自己的。807 個 fork 裡,有人改完設定後一鍵送出了對原作者倉庫的合併請求,這類沒有內容的請求目前掛著四個。fork 數將近星數的四成半,這個比例本身就說明了使用形態:大家 fork 不是為了改程式,是為了部署一份自己的。

集中限制:停在 2026 年 3 月的開發與全簡體的介面

誠實攤開面,這套工具有幾個明確的邊界。

開發停在 2026 年 3 月 7 日,最後一輪功能改動是介面優化和自訂提示,補完說明文件後就停了。對一套功能已經完整的小工具,停擺本身不等於不能用,Apache-2.0 的授權也讓任何人可以接手維護,但倉庫的正式版本標記停在 2025 年 3 月,之後的更新都只在主分支上,跟著 fork 按同步才拿得到。待辦清單上還掛著到期郵件通知、訪問統計、多租戶、多語系、多平台支援等項目,都還是願望清單狀態。

問題區的狀況更直接:作者在開著的問題下只答覆過一則,其餘全部靜默。包括 2026 年 3 月有人回報短網址在微信內建瀏覽器打不開,2025 年 9 月有人回報 iOS 裝置頁面反覆轉址後顯示異常,2026 年 6 月有人問網址裡的符號被二次轉換怎麼解,都停在原地。這三個問題和你相關與否取決於你的受眾:受眾在微信裡打開連結、用 iPhone 進站的比例越高,風險越大,因為沒有人會替你修。

介面是全簡體中文,沒有繁中或英文,登入頁、後台、訪客看到的活碼頁都一樣。預設的頁面模板和圖示也以微信為中心,公告預設文案寫的是請長按辨識。機制本身其實平台無關,任何輪替的入群碼或一般網址都放得進去,只是整個介面的話術不會替你換。在台灣,跨境社團、台商家族群、留學生社群這類微信群都常見,這個工具的場景直接成立;若你只是要短網址,它照樣能用,後台文字看習慣就好。

部署需要一個 Cloudflare 帳號,照官方流程是 fork 倉庫、在儀表板把 Worker 連到你的 fork、換上自己的資料庫編號,全程圖形介面。README 提醒預設發的 workers.dev 網域在中國大陸訪問較慢,建議綁自己託管的網域;從台灣連 workers.dev 沒有這層顧慮,但自有網域在品牌和可信度上仍然比較好看。倉庫裡有 14 步附截圖的安裝教學,不需要寫程式,需要的是一點耐心和一個願意定期換圖的管理員。

自架前先過三個前提

你的情況適合嗎原因
經營微信社群,入群碼改版就要重發連結適合正是這工具的核心場景,換圖收斂到後台一分鐘
想要一套零月費、資料在自己帳號裡的短網址服務適合免費額度對中小流量夠用,且無任何第三方追蹤
願意掛個 Cloudflare 帳號並照文件點一輪設定適合部署全程圖形介面,不需要寫程式
期待 QR Code 自動更新、零維護不適合換碼仍然是人工的,忘記換就失效
需要多人協作、分權限的後台不適合只有單一管理密碼,沒有帳號體系
介面必須是繁中或英文不適合全簡體,沒有多語切換

和商業活碼服務放在一起看,分界線也很清楚。付費方案收月費,換掉的是有人替你守著效期這件事;自架這套換到的是零月費加資料自主,代價是行事曆上多一條週期。判斷的標準只有一個:你的社群有沒有那個每週願意花一分鐘的人。有,這套工具就把問題解掉了;沒有,再好的工具也撐不過第一次忘記換碼。

把它放回工具箱裡看,這是同類需求裡少見的乾淨樣本:Apache-2.0 可以放心商用和修改,程式碼薄到一個下午可以讀完,資料邊界一眼看得完。同場加映的短網址功能讓它不只綁在微信上,任何需要固定入口的場合都能用,例如活動頁輪替或印刷品上的長連結。若你要的只是把一張固定網址變成 QR Code,不需要換圖,那一般的 QR Code 產生器條碼產生工具 就夠了;若你考量的是整套自架服務的組裝,也可以看看 自架服務的 Docker 模板庫 怎麼把同類工具收進自己的機器。

一句話收尾:它賣的是入口的永久,不是圖片的永久。願意每七天花一分鐘換一張圖的人,換到的是海報上永遠不用重印的連結;不想做這件事的人,問題不在工具,在需求本身。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1449

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...