開發者另類的自架 Git 服務選擇: Gitea

現在 Git 服務最有名的就是 Github,如果是開放原始碼,我很推薦 Github。如果是想要放大量私有專案或企業內及個人使用,想必大家會推薦 Gitlab,在這裡就不多介紹 Gitlab 了,可以從 Google 找到許多相關資料,本篇會介紹另類的 Git 自架服務選擇 Gitea,在介紹之前可以先參考我在 2014 年寫了一篇用 Go 語言開發的 Git 服務叫做 Gogs

[Read More]

在 Mac 建立新帳號,並且開通 ssh 權限

為什麼我會需要在 Mac 建立新帳號呢,原因就是最近用 Golang 寫了 SCP 工具,此工具支援 Password 或 SSH Public Key 登入,我又不想拿個人帳號寫在 Testing 檔案內,所以才會想到在 Mac 建立一個帳號好了,本篇就是教大家如何在 Mac 建立新帳號,並且開通 SSH 權限。

[Read More]

用 drone-line 架設 Line webhook 及發送訊息

之前寫了一篇教學『用 Docker 發送 Line 訊息』,但是前提是你要先學會 Docker,對於完全沒有 Docker 經驗的初學者來說,學習起來相當不容易,所以我將 drone-line 編譯出 Linux, Mac OS X 或 Windows 都可以執行的 Binary 檔案,方便初學者可以直接下載執行檔,在任何環境都可以運作,請直接參考 v1.4.0 Release 頁面,如果還是想用 Docker 版本的,可以直接參考 Docker Hub 上的 drone-line repo,底下會教大家如何執行 Line webhook service 及發送訊息,尚未申請 Line Developer 帳號,請直接參考前一篇教學

[Read More]

Linode 推出新的 Datacenter 據點 Tokyo 2

Screen Shot 2016-11-22 at 10.53.16 AM

在半年前 Linode 13 歲生日送了一份很大的禮物給大家,就是免費讓大家升級記憶體,這個禮物只限定在非東京據點,對於東京的用戶只能等待,就在今天 Linode 終於宣佈新的服務據點 Tokyo 2,新的東京據點比照[現有的牌價]收費,官方也提供教學讓各地區快速的轉換到東京據點。

[Read More]

輕量級 Gofight 支援 Echo 框架測試

Gofight 是一套用 Golang 撰寫的輕量級測試工具,專門測試 Golang Web Framework API,可以參考之前一篇教學: 用 gofight 來測試 golang web API handler,在 Echo 框架發布 v3.0.0 之前,Echo 不支援 golang 標準的 http.Requesthttp.ResponseWriter,反倒是支援 fasthttp,所以我發了 Issue 希望作者可以支援原生的 http 標準,最後沒有得到回應。就在前幾天 Echo 在 v3.0.0 版本把 fasthttp 拿掉,這樣 Gofight 就可以移除特定函示,改用原生 http。

[Read More]

用 Docker 發送 Line 訊息

docker

今年各家網路公司 (Facebook, LineTelegram…) 分別推出 Bot 服務,看起來 Bot 會是未來趨勢,對 Bot 不是很了解的話,可以參考 Eric ShangKuan 寫了一篇: 關於寫對談機器人 (bot) 的兩三事。本篇會介紹如何透過 Docker 整合 Line Message API,下面所有指令都會跟 Docker 有關,但是程式碼都是用 Golang 撰寫,想說順便在台灣推廣 ^__^。就在今年四月 Line 推出第一版 SDK,但是到了九月,突然收到 Line 的通知,說舊版的不支援了,請大家換到新板 API,最近更動到新版本時,踩到官網 UI 的雷就是原來 Line 有分 Developer 跟一般帳號,這兩種差別就是在於有無主動 Push Message 功能,後來在 Line-Go-SDK 發問才找到解答。底下會一步一步教大家如何透過 Docker 發送 Line 訊息。

[Read More]

用 Yarn 取代 Npm 管理 JavaScript 套件版本

yarn-kitten-full

新一代戰神 Yarn 終於在昨天出爐了,Yarn 跟 Npm 一樣都是 JavaScript 套件版本管理工具,但是 Npm 令人詬病的是安裝都是非常的慢,快取機制用起來效果也不是很好,所以 Yarn 的出現解決了這些問題,透過 Yarn 安裝過的套件都會在家目錄產生 Cache (目錄在 ~/.yarn-cache/),也就是只要安裝過一次,下次砍掉 node_modules 目錄重新安裝都會從 Cache 讀取。Yarn 詳細的功能架構可以參考 Facebook 發表的 Yarn: A new package manager for JavaScript,本篇不會教大家怎麼使用 Yarn,因為指令實在是太容易了,可以參考官方提供的如何從 npm 轉換到 yarn,底下則是來測試比較兩者安裝套件的速度。

[Read More]

申請 Let’s Encrypt 免費憑證讓網站支援 HTTP2

Letsencrypt

寫這篇最主要推廣讓網站都支援 HTTPS 加密連線HTTP2 協定,對於網站為什麼要支援 HTTP2,可以直接參考 ihower 寫的說明文章,最近在玩 Facebook, Line, Telegram Bot 時,填寫 Webhook URL,都強制要填寫 https:// 開頭,所以更不能忽略 HTTPS 了。,去年底寫了一篇 Let’s Encrypt 開放申請免費 SSL 憑證 推廣 Let’s Encrypt 的貢獻,讓買不起憑證,又想玩看看 HTTP2 的開發者可以用很簡單的方式來安裝及自動更新憑證,而 gslin 大為了推廣 HTTPS 也做了一個網站教學,文章寫得相當清楚,支援 ApacheNginx 設定。

[Read More]

SSH agent forwarding 教學

2016.11.13 Update: SSH Agent Forwarding 有安全性問題,請用 ProxyCommand 取代,請參考 SSH Agent Forwarding considered harmful Screen Shot 2016-10-05 at 9.26.13 AM

SSH agent forwarding 可以讓開發者將 Local 端的 SSH Key Pair 帶到另外一台機器進行傳送,也就是說你不用將 SSH Key 複製到遠端 Server 再進行跳板動作,原本在 AWS 維護多台 EC2 主機,都會固定有一台跳板機,大家都把自己需要登入遠端機器的 SSH Key 複製到跳板機,這做法其實沒有很安全,又需要多下一個指令進行跳板。

個人電腦 -—> EC2 跳板機 -—> EC2 Server

大家都會把 Key Pair 存放到跳板機,安全性堪憂,只要這台主機被 Hack,或者是內部員工登入,拿別人的 Key Pair 登入其它主機,不就可以搞破壞?所以此篇教學主要教大家如何設定 SSH agent forwarding,讓憑證只存放在自己電腦,而不需上傳到 EC2 跳板機。這樣跳板機就真的只是跳板機,不需要存放任何憑證資料,每小時設定清空 Ubuntu User 家目錄,避免內部員工放個人資料或憑證,提升主機安全性。

[Read More]
AWS  devops  SSH 

在 Travis 實現 Docker Cache

前一篇寫了『用 Travis 自動上傳 Docker Image』,Travis 跑完測試成功後才自動編譯 Docker Image 並且上傳到 Docker Hub。在每次 commit 後,Travis 執行 docker build 時間總是非常長,當然原因很多。如果選用的 Docker base image 非常肥,指令非常多,每次編譯都要重新下載及執行指令,所以執行時間就是這麼長。本篇就是想辦法減少 Travis 編譯 Image 時間,就像把 node_modules 壓縮起來,下次執行測試前先解壓縮再安裝,可以大幅減少 npm install 時間(可以參考之前的『用一行指令加速 npm install』)。這邊我們就需要用到 Travis 的 Cache 功能

[Read More]