如何在 Linux 中使用 Shlink 託管您自己的 bit.ly 伺服器

如何在 Linux 中使用 Shlink 託管您自己的 bit.ly 伺服器
桌上的筆記型電腦的照片。

Shlink 是 Linux 的強大自主機連結縮短服務。它提供了一個簡單而有效的框架,您可以在其中使用自己的網域作為縮短連結的根。本文將向您展示如何使用 Docker 和 Nginx 在 Ubuntu Linux 上安裝自己的 Shlink 執行個體。

Shlink 的最大賣點之一是您可以使用自己的自訂網域作為短鏈接,同時仍然可以自行託管。這反過來又為您提供了 SaaS 連結縮短服務的靈活性以及在您自己的電腦上運行軟體的隱私性。

顯示 Shlink 在演示伺服器上運行的螢幕截圖。

除此之外,Shlink還擁有多種功能,例如建立 QR 碼、自動轉送連結查詢以及建立多段自訂 slugs 的能力。如果您正在 Linux 中尋找連結縮短服務,您可以在其中調整連結的外觀和行為,這使得 Shlink 成為一個方便的工具。

為 Shlink 取得 Docker

假設:本文假設您在 Ubuntu 22.04 VPS 上安裝 Shlink,並且您目前擁有一個網域。

在 Linux 上部署 Shlink 的第一步是取得 Docker 的副本。為此,請從其網站取得 Docker 專案的簽署金鑰:

為您的 Docker 二進位檔案建立儲存庫檔案:

將以下程式碼行貼到新儲存庫檔案中:

透過執行以下操作重新載入系統的儲存庫清單apt update

安裝 Shlink 的依賴項

Docker 儲存庫啟動並運行後,您現在可以使用 apt 來取得 Shlink 的依賴項:

確保“核心”快照包在您的系統中可用:

從電子前沿基金會取得並安裝「certbot」snap 軟體包:

取得 Geolite2 許可證密鑰

Shlink 的另一個定義功能是它可以追蹤點擊您的連結的用戶的大致位置。若要使用此功能,請開啟Geolite2 許可註冊頁面。

顯示 GeoLite 許可證註冊頁面的螢幕截圖。

在表格中填寫您的詳細信息,然後按“繼續”

打開您的電子郵件收件箱,然後尋找來自 MaxMind 的確認電子郵件。

點擊電子郵件中的鏈接,然後提供新 MaxMind 帳戶的密碼。

顯示 MaxMind 密碼建立連結的螢幕截圖。

登入您的 MaxMind 帳戶,然後按一下儀表板上的管理許可證金鑰。

螢幕截圖突出顯示

一下「產生新授權金鑰」,然後按一下「確認」以建立您的 Geolite2 金鑰。

螢幕截圖突出顯示

將 Geolite2 許可證密鑰複製到電腦上的文字檔案中,然後儲存。

要安裝Shlink,您需要先建立一個虛擬Docker網路。這將作為應用程式的專用網絡,可以在其中與您將部署的其他容器進行通訊:

部署 PostgreSQL 資料庫並將其連結到新的虛擬 Docker 網路:

使用隨機文字字串變更「POSTGRES_PASSWORD」環境變數的值。

顯示隨機 PostgreSQL 資料庫密碼的終端機。

將以下命令貼到新的終端機會話中:

將 DEFAULT_DOMAIN 變數的值替換為您的網域。

顯示演示伺服器預設域值的終端。

使用您的個人授權金鑰變更“GEOLITE_LICENSE_KEY”變數的值。

顯示示範 Shlink 伺服器的 Geolite 授權的終端。

將“DB_PASSWORD”變數替換為您的 PostgreSQL 資料庫密碼。

顯示演示伺服器的 PostegreSQL DB 密碼的終端機。

Enter啟動您的 Shlink 實例。

安裝並連結您的 Shlink 接口

從 Shlink 容器中取得 API 金鑰,然後將其複製到剪貼簿:

將以下命令貼到新的終端機會話中:

將“SHLINK_SERVER_URL”替換為後端容器上“DEFAULT_DOMAIN”變數的值。

顯示 Shlink 後端實例的完整 URL 的終端。

將您的 API 金鑰貼上為「SHLINK_SERVER_API_KEY」的值。

顯示 Shlink 後端 API 金鑰的終端。

按此鍵Enter啟動 Shlink 前端介面。

透過列出系統中所有目前活動的容器來確認您的資料庫、Shlink 後端和 Shlink 前端正常運作:

顯示建置完整 Shlink Web 應用程式的三個容器的終端。

使用 Nginx 建立 SSL 反向代理

此時,您的伺服器上已經運行了一個可以運行的 Shlink 軟體套件。但是,為了存取它,您仍然需要建立一個 SSL Web 代理,將兩個容器委託到不同的網域上。

首先,為 Shlink 的前端介面建立一筆新的 A 記錄。就我而言,我會將前端的 A 記錄設定為「admin」。

顯示演示 Shlink 伺服器的兩個 DNS 記錄的螢幕截圖。

使用您喜歡的文字編輯器為您的 Shlink 實例建立網站設定檔:

將以下程式碼區塊貼到您的設定檔中:

將「YOUR-ROOT.DOMAIN」變數替換為您的根網域,將「SUBDOMAIN.YOUR-ROOT.DOMAIN」替換為前端介面的子網域。

儲存您的設定文件,然後在 Nginx 中啟用您的 Web 應用程式:

重新載入 Nginx 守護程式以應用新設定:

將您的伺服器註冊到電子前沿基金會:

為您的 Shlink 執行個體要求新的多域 SSL 憑證:

導覽至執行個體的管理控制台,確認您的 Shlink 伺服器正常運作。就我而言,它是“https://admin.helloserver.top”。

顯示 Shlink 實例的預設登入頁面的螢幕截圖。

若要使用您的新實例,請按一下登入頁面上的Shlink選單項目。

顯示實例登陸頁面上的 Shlink 選單項目的螢幕截圖。

將長 URL 貼到「建立短 URL」類別下的要縮短的 URL文字方塊中。

為您的短連結提供一些元數據,然後按一下「儲存」以建立連結。

顯示在 Shlink 中建立短連結的表單的螢幕截圖。

在新的瀏覽器標籤上開啟新的短 URL,然後按一下Shlink 儀表板上的「存取」按鈕來測試它是否正常運作。

顯示 Shlink 上範例連結的基本分析的螢幕截圖。

安裝和部署您自己的連結縮短服務只是收回您的線上隱私的第一步。了解 Linux 如何透過使用 Tor 在 Ubuntu 中託管您自己的匿名網站來幫助您進一步收回您的隱私。

圖片來源:Carlos Muza,來自 UnsplashShlink.io 開發者。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

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