免費的網站流量統計系統 Umami
24 February 2023這幾週都在忙著網站搬家, 搬出 Typlog 有些以及整合的組件又一個個要拆開。 之前已經有分享了留言跟搜尋, 今天來講講流量統計。
老實說, 雖然說發表文章不要被流量綁架, 但真實的情況是流量是一個很好的量化指標。 遑論是業配或者是廣告, 致勝關鍵就是能觸及多少的人, 有很多人看基本上就是對自己一個很好的激勵。
因為非常關注隱私, 堅決不使用 Google Analytics 當作工具, 不僅隱私上面疑慮, 同時我覺得加了 GA 後網站會跑得很慢, 不符合我想要簡單的概念。
之前我是付費使用 Plausible 這套工具, 非常好用, 如果付費的話我覺得還是首選。 但只是自己要看, 當作文章調整的方向, 所以更想要降低成本, 剛巧遇到 GeekPlux 的推文寫到 Umami 開源的統計軟體, 剛好想到可以自己架設。
這一篇文章就來談談架設的過程, 結論講在最前面, 我最後使用的方案是 Netlify 配合 Supabase, 以我的用量來計算, 免費的額度已經足夠, 並不會有超額的問題。
途中我先使用了 Railway.app 架設, 速度體驗都非常滿意, 不過為了能夠真的在成本控管更方便, 後來就轉移到 Netlify。
我也參考了許多網路資料, 羅列如下給大家參考:
- 個人網站 / 博客必備, 零成本、 低門檻創建專屬數據分析工具: umami.is
- 使用Railway服務搭建umami網頁數據統計分析系統 | 一片痴心具成灰
- 精簡版GA? 零成本、 低門檻打造專屬數據分析工具, umami.is部署教學一次看
- Running on Supabase
- Running on Railway
Supabase 資料庫
Umami 基本上是兩大元素組成, PostgreSQL 資料庫跟 Node.js 的執行程序。 所以為了要架設這個程序, 需要同時把 PostgreSQL 跟 Node.js 放在伺服器上面。
最懶人的方式是把兩者同時放在一起, 這一點 Railway.app 其實是有支援的, 但由於其收費方案是基於使用者付費 (Pay as you go) 模式, 因此在控管考量下, 我採取的方案是 拆開兩者。
Supabase 是一個開源的 PostgreSQL 資料庫程序, 在免費的方案之中, 可以新增兩個專案。
當你申請完帳號之後, 即可以開啟一個新的專案, 直接去 Github 創立 Umami 的分支專案中, 找到 schema.postgresql.sql
, 然後在 SQL Editor 下面的 SQL snippets
創建一個新的 Query 貼上後執行 (RUN)。
Supabase SQL Editor 直接貼上執行
成功之後, 回到 Setting 中 Database
的頁籤, 可以看到詳細設定資料。 這時候我們要自己組成一串資料庫的元素, 範例如下:
DATABASE_URL=postgres://postgres:[YOUR-PASSWORD]@host:6543/postgres?pgbouncer=true
其實這一串之後我們還是需要拆開使用, 不過照原始的官方文件, 這一串基本上就是當作外部資料庫的連結。
Setting 頁面中可以找到 Database 的資訊
Railway.app 設定
由於我們要把資料庫放在 Supabase, 所以不能使用原始官方說明文件中的一鍵部署功能。
改成使用手動在 Railway.app 新增專案, 連結到 Github 的 Umami repository 連結部署。
Railway.app 的部署非常方便, 會直接幫我們完成, 但第一次自動部署可能會遇到失敗的情況, 需要加上參數 (Variables) 的設定。
我自己嘗試的經驗是需要有四個參數 DATABASE_TYPE
、DATABASE_URL
、HASH_SALT
跟 PORT
。 設定完成後再重新部署就會成功了。
Railway.app 中的參數設定區
Netlify 再部署
Netlify 通常情況下並不提供動態網頁的部署, 但 Netlify 中的 Netlify Functions 是支援 TypeScript、JavaScript 跟 Go。
我並沒有探究為什麼 Umami 可以部署在 Netlify, 畢竟我自己專注的是 Python, 但既然有機會更放心地免費使用, 又剛好有 Netlify 的帳號, 自然興趣濃厚的研究起來。
如果我們已經把上面那一段網址組起來了, 那就是到 Environment variables
這個頁面, 設定 DATABASE_URL
、HASH_SALT
就可以了。
Netlify Enviroment 參數設定頁面相對簡單
登入 Umami
最後一站就是前往你設定的網址, 不管是 Railway.app 或者 Netlify, 都可以設定子域名或者連結自己的域名。
最後大家可以參照以上的說明, 第一次登入, 之後記得去修改管理員的帳號密碼。
把自己的網站加入自架的 Umami 之中, 放上追蹤碼, 大功告成。
首次登入 Umami 頁面
番外篇:Umami Cloud
參不透什麼原因, 但是統計數據好像會延遲, 雖影響不大, 但也讓我持續探索。
後來發現 Umami 在首頁上面, 有介紹會有個付費方案, 看了一下說明文件, 原來已經在開發 Cloud 版本, 讓我們可以省去自架的工程。
更重要的是目前是免費的測試 (Beta) 版本, 馬上手刀申請使用。
這幾天用起來的感覺, 真的是非常的順暢。
目前不論是自架版本或者 Cloud Beta 都一併使用中, 之後再看情況如果有成本超出預期的話, 到時候再來抉擇並與大家分享。
#Web