在 Go 語言用一行程式碼自動化安裝且更新 Let’s Encrypt 憑證

Go-brown-side.sh 在去年寫了一篇『申請 Let’s Encrypt 免費憑證讓網站支援 HTTP2』教學,如果您是用 Nginx,就可以參考該篇教學讓您的伺服器支援 HTTPS,而 Google Security Blog 也宣布在 56 版本以後將會提示 non-secure 網站,讓使用者可以選擇性瀏覽網站。Let’s Encrypt 官方也公布去年 2016 發了多少張憑證,相當驚人,想必大家對 HTTPS 已經有相當程度的瞭解。底下這張圖說明 2016 年 Let’s Encrypt 發憑證總量的狀況 Screen Shot 2017-04-07 at 9.52.40 AM 此篇會介紹在 Go 語言如何跟 Let’s Encrypt 串接,底下有兩種方式。 Continue reading “在 Go 語言用一行程式碼自動化安裝且更新 Let’s Encrypt 憑證”

Debian/Ubuntu 的 update-rc.d 使用教學

Debian update-rc.d 是在 DebianUbuntu 內用來管理 /etc/init.d 目錄內的 scripts 工具。不管是 Nginx 或 Mysql 等相關服務,都可以在 /etc/init.d 目錄內找到相對應的 script 檔案,隨便打開一個 script 檔案就可以看到標頭有固定的格式寫法:
### BEGIN INIT INFO
# Provides:          gorush
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the gorush web server
# Description:       starts gorush using start-stop-daemon
### END INIT INFO
Continue reading “Debian/Ubuntu 的 update-rc.d 使用教學”

Go 語言官方推出的 dep 使用心得

Go-brown-side.sh Go 語言團隊在去年開始開發 Dependency Management Tool 稱作 dep,並且預計明年 2018 推出 1.10 Go 版本時內建,詳細可以參考官方的 roadmap,強者我朋友寫了一篇使用教學,有興趣的朋友可以參考看看,但是本篇會講幾點我目前不打算用 dep 的原因。 Continue reading “Go 語言官方推出的 dep 使用心得”

用 Golang 寫 Command line 工具

Go-brown-side.sh 如果你要寫 Command line 工具,又想在各平台 (像是 MacOS, Windows 或 Linux) 上執行,這時候 Golang 就是您最好的選擇。在 Reddit 讀到一篇 Command line 工具比較介紹,這篇最主要講到兩個 CLI 工具,一個是 urfave/cli,另一個是 spf13/cobra,這兩個工具其實都非常好用,後者是去年加入 Google Golang 團隊spf13 所開發,該作者加入 Google 後呢,非常的忙,但是強者他同事有幫忙繼續維護 cobra 專案,兩個 CLI 工具各自都有有大型專案使用 urfave/cli 有 docker/libcompose, docker/machine, Drone, Gitea, Gogs 等,而後者 spf13/cobra 則有 docker, docker/distribution, etcd 等。本篇筆者會介紹 urfave/cli 該如何使用? Continue reading “用 Golang 寫 Command line 工具”

Caddy 搭配 Drone 伺服器設定

The_Caddy_web_server_logo.svg

緣由

Caddy 是一套 HTTP/2 伺服器,你可以想成跟 Nginx 是同一種角色,但是 Caddy 有一點不一樣的地方就是自動支援 HTTPS 設定,也就是 Caddy 幫網站自動申請 Letsencrypt 憑證,開發者不需要擔心憑證會過期,Caddy 會定期幫忙更換。Drone 則是一套以 Docker 為基礎的 Continuous Integration 平台。就在上個月 Caddy 發佈了 0.9.5 版本,更新過後,發現 Drone 的 WebSocket 連線會斷線又連線,底下來看看 Caddy 更動了什麼造成 WebSocket 連線失效。 Continue reading “Caddy 搭配 Drone 伺服器設定”

從商業利益看 Go 程式語言

Go-brown-side.sh 從 2016 年開始寫 Go 程式語言,在這一年我向很多朋友介紹了 Go 語言,很多人就不經問到為什麼我這麼喜歡 Go 語言,在公司內同事或主管更會問,為什麼要從 Node.js 或其他語言轉換到 Go,Go 語言有什麼地方可以帶給公司更大的利益,否則為什麼要多花時間跟人力去嘗試 Go 語言。如果團隊要建置一個商業 Web 服務,那我覺得底下的優點,是讓您選擇 Go 語言的最主要原因。 Continue reading “從商業利益看 Go 程式語言”

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

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