如何使用連結建立您自己的書籤管理器

如何使用連結建立您自己的書籤管理器

Linkding 是一個簡單且靈活的基於 Web 的 Linux 書籤管理器。與離線書籤管理器類似,它允許您建立和註釋您隨著時間的推移累積的網頁連結。

本文將向您展示如何使用 Docker 和 Docker Compose 在 Ubuntu 22.04 電腦上安裝 Linkding。它還將重點介紹如何在新的 Linkding 實例中建立和管理非管理員使用者。

為什麼使用連結託管您自己的書籤管理器?

Linkding的最大賣點之一是您可以快速將其部署在現有伺服器上並在幾分鐘內使用它。這意味著您不需要配置新機器(無論是實體機器還是其他機器)來託管您自己的書籤管理器。

正在運行的 Linkding 安裝的螢幕截圖。

連結還擴展了大多數書籤管理器中的基本功能,包括連結共享和多用戶模式。這使其成為想要創建私人協作平台以在群組之間共享連結的用戶的理想選擇。

取得連結和 Docker Compose

要部署 Linkding,您需要先安裝 Docker 及其 Docker Compose 元件。您可以透過從開發人員的網站取得程式的簽署金鑰來做到這一點:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

為您的 Docker 安裝建立一個新的儲存庫檔案:

sudo nano /etc/apt/sources.list.d/docker.list

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

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

透過執行以下命令重新載入系統的軟體包儲存庫:

sudo apt update && sudo apt upgradesudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

取得並部署連結Docker容器

在您的主目錄中為 Linkding 建立一個新資料夾並進入其中:

mkdir ~/linkding && cd ~/linkding

使用您最喜歡的文字編輯器建立一個空的“docker-compose.yml”檔案:

nano. /docker-compose.yml

將以下程式碼區塊貼到新的撰寫檔案中:

---
version: "3"
services:
linkding:
container_name: ${LD_CONTAINER_NAME:-linkding}
image: sissbruecker/linkding:latest
ports:
- ${LD_HOST_PORT:-9090}:9090
volumes:
- ${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data
env_file:
-. env
restart: unless-stopped

儲存新的 docker-compose.yml,然後為您的實例建立一個環境檔案。這將包含新安裝的所有自訂變數:

nano ~/linkding/.env

將以下程式碼區塊貼到新環境文件中:

LD_CONTAINER_NAME="linkding"LD_HOST_PORT="9090"LD_HOST_DATA_DIR="./data"LD_SUPERUSER_NAME="linkding"# CHANGE WITH A SECURE USERNAMELD_SUPERUSER_PASSWORD="linkding"# CHANGE WITH A SECURE PASSWORDLD_DISABLE_BACKGROUND_TASKS="False"LD_DISABLE_URL_VALIDATION="False"LD_ENABLE_AUTH_PROXY="False"LD_CSRF_TRUSTED_ORIGINS="https://linkding.your-domain-name.here"

最後,透過執行以下命令來建立新的 Docker 容器:

docker compose up -d

為 SSL 建立 Nginx 反向代理

此時,您現在有一個在連接埠 9090 上執行的 Linkding 工作實例。但是,為了能夠公開存取它,您需要建立一個反向代理來使用 SSL 保護傳入連線

為您的實例建立一個新的網站設定檔:

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

將以下程式碼區塊貼到新網站檔案中:

server {
listen 80;
listen [::]:80;

root /var/www/html;
server_name linkding.your-domain-name.here;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:9090;
}}

刪除預設網站設定文件,並為新設定檔建立一個指向「/etc/nginx/sites-enabled」的符號連結:

sudo rm /etc/nginx/default
sudo ln -s /etc/nginx/sites-available/linkding /etc/nginx/sites-enabled/linkding

啟動並啟用 Nginx 守護程式以套用其新設定:

sudo systemctl restart nginx
sudo systemctl enable --now nginx

為您的連結實例啟用 SSL

確保您的電腦具有最新的核心快照二進位檔案:

sudo snap install core

安裝電子前沿基金會 (EFF) 的 Certbot snap 套件:

sudo snap install certbot --classic

將其註冊到 EFF 來測試您的 certbot 安裝是否正常運作:

sudo certbot register --agree-tos -m ramces@email.invalid

透過執行以下命令為您的實例請求 SSL 憑證:

sudo certbot --nginx -d linkding.your-domain-name.here

透過在 Web 瀏覽器上載入新實例的位址來測試您的新實例是否安全且正常運作。

顯示連結登入頁面的螢幕截圖。

在連結中建立新用戶

使用您在「.env」檔案中提供的超級使用者憑證登入新的 Linkding 實例。

顯示已填寫的連結登入提示的螢幕截圖。

點擊頁面右上角的“設定”連結。

反白顯示 Linkding 主頁中「設定」連結的螢幕截圖。

按一下 Linkding 設定頁面上的「管理員」標籤。這將打開連結管理員面板。

反白顯示「連結設定」頁面中「管理」標籤的螢幕截圖。

若要新增用戶,請按一下「驗證和授權」類別下「用戶」行旁的「新增」連結。

反白顯示連結管理面板中使用者部分下的新增連結的螢幕截圖。

為您的新 Linkding 使用者提供使用者名稱和密碼,然後按一下「儲存」以啟動您的新使用者。

顯示已填寫的新使用者提示的螢幕截圖。

透過不同的瀏覽器會話登入新使用者來測試它是否正常運作。

展示正在工作的新用戶的螢幕截圖。

停用現有用戶的連結

若要在連結中停用現有用戶,請前往實例的管理員面板,然後選擇「身份驗證和授權」類別下的「用戶」連結。

反白顯示連結管理面板中的「使用者」連結的螢幕截圖。

按一下您要停用的使用者名稱。這將載入該特定用戶的設定檔。

向下捲動至「權限」類別,然後取消選取「活動」標籤旁的核取方塊。

反白顯示「連結」使用者面板下的「活動」複選框的螢幕截圖。

向下捲動到頁面底部,然後按一下「儲存」以完全停用該使用者。

經常問的問題

不使用 Docker 可以安裝 Linkding 嗎?

不可以。Linkding 的開發人員將其設計為僅適用於 Docker 容器。這是因為該程式具有許多相互依賴項,需要以特定順序和特定方式部署才能正常運作。

是否可以將現有書籤匯入 Linkding?

是的。可以從其他外部書籤管理員匯入書籤清單。例如,您可以將Google ChromeMicrosoft Edge中的書籤直接複製到 Linkding。

是否可以在 Docker 之外備份 Linkding 資料庫?

是的。有兩種方法可以從 Docker 容器備份 Linkding 資料庫。首先,您可以進入「設定」頁面,然後進入「一般」標籤下的「匯出」類別。在其下方,按一下「下載」按鈕即可備份目前使用者的書籤。

其次,您可以登入Linkding伺服器並複製「~/linkding/data」目錄中的「db.sqlite3」檔案。與前者相比,這種方法的優點是「db.sqlite3」檔案包含整個實例的整個書籤資料庫。

圖片來源:Lauren Mancke,來自 Unsplash(背景)連結 Github(標誌)。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

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