- 逆向行駛 - https://520.be/ -

📚我把「明天再看」的地獄變成私人圖書館:⚡Linkwarden 深度開箱評測

🌟 你的書籤撐得過網站倒站潮嗎?Linkwarden 深度開箱評測:連結腐爛救星,還是資安未爆彈?

🔥 懶人包:
收藏了一篇好文章,半年後點開變成 404 Not Found?這就是「連結腐爛(Link Rot)」。開源工具 Linkwarden 專治這個病——存連結的同時,會把整個網頁拍成截圖、轉成 PDF、存成單一 HTML 檔,四種格式一次到位,宛如你自己的私人 Wayback Machine。截至 2026 年 7 月,這個專案已累積超過 19,000 顆 GitHub 星星1,100 萬次 Docker 下載,人氣不假。但今天要跟大家老實說:它同時也是一支貨真價實的「網路爬蟲」,過去曾爆出三個高危 CVE 漏洞,架設前你該知道的風險,這篇一次講清楚 🙆‍♂️

如果你的瀏覽器書籤列已經長到要捲三頁、Pocket 密碼早就忘記、Notion 收藏頁塞了 300 篇「之後再看」文章,這篇文章就是為你寫的 🧐

先說一個殘酷事實:網路內容並不是永久保存的。你今天收藏的教學文、深度分析、產品比較,明天可能就因為網站改版、部落客棄站、伺服器到期而消失,就像把重要便條紙貼在巷口早餐店的公佈欄上——早餐店哪天收掉了,便條紙也跟著不見,你根本沒有留底 🙅‍♂️

Linkwarden 想解決的正是這個問題,而且它的野心不只是「存網址」,而是「收藏一個連結的同時,也把這個連結當下的內容整個典藏下來」。接下來我們從專案本質、核心功能、資安真相到適用情境,把這款工具從裡到外拆解一遍 🤤

🌐 Github官方網址 ㊙️ [1]

[2]


🟦 🟦 🟦

內容目錄

📌 一、Linkwarden 是什麼?它不只是書籤工具,是一支「典藏型爬蟲」

💡 白話文教室:Linkwarden 就是你的私人 Wayback Machine
Wayback Machine 是網路上知名的公共網頁時光機,任何人都能查詢某個網站過去長什麼樣子。Linkwarden 的邏輯幾乎一樣,差別在於這台時光機完全屬於你自己,資料存在你自己的主機上 ⏳

當你存入一個網址時,Linkwarden 並非只是記下這串字元,而是會在伺服器背景派出一支隱形自動化程式去實際造訪該網頁,立刻為當下的畫面「拍下高解析度截圖」、「轉成 PDF」、「存成單一完整 HTML 檔」,甚至萃取出乾淨的純文字閱讀版。這個專案主要由開發者 Daniel(daniel31x13)與 Taki Elias 等人主導維護,社群生態相當活躍,衍生出瀏覽器擴充功能與第三方行動 App 📸

🚨 先天限制別忽略:
正因為本質是「網路爬蟲」,Linkwarden 極易跟目標網站的服務條款(ToS)產生衝突。社群已有真實回報:從 Facebook App 分享貼文去封存時,爬蟲會直接被平台擋下,導致封存失敗;面對新聞媒體的付費牆,因為伺服器抓取時沒有你本地瀏覽器的登入 Cookie,往往只能存到「請登入以閱讀全文」的遮蔽畫面;而歐盟網站常見的巨大 Cookie 同意橫幅,也經常讓截圖存下來的是滿版警告,而不是文章真正的內文。這些都是仰賴爬蟲技術典藏時,難以避免的先天限制,不是 Bug 🐛


🟢 🟢 🟢

🛠️ 二、核心功能拆解:官方宣傳 vs 真實運作穩定度

官方宣傳 Linkwarden 是「一站式收集、閱讀、標註並永久保存重要資訊」的平台。以下逐項拆解,看看是不是真的名不虛傳 ✨

  • 網頁自動封存(Auto Capture):透過微軟開源的無頭瀏覽器框架 Playwright 渲染目標網頁,產生 PDF、PNG 截圖、HTML 三種檔案。對純文字部落格效果極佳,但遇到大量依賴 JavaScript 動態載入、或有 Cloudflare 反機器人防護的網站,容易觸發驗證碼挑戰,最後存下來的可能只是一片空白或「請證明您是人類」的畫面 🌟
  • 閱讀與標註(Read & Annotate):類似 Pocket、Instapaper 的純淨閱讀模式。v2.15 版本大幅強化,新增四種顏色螢光筆畫線與段落筆記,搭配全新 iOS/Android 原生 App,支援「完全離線模式」——App 會背景預先下載所有截圖與 PDF,沒網路(例如飛機上)也能流暢閱讀標註。這項功能經過長時間迭代,目前表現相當穩定 📝
  • AI 自動標籤:可串接 OpenAI 等商業 API,或接本地端 Ollama 模型分析網頁內文自動貼標籤。但跟主打 AI 知識庫的競品相比,客製化程度偏弱,難以自訂複雜提示詞(Prompt)產出特定格式摘要,重度知識工作者可能會覺得不夠聰明 💬
  • 全文搜尋+團隊協作:Meilisearch 搜尋引擎驅動,不只搜標題,連 PDF 內文、抓取下來的網頁原始文字都能檢索,速度極快。也支援建立收藏集(Collection)並邀請團隊成員,逐項設定唯讀/編輯權限,甚至能產生公開連結對外分享 🧠
核心功能 實際效果 穩定度評估
自動封存保存 產生截圖、PDF、HTML,防止連結腐爛 🟡 中等——遇反爬蟲機制或動態渲染過慢的網站易失效
閱讀與標註 萃取純文字,支援螢光筆、筆記、離線閱讀 🟢 高——v2.15 後離線體驗與同步相當流暢
全文檢索搜尋 毫秒級內容檢索,涵蓋 PDF 內文 🟢 高——搜尋精準,知識庫檢索利器
AI 標籤輔助 自動分析內文推薦標籤 🟡 中等——提示詞靈活度較低,需額外算力

[29]


🟣 🟣 🟣

📊 ️ 三、系統需求與「記憶體吞噬者」惡名

把 Linkwarden 當成「私人網頁檔案館」架在自己主機上,需要付出的資源比想像中可觀。官方雖聲稱硬體需求「相對最低限度」,但這句話很容易讓一般使用者誤判 💬

💡 白話文教室:為什麼一個書籤工具吃這麼多記憶體?
這就像是DevOps 工程師常遇到的狀況:容器本身不重,真正吃資源的是「封存動作」本身。每存一個連結,背後就要完整啟動一次 Chromium 瀏覽器核心去執行 JavaScript、下載圖片、拍照存檔,這個過程對 CPU 與硬碟讀寫都是實打實的負擔 🏋️

Linkwarden 支援任何能跑 Docker 的環境(Linux、TrueNAS、Unraid、Proxmox 皆可)。官方文件宣稱在 4GB 記憶體的 VPS 上測試過能順暢運行,但 CPU 建議至少雙核心,儲存空間消耗也相當驚人——每次封存都會產生數 MB 不等的截圖與 PDF,重度收集者短時間內就可能吃掉數十 GB 硬碟 🦖

🚨 畫重點!千萬別踩雷:
標準 docker-compose.yml 部署方式會一口氣拉起三個容器:Linkwarden 主程式、PostgreSQL、Meilisearch。但真正的怪獸藏在主程式裡的 Playwright 模組——它包含完整的 Chromium 瀏覽器核心。在早期版本,社群曾抱怨系統閒置時記憶體佔用就高達 800MB 以上,導致只有 1GB 記憶體的 Raspberry Pi 3 因記憶體耗盡(OOM)頻繁當機。直到 v2.15 版本,開發團隊才針對此問題深度優化,限制記憶體池,並把 Docker 映像檔從 3.0GB 大幅縮減到 1.5GB。即便如此,只要目標網站修改前端框架或加強反機器人驗證,這套自動化流程依然可能中斷 ⛓️‍💥

安裝門檻評估:⭐⭐⭐(中等難度)對完全不懂程式的人來說,自架難度偏高——你得會用 SSH 登入伺服器、手動編輯 .env 環境變數,還必須用 openssl rand -base64 32 這類指令自行生成多組高強度機密字串。若要對外安全存取,還得自行配置反向代理與 SSL 憑證 🌟

另外有一點容易被忽略:如果你開啟了 SSO 整合或 AI 自動標籤功能,所有第三方 API 金鑰(OpenAI 金鑰、Authelia/Keycloak 憑證等)都會以明文形式儲存在伺服器本地的 .env 檔案裡。這代表伺服器本身的作業系統權限控管必須非常嚴格,一旦駭客透過其他管道入侵並讀到 .env 檔,所有雲端服務金鑰都有全面外洩的風險 🚫


🟧 🟧 🟧

🛠️ 四、四大適用情境:你是哪一種人?

✅ 一般輕量使用者(資訊松鼠病患者)

這類人每天在論壇、Reddit、X 上看到有趣的食譜、DIY 教學或長篇連載,總擔心「哪天作者刪文就看不到了」。可以在手機安裝原生 App,滑到文章時透過系統「分享」選單一鍵傳給自架伺服器,通勤時開啟離線模式,即使在沒訊號的隧道裡也能流暢閱讀、用四色螢光筆畫重點。誠實建議:如果只是想要「書籤不會不見」,瀏覽器內建同步或 Raindrop.io 免費版就很夠用,Linkwarden 的自架門檻對純新手來說偏高 🏋️

💻 獨立開發者/IT 系統工程師

解決罕見 Bug 時常需要查冷門技術論壇的討論串或早期開源文件,這些個人部落格隨時可能因未續約網域而關站。透過瀏覽器擴充功能秒存網頁,幾年後同樣的 Bug 又出現、原網站已消失時,靠著極速的 Meilisearch 全文搜尋,就能在自己伺服器裡翻出當年那段救命的程式碼。這也是本站作者測試 HestiaCP、Rocky Linux 這類自架文件時最常遇到的真實痛點——技術文件半年後就 404,並不是危言聳聽 🤧

✅ 企業商業用途(法務/公關/行銷團隊)

法務團隊做網路侵權蒐證、公關團隊側錄競爭對手網頁變化,只要把目標網址丟進收藏集,系統就會自動產生帶時間戳記的 PDF 與高畫質全網頁截圖,可作為呈堂證供或會議素材,且資料完全鎖在企業內網,符合資料主權要求 ⚖️

🔍 高風險誤用場景(真實案例,務必留意)

🚨 把內部機密變成「公開圖書館」外流:
某科技公司主管為方便整理日常閱讀,在公司內網自架 Linkwarden,並在工作瀏覽器裝了存取擴充功能。某天他在檢視公司內部「季度財務預測報表」(網址帶有內部單一登入 Session 驗證)時,順手用擴充功能把它存了下來。Linkwarden 忠實地啟動背景爬蟲,把該網頁能顯示的初步數據轉成了 PDF 存進系統。這位主管為了方便跨裝置查看,不小心把這個收藏集的權限設成了「公開(Public)」。由於系統會替公開收藏集產生可存取的獨立網址,這份機密財報立刻暴露在公開網際網路上。若沒有額外設定 NEXT_PUBLIC_USER_CONTENT_DOMAIN 隔離網域或 robots.txt 阻擋,這份資料極可能被搜尋引擎索引,造成無可挽回的營業秘密外洩,主管本人也可能面臨嚴重的法律責任。結論:公開分享按鈕請當成「發布」在按,而不是「儲存」 📸

[30]


🔴 🔴 🔴

🏴‍☠️ 五、資安真相:三個真實存在過的 CVE 漏洞

對於任何「代替你爬取網頁」的工具,資安永遠是最致命的軟肋。過去一年內,Linkwarden 確實暴露出多個被國際資安組織評為「高危」甚至「嚴重」等級的 CVE 漏洞,全部發生在 v2.14.0 以前的版本 🚫

CVE 編號 漏洞類型 影響版本 白話說明
CVE-2026-44313 伺服器端請求偽造(SSRF) v2.13.0 之前 存連結時,系統只簡單檢查網址開頭是不是 http://https://,就直接命令伺服器發起請求,沒有阻擋伺服器去讀取雲端主機內部才看得到的「中繼資料」網址(如公有雲的 IAM 憑證端點),理論上可能被誘導洩漏雲端服務的高權限金鑰 💣
CVE-2026-42455 儲存型跨站指令碼攻擊(Stored XSS) v2.14.0 及更早 系統允許上傳單一 HTML 檔案作為歸檔備份,但未徹底清洗檔案內潛藏的惡意程式碼,也沒設定嚴格的內容安全策略(CSP)標頭。若管理員打開這份被封存的 HTML,惡意程式碼可能在其瀏覽器中執行,藉此竊取 Session 憑證 🌟
CVE-2025-49588 本地檔案包含(Local File Inclusion) 修補前版本 系統過去未能防堵 file:// 這類偽協定,底層 Playwright 爬蟲可能把伺服器作業系統的設定檔當成一般網頁截圖下來;該漏洞也曾允許透過改變網址上的遞增數字 ID,暴力猜測並偷看其他使用者的私密連結內容 🛑

開發團隊修補速度受到社群肯定,v2.15 版本已大幅強化安全防護,但這段紀錄凸顯一個核心事實:「在伺服器端開放執行無頭瀏覽器去存取未知的外部連結」是一把極度危險的雙面刃。若企業必須部署,強烈建議在 .env 設定 ALLOW_PRIVATE_NETWORK_ACCESS=false,阻擋針對企業內部 IP(如 192.168.x.x)的爬蟲請求,並架設在嚴格防火牆或 VPN 之後,同時關閉公開註冊(NEXT_PUBLIC_DISABLE_REGISTRATION=true) 📝

公道話:經全面查證,Linkwarden 未曾發生開發者惡意棄坑、程式碼植入後門、或挪用贊助資金等信任危機事件,核心團隊在社群中相當活躍,對 Issue 回覆與修補態度備受讚譽。密集的漏洞回報反映的是「初期為求快速實現核心功能,安全隔離意識不足」的結構性設計問題,而非團隊操守問題 💂‍♂️


🟠 🟠 🟠

📊 六、授權與法律灰色地帶:不是「開源就沒事」

💡 白話文教室:AGPL-3.0 是「傳染力最強」的開源授權
這就像日常小資族去頂讓一間老店的祖傳秘方——AGPL 規定,如果你把這套原始碼拿去改造、架成「網路服務」讓別人透過瀏覽器使用,你也必須把修改後的原始碼公開,跟一般「改完不用公開」的授權完全不同,目的就是防堵雲端服務供應商「白嫖」開源程式碼 🤡
  • 🟢 個人自架/Homelab:合規且零風險,怎麼改都可以,只要不對外提供商業服務 🚨
  • 🔴 拿去做商業 SaaS 對外收費:透過網路提供服務等同於「散佈」軟體,必須把修改後的程式碼完整開源,否則面臨嚴厲著作權訴訟 ✨
  • 🔴 整合進閉源商業產品:你的整套商業軟體極可能被 AGPL「傳染」,被迫全部開源 📝

除了授權,實際運作機制也踩到幾個法律灰色地帶:把付費新聞媒體等受版權保護的內容截圖轉 PDF,若只是個人離線閱讀通常屬於合理使用,但一旦把收藏集設為公開分享,伺服器實質上就成了盜版內容的分發節點,可能面臨 DMCA 下架通知甚至提告求償。若封存的網頁包含第三方個資,即使原網站事後依歐盟 GDPR「被遺忘權」刪除了資料,你伺服器裡的 PDF 副本卻不會自動跟著消失,公開實例的維運者可能因此違反 GDPR 而面臨開罰。自動化爬取本身也經常直接違反目標網站的服務條款,對個人自架者而言通常只會導致 IP 被封鎖,但企業自動化監控使用時仍是不可忽視的穩定性隱患 📉


🟡 🟡 🟡

🛠️ 七、商業模式與費用:自架免費 vs 官方雲端 $3/月

評估維度 🏗️ 自架版 ☁️ 官方雲端版
金錢成本 免費(不含硬體折舊與電費) $3 美金/人/月(年繳享 25% 折扣,14 天免費試用)
安裝複雜度 需熟悉 Docker、網域、反向代理設定 零摩擦,刷卡後立即擁有完整系統
連結數量上限 無限制(取決於自己的硬碟大小) 每座位上限 30,000 個連結,超過需加購座位或升級客製方案
超量計費風險 不適用 極低——人頭計費,非依儲存容量或流量計費
維護與資安責任 使用者全權負責(更新、備份、防火牆) 官方全權負責底層升級、安全補丁、備份
資料主權與隱私 最高,除了你和硬碟沒人知道你存了什麼 需完全信任官方隱私政策
進階系統整合 支援私有 OIDC(Keycloak、Authelia)等企業內網整合 支援 Google 等常見 OAuth 第三方登入

供應商綁定風險趨近於零——因為 100% 開源,就算用了雲端版幾年後不續約,也能把所有連結與封存檔案完整匯出,無縫搬回自己家裡的主機繼續運行。若想自架但缺乏機房設備,官方也與 Hostinger 合作推出 VPS 一鍵部署方案,硬體成本約每月 $6.49 美金起跳 💵

[31]


🟪 🟪 🟪

📌 八、真實使用者痛點(GitHub Issues/Reddit 實錄)

  • 「記憶體吞噬者」惡名(GitHub Issue #744):社群抱怨一個只是用來存書籤的工具,一開機什麼都還沒做就吃掉近 1GB 記憶體,根源正是底層 Playwright 需要啟動完整 Chromium 核心。v2.15 優化前,甚至會讓記憶體只有 1GB 的 Raspberry Pi 3 直接因 OOM 當機 🚫
  • 防護嚴格的現代網站根本存不下來:遇到 Cloudflare 五秒盾、強制登入論壇、歐洲網站的全螢幕 Cookie 同意警告時,使用者興高采烈存下網址,事後打開 PDF 卻只是一張擋路橫幅或錯誤畫面,主打的「永久封存」形同虛設 ⚠️
  • Firefox 擴充功能一度全面失效(GitHub Issue #1585):架構升級到 Manifest V3 後,觸發嚴重的內容安全策略(CSP)錯誤,導致一票 Firefox 使用者完全無法透過外掛存書籤,只能回到網頁端手動貼網址 🤬
  • 外部掛載路徑會在更新後憑空消失(GitHub Issue #1688):有進階自架玩家把儲存路徑掛到外部 ZFS 陣列硬碟省空間,結果某次更新後掛載設定竟然消失,又跑回預設位置,資料散落各處 🙅‍♂️
  • AI 標籤客製化程度僵化:對比最大競爭對手 Karakeep(前身 Hoarder),Linkwarden 的 AI 標籤堪用但陽春,無法自訂 Prompt 生成特定格式摘要,重度整理控會覺得「還不夠聰明」🤯

🟫 🟫 🟫

⚔️ 九、競爭對手怎麼選?完整決策樹

評估特性 Linkwarden ⚡ Karakeep 🧠 Linkding 🔖 Readeck 📖
核心定位 網頁完整封存 AI 知識庫與自動整理 極簡書籤收集 純淨稍後閱讀
開源授權 AGPL-3.0 AGPL-3.0 MIT AGPL-3.0
頁面封存能力 PDF+截圖+HTML+閱讀模式 抓 Banner、內文、截圖 依賴第三方外掛 純淨閱讀模式/EPUB
AI 智慧整合 基礎(僅標籤) 強大(標籤、摘要、對話)
硬體資源消耗 🔴 極高(需 2-4GB RAM) 🟠 偏高(主要跑 AI 任務) 🟢 極低(數十 MB) 🟢 極低(Go 語言編譯)
官方行動 App iOS/Android 原生 iOS/Android 原生 依賴社群第三方 PWA 網頁應用

🌴 選擇建議決策樹

  • ✨ 患有嚴重「網頁失蹤恐懼症」,必須確保眼前資料一字不漏(含原始排版與圖片)永久釘死在硬碟裡 → 毫無疑問選 Linkwarden,多格式並行保存機制目前無人能敵 ✨
  • ✨ 只想要一個能跨瀏覽器同步網址的極簡清單,不追求存下厚重內容 → 選 Linkding,極度輕量、快如閃電,社群外掛支援度佳 💡
  • ✨ 想建構個人第二大腦,依賴 AI 自動整理分類,會存網址、圖片甚至隨手做筆記 → 選 Karakeep,介面現代、AI 整合最深 📝
  • ✨ 買了高階電子書閱讀器,只想把零碎好文章當電子書離線舒適閱讀 → 選 Readeck,能直接打包成 EPUB 匯出 🎯

[32]


🔷 🔷 🔷

🛠️ 十、綜合風險評級:依你的身分對號入座

目標族群 風險等級 核心風險點 建議行動
一般使用者(雲端版) 🟢 低 隱私信任問題(官方理論上能看到你存了什麼) 安心使用,雲端版已由官方承擔絕大部分資安與維護風險
Homelab 自架玩家 🟡 中低 資源耗盡(OOM)當機;忘記更新引發漏洞 準備至少 4GB RAM,用 Watchtower 等工具保持映像檔在 v2.15 以上
獨立開發者/SaaS 創業者 🟠 中 違反 AGPL-3.0 傳染性授權條款 若二次包裝成商業服務,務必將修改部分開源,否則面臨版權訴訟
企業/組織內部使用 🔴 高 員工誤存機密並設為公開;未修補的 SSRF 導致內網被駭 設定 ALLOW_PRIVATE_NETWORK_ACCESS=false,藏在 VPN 後方,關閉公開註冊,落實教育訓練

🏁 🏁 🏁

🏆 十一、總結評分(10 分制)

評分維度 分數 評語
🧩 功能完整性 9 從封存、全文搜尋、團隊協作到 AI 標籤,幾乎完美覆蓋個人與團隊數位典藏的進階需求 👍
🔒 資料安全性 5 勉強可用但帶有痛點。過去爆發過極高危險的 SSRF 與 XSS 漏洞,架構上必須執行無頭瀏覽器,極度依賴管理員做好內網隔離 🛑
⚖️ 法律合規性 7 AGPL-3.0 條款對純自用零風險,但阻斷商業閉源可能,公開分享受版權內容也有灰色地帶 🚫
🛠️ 安裝易用性 6 Docker Compose 一鍵部署對工程師方便,但多容器深度依賴加上龐大記憶體需求,對硬體不佳的新手不友善 📝
📚 文件完整性 8 官方文件寫得詳盡,環境變數意義與 SSO 配置都有清楚圖文說明 🧐
🚀 維護活躍度 10 19k+ GitHub 星星熱度實至名歸,團隊回應積極,App 與 Web 端更新頻率極高 🧐
👑 加權總分 7.5 強力推薦,但需謹慎評估硬體與資安防護 🎉

[33]


🟩 🟩 🟩

🏁 結語:治療連結腐爛的最強特效藥,但不是免費午餐

Linkwarden 是目前開源界治療「連結腐爛」的最強特效藥。如果你對於精心收集的書籤與參考資料,最終無可避免變成 404 Not Found 感到深惡痛絕,這款工具絕對能一勞永逸治癒你的資訊焦慮 📿

然而,強大數位典藏功能的背後,是極端沉重的硬體代價與潛在的架構資安風險。不建議新手為了省錢,把它硬裝在記憶體微薄的廉價 VPS 上。如果你不懂得如何設定系統防火牆、反向代理與環境變數隔離,直接選擇官方每月 $3 美金的雲端方案,把伺服器效能調校與資安防堵的頭痛問題,花小錢丟給專業團隊去煩惱,才是最聰明的決策;但如果你手邊已經有在跑自架服務的主機、懂基本 Docker 操作,Linkwarden 幾乎沒有理由不試試看 ⚠️

※ 本文內容整理自 Linkwarden 官方文件(docs.linkwarden.app)、官方 GitHub Security Advisories、Railway 官方部署範本,以及 XDA、CoSci Blog、QDE 等第三方實測與教學文章,並依原文邏輯與技術細節如實呈現。CVE 資訊已對照 NVD 與官方安全公告確認,若有最新修補進度請以官方 Release Notes 為準。

🔧 🔧 🔧

🛠️ 附錄:Linkwarden Docker Compose 安裝方式

🔥 懶人包:整個安裝只需要「抓兩個檔案、改三個密碼、下一行指令」,官方文件實測 4GB 記憶體的 VPS 就能順跑,新手照著做大約 10~15 分鐘可以完成。

📝 ① 建立資料夾並下載官方設定檔

SSH 連進伺服器後,建立專屬資料夾,下載官方提供的 docker-compose.yml 與環境變數範本:

mkdir -p /opt/linkwarden && cd /opt/linkwarden
curl -O https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/docker-compose.yml
curl -L https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/.env.sample -o ".env"

⚙️ ② 修改必填的三組密鑰

打開 .env 檔案:

nano .env

裡面會看到以下內容,務必修改三組密鑰——NEXTAUTH_SECRETMEILI_MASTER_KEYPOSTGRES_PASSWORD,三組都要用不同的隨機字串:

NEXTAUTH_URL=http://localhost:3000/api/v1/auth
NEXTAUTH_SECRET=VERY_SENSITIVE_SECRET
MEILI_MASTER_KEY=VERY_SENSITIVE_MEILI_MASTER_KEY
POSTGRES_PASSWORD=CUSTOM_POSTGRES_PASSWORD

🚨 資安提醒:密碼、密鑰這類敏感資訊請勿直接貼在聊天室或公開分享的截圖裡。若字串內含特殊符號,記得用單引號或雙引號包起來。若企業內部部署,建議額外加上 ALLOW_PRIVATE_NETWORK_ACCESS=false 阻擋內網爬取。

快速產生隨機字串的方法:

openssl rand -base64 32

執行三次,把產生的三組不同字串依序貼回 .env 對應位置 🧐

🔌 ③ 啟動服務

docker compose up -d

第一次執行會拉取映像檔並建置,請耐心等待幾分鐘。啟動完成後,Linkwarden 預設會在 3000 埠口運作 ✨

💬 ④ 建立第一個帳號並立刻關閉開放註冊

瀏覽器打開 http://你的伺服器IP:3000,點擊「Sign Up」註冊第一個帳號,這個帳號會自動成為系統管理員。強烈建議註冊完成後,立刻回到 .env 把 NEXT_PUBLIC_DISABLE_REGISTRATION 設為 true 並重啟服務,避免陌生人自行建立帳號 📌

⚙️ ⑤(進階)掛上網域與 HTTPS 反向代理

若要用正式網域對外提供服務,建議在前面加一層 Nginx 反向代理並用 Certbot 簽發 SSL 憑證:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

sudo nano /etc/nginx/sites-available/linkwarden

貼入以下設定(請把 app.example.com 換成你自己的網域):

server {
  listen 80;
  listen [::]:80;
  server_name app.example.com;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}
sudo ln -s /etc/nginx/sites-available/linkwarden /etc/nginx/sites-enabled/linkwarden
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d app.example.com

簽完憑證後,回到 .env 把網址改成正式網域並重啟服務:

NEXTAUTH_URL=https://app.example.com/api/v1/auth
BASE_URL=https://app.example.com
docker compose down
docker compose up -d

🔍 ⑥ 定期備份(強烈建議設定排程)

Linkwarden 資料分成資料庫與封存檔兩塊,兩個都要備份才算完整

# 備份資料庫(可放進 cron 排程)
docker exec -t linkwarden-postgres pg_dump -U postgres postgres | gzip > linkwarden_$(date +%F).sql.gz

另外也要記得把存放截圖/PDF/HTML 的 Docker Volume(通常掛載在 ./data/data/data)一併排程備份到異地儲存空間,只備份資料庫的話,還原後書籤紀錄還在,但每一份珍貴的截圖與 PDF 會全部消失 🚫

⚙️ ⑦ 版本更新

docker compose pull
docker compose up -d

小提醒:大版號升級前建議先看官方 Release Notes,並確認至少升級到 v2.15 以上取得完整安全修補。小版號更新通常很平順,照上面兩行指令執行即可。

[34]


📎 📎 📎

💡 參考資料與延伸資源

列印本文 [47] 👨‍👩‍👧‍👦 30 次瀏覽