十一月 12, 2018 | 伺服器和Devops

【伺服器】如何使用Docker自架私有短網址YOURLS服務

客製化短網址網域,增加點閱率!
自從goo.gl的短網址服務在2018年初宣布即將暫停所有服務後,震驚了非常多人,也讓所有的小編們,到處尋找可以替代的服務。我們也因為客人與自身公司的需求,進而找到了這一個可以自架的短網址服務YOURLS,若你(妳)也需要短網址服務,不妨也試試。

前言

自從goo.gl的短網址服務在2018年初宣布即將暫停所有服務後,震驚了非常多人,也讓所有的小編們,到處尋找可以替代的服務。我們也因為客人與自身公司的需求,進而找到了這一個可以自架的短網址服務YOURLS,若你(妳)也需要短網址服務,不妨也試試。

取而代之的短網址服務

YOURLS是Your Own URL Shortener的縮寫,意思即是自己的短網址服務。在2009年七月就已經推出了正式版。到目前為止已經到了1.7.2的版本,並且持續在更新與改進中。

幾個重要特點整理如下:

  • 免費且開源
  • 私有使用或公開使用
  • 自訂網址關鍵字或系統以數字順序自建短網址
  • 實用的Bookmarklets,更容易使用與分享
  • 各式各樣報表(點擊紀錄、來源追蹤、地理位置追蹤)
  • Ajax的介面
  • 支援Plugin開發新的功能
  • Developer API支援
  • 完整的JSONP 支援
  • 友善的安裝介面

Plugin支援

有了完善的API與Plugin,就可以開發或安裝一些更進階的插件,讓功能變得更強大。 現在社群裡面,已經有不少的貢獻者開發了對應的插件,並且貢獻在Github上面。整理的資源可以參考:YOURLS社群資源統整

使用Docker-compose安裝YOURLS

在這裡簡單的使用docker-compose來進行yourls的安裝,若你不是很瞭解要怎麼處理,可以參考我們的一些技術文章囉,這裡就不方便多描述了

version: "3.5"
services:

  mysql:
    image: mysql:5.7.22
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
      - MYSQL_DATABASE=yourls
      - MYSQL_USER=yourls
      - MYSQL_PASSWORD=yourls
    volumes:
      - ./mysql/db/:/var/lib/mysql
      - ./mysql/conf/:/etc/mysql/conf.d
    restart: always
    container_name: mysql
  
  yourls:
    image: yourls
    restart: always
    ports:
      - "80:80"
    environment:
      YOURLS_DB_HOST: mysql
      YOURLS_DB_USER: yourls
      YOURLS_DB_PASS: yourls
      YOURLS_DB_NAME: yourls
      YOURLS_USER: admin
      YOURLS_PASS: admin
      YOURLS_SITE: http://awesomedomain.com
      YOURLS_HOURS_OFFSET: 8
    container_name: yourls_service
    links:
      - mysql:mysql

重點整理

  1. 要記得使用links,要不然會導致容器間無法溝通,讓YOURLS服務起不來
  2. YOURLS參數說明
    • YOURLS_DB_HOST:預設是MYSQL,跟Links的名稱需要對應
    • YOURLS_DB_USER/YOURLS_DB_PASS/YOURLS_DB_NAME:跟MYSQL所建立的資料庫帳號密碼需要對應
    • YOURLS_USER:登入系統的帳號
    • YOURLS_PASS:登入系統的密碼
    • YOURLS_SITE:網站的網址,也是用於短網址使用
    • YOURLS_HOURS_OFFSET:時區(台灣:+8)

啟用服務

$ docker-compose up -d

進入安裝畫面

  • 前往以下網址
http://awesomedomain.com/admin
  • 按下中間的安裝按鈕,即可完成安裝

完成安裝

更新YOURLS版本

由於使用Docker來進行環境部署,因此更新版本就容易多了。當然,若你會擔心,還是要記得備份以下資料庫,再進行以下的步驟囉

  1. 更新YOURLS的影像檔
$ docker pull yourls
  1. 一鍵更新
$ docker-compose up -d

結論:

覺得是一個非常好用的工具,而且在廣大的社群幫忙下,有數量很多的相對應插件可以使用,這個是我很想要使用的原因:) 有興趣的人,可以一起來玩玩,現在也支援到php7.2囉。

參考資料

  1. YOURLS官方頁面
  2. YOURLS社群資源統整
  3. 替代 goo.gl 的 8 種短網址服務,各有特色的讀者推薦整理