我使用 Notion 已經超過五年了,在這段時間裡我唯一意識到的是: Notion 不如 Excel 更適合我。儘管如此,我仍然需要一個筆記應用程序,以便整理我的想法、組織資料並建立個人知識庫。

有許多自架的 Notion 替代方案可供嘗試,AFFiNE 就是其中之一。它在功能和介面方面與 Notion 非常相似,如果部署得當,您可以一次擺脫多個工具。
快速連結
你最終為什麼決定放棄 Notion?
當「一體化」產品不再有效率時

和許多人一樣,我確實對 Notion 印象深刻。它靈活易用,可以處理文件、資料庫和輕量級的專案管理。它已經成為我在線的“第二個大腦”。但問題是,一旦你的生活圍繞著它運轉,你就會開始感受到它的缺點:訂閱費用逐漸增加、與特定供應商的依賴導致服務停滯不前,以及所有你寫的東西都存放在別人伺服器上的不安感。
我一生都在使用 Notion,事實上,我一直都是這樣。 有組織的然而,這些負面影響很快就讓我感到困擾。儘管 我訂閱 Notion 服務最後還是花了錢。 每個月都是如此,但他開始感到束縛,以至於我 我最初使用 Notion 只是為了一個目的。.
Notion 最擅長的資料組織方式是表格和電子表格。 Notion 最接近的功能是資料庫。然而,Notion 處理資料的方式,尤其是在處理表格和資料庫方面,不如 Microsoft Excel 甚至 Google Sheets 那麼靈活。雖然你可以在 Notion 中使用公式,但你無法像在 Excel 中那樣自由地從任意儲存格或儲存格區域選擇資料。
AFFiNE 吸引我的地方在於它幾乎具備 Notion 的所有功能,而且它是開源的,完全免費運行和使用,當然,如果你不想自己託管,它也提供付費方案。你可以自己託管,避免將所有資源都投入封閉平台的開發路線圖中。此外,它還秉持「本地優先」的理念,這意味著你的資料首先保存在你自己的資料磁碟上,然後可以與伺服器同步進行協作,而不是反過來。
是什麼讓 AFFiNE 值得實現這一飛躍?
文件、白板和資料庫集中在一個地方
我並沒有在第一天就卸載 Notion。我首先在 AFFiNE 中重建了一些核心工作流程:編輯日曆、個人知識庫和專案規劃空間。讓我驚喜的是,在同一個工具中切換文件模式和白板模式竟然如此流暢。我可以先在結構化的頁面上概述一天的工作安排,然後放大到白板視圖,連結相關任務、添加視覺化註釋或繪製流程圖,而無需離開應用程式。
由於 AFFiNE 是開源且可自行託管的,它也消除了另一個長期隱患:即使公司倒閉或五年內更改價格,我也不會束手無策。我可以繼續運行自己的版本,甚至可以根據需要建立該專案的分支。這不僅僅是理念上的好處;它也改變了我願意投入多少時間來建立系統和模板。
本地化設計是最終的驅動力。我的資料可以儲存在自己的磁碟上,並與其他所有自架內容一起備份,這與我的自架服務工作流程完美契合,而無需從雲端租用所有資源。當我意識到 AFFiNE 可以整合到這個生態系統中時,將整個知識庫保存在我自己專有的 SaaS 平台上的想法就顯得不那麼吸引人了。
我是如何乾淨俐落地遷移整個工作流程的。
乾淨地匯出頁面和資料庫

從 Notion 切換到 AFFiNE 並非一鍵導入即可輕鬆搞定,至少對於已經使用 Notion 多年的用戶來說並非如此。我採取的方法更像是結構重組,而非簡單的遷移。我沒有把所有舊頁面都搬出來,而是專注於我每天都會用到的部分:活躍專案、當前筆記和即時資料庫。
AFFiNE 基於區塊的編輯器讓重建維基、連結筆記和專案儀表板等結構變得輕而易舉,即使需要手動重新建立部分內容也無妨。我藉著遷移的機會清理了多年來未完成的頁面和重複的模板。 Notion 匯出的內容可以以類似 Markdown 的形式打開,但我仍然覺得手動重建重要頁面,並將其餘內容保留在歸檔中效率更高。

最大的思維轉變在於適應無限版面。在 Notion 中,我通常會為想法、圖表和時間軸分別建立不同的頁面。而在 AFFiNE 中,這些元素可以共存於同一空間:一邊是筆記,中間是大致的心智圖,另一邊是粗略的看板式佈局。一旦我理解了這一點,我就不再把 AFFiNE 看作是 Notion 的開源替代品,而是將其視為一種獨特的獨立工作空間。
一窺我的自架 AFFiNE 設置
Docker Compose 讓自架變得更容易,但你仍然需要做一些工作。

AFFiNE 官方支援自架,推薦使用 Docker Compose 來實現這一點。 官方指南 太好了,不到一小時就能讓你上手運作。這個軟體包的底層架構對於現代 Web 應用來說相當標準:AFFiNE 服務、用於快取的 Redis 和用於資料庫的 PostgreSQL。如果你已經運行過其他自架工具,那它看起來應該很熟悉。
基本想法很簡單:拖放官方鏡像,將其連接到 Redis 和 Postgres,分配靜態卷用於配置和存儲,暴露所需的端口,並通過環境變量設置管理員憑據。一個典型的 Compose 檔案定義了一個服務。 仿射 使用影像 ghcr.io/toeverything/affine-graphql:stable該系統還使用了用於快取的 Redis 容器和帶有獨立資料儲存的 Postgres 容器。啟用此功能後,您可以在瀏覽器中存取伺服器的 IP 位址和端口,使用您設定的管理員憑證登錄,並建立您的工作區。
由於 AFFiNE 的設計理念是將工作區與雲端後端同步,因此在自託管環境中,這個雲端後端實際上就是您自己的伺服器。登入後,您只需將工作區連接到您的實例,即可確保所有裝置之間的資料同步。之後,它的運作方式就和 SaaS 應用程式非常相似——只不過是運行在您自己的伺服器上,而不是別人的伺服器上。
解決動態IP位址問題
保持對家庭外部實例的訪問

我的網路服務供應商會為我分配一個動態的廣域網路 IP 位址,大約每 24 小時更換一次。如果你只是瀏覽網頁,這沒什麼問題,但如果你想訪問像 AFFiNE 這樣的自架服務,那就很煩人了。每次你的外部 IP 位址發生變化,你配置的用於存取伺服器的網域名稱或 URL 就會失效。
經典的解決方案是動態網域解析 (DDNS)。您無需將網域名稱指向加密的 IP 位址,而是可以使用 DDNS 服務供應商,例如 [此處應填寫 DDNS 服務提供者名稱]。 FreeDNS أو 鴨子DNS 當您的家庭 IP 位址變更時,此功能會自動更新您的 DNS 記錄。您的路由器或網路中的某個小型用戶端會向動態網域解析 (DDNS) 服務發送包含新 IP 位址的訊號,即使您的位址在背景發生變化,主機名稱仍然可用。另一種方法是向您的網路服務供應商申請靜態 IP 位址,但他們可能無法提供。
這種轉變是值得的。
更少的集成,更大的控制力
狀態好的時候,使用 AFFiNE 的自架版本簡直令人無比滿意。我能擁有一個現代化、靈活的工作空間,它整合了文件和白板,支援即時協作和本地優先存儲,所有功能都運行在我控制的設備上。我無需等待專有平台提供功能,也不用擔心我的筆記會被付費訂閱限制。
遇到令人沮喪的日子,我會想起自架服務和消費者網路服務供應商並非總是能達成一致。當我的IP位址發生變化,DNS回應延遲,或是我身處異地無法存取某些內容時,我會懷念大型託管SaaS程式帶來的便利性和可靠性。
如果你已經熟悉 Docker,並且對自主管理工具感興趣,那麼 AFFiNE 絕對值得一試,它可以作為 Notion 的替代方案。不過要注意的是,軟體方面只是成功的一半;另一半則取決於你是否願意花心思去設定路由器,才能真正打造出屬於自己的工作空間。










