十一月 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
重點整理
- 要記得使用links,要不然會導致容器間無法溝通,讓YOURLS服務起不來
- 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來進行環境部署,因此更新版本就容易多了。當然,若你會擔心,還是要記得備份以下資料庫,再進行以下的步驟囉
- 更新YOURLS的影像檔
$ docker pull yourls
- 一鍵更新
$ docker-compose up -d
結論:
覺得是一個非常好用的工具,而且在廣大的社群幫忙下,有數量很多的相對應插件可以使用,這個是我很想要使用的原因:) 有興趣的人,可以一起來玩玩,現在也支援到php7.2囉。