免安裝 Golang 環境快速編譯 Golang 多平台的執行檔

​ 最近在編譯一些 Golang 的時候被環境設定搞快瘋掉,有次編譯過程還把我一台甲骨文機器搞掛掉 只能手動去甲骨文網站後台強制重開機才恢復,差點吐血。。。 之後在推特上面咆哮了一下,吸引了幾個技術大神空投解決方案,萬事問推友真是一點都沒說錯~ 😀 ​ https://t.co/IYspQcWy0D — 一阁 (@yegle) April 24, 2020 ​ 稍微看一下 GoBinaries 說明書,這玩意真神器,只要一行指令就能直接產出編譯好的 Go 執行檔 什麼 Go 環境、依賴都不用管啦~速度之快,人都還沒反應過來就已經完成了~ 😱 ​ ​ GoBinaries 30 秒快速解決方案 下面以之前介紹過的 MTProxy-Go 為例,有時候作者原始碼已經更新加入新功能,但是 Releases 裡面不見得馬上放出來 這時候想要享受新功能就必須自己抓原始碼下來自己編譯了~ MTProxy-Go 項目的網址是: https://github.com/9seconds/mtg 我們只要拷貝 github.com 網址後面的部分即可,也就是 9seconds/mtg 接著在你想要執行的機器上,使用下面一行指令即可完成執行檔的下載 curl -sf https://gobinaries.com/9seconds/mtg | sh ​ 也可以下載指定的 tag 版本 curl -sf https://gobinaries.com/9seconds/[email protected] | sh ​ 執行時,他會根據你的 CPU 與系統,網路速度不差的話很快就下載下來,並且還幫你安裝到 /usr/local/bin 資料夾裡面 馬上就能開始用了,超方便! ​ 如果你有權限問題,沒辦法寫入 /usr/local/bin 的話,也可以加個 PREFIX 參數把執行檔放到目前目錄下 curl -sf https://gobinaries.com/9seconds/mtg | PREFIX=. sh ​ ​ 完整 Docker 版萬解方案 此方案來自另外一位推友技術大神 ​ docker pull golang:alpine 编译啊 环境都准备好的 ...

April 25, 2020 · 1 min · jkgtw

Docker 全自動無人值守升級 WatchTower

​ Docker 的好不用我再多說,用過的都知道~ 我早期接觸 Docker 是在群暉 DSM 裡面,當時都是傻傻手動更新 後來有發現一個可以全自動幫你升級到最新映像檔的工具「WatchTower」,完完全全無人值守,非常方便好用 ​ 而且啟用非常簡單,基本上就是一行指令就能完成部屬 下面是簡單範例: docker run -d --restart=always \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ beatkind/watchtower \ --cleanup --remove-volumes \ --interval 43200 ​ 第五行是每次更新完後,會自動幫你刪掉舊的映像檔跟匿名磁碟空間,可以幫你節省硬碟空間 這在一些空間不是很多的機器上很有用,基本是必加的參數 WatchTower 官方預設是不刪除舊的映像檔,上次我沒加這參數,結果在一台樹莓派裡面某個映像檔作者更新太頻繁 一個禮拜就把我 64GB 記憶卡容量吃光了。。。 🤣 ​ 第六行可加可不加,官方預設是 86400 秒(24 小時)檢查一次,覺得太頻繁或者太少的話可以自己調整數字 ​ 如果你還需要更進階的使用方法,可以參考: 官方說明書 https://watchtower.devcdn.net/ ​ 上面指令輸入完畢後,WatchTower 就會啓動並開始幫你監控機器上所有正在執行的容器 每隔一段時間發現有新的映像檔後,它就會幫你下載最新映像檔 並且使用你當初建立該容器時的相同環境設定去幫你重新啓動容器 ​ 當然如果你是在生產環境或者不放心讓它自動更新的話,也可以使用 monitor-only 參數來監控就好 並用 Notifications 來主動通知你有更新了~ 🖖

April 11, 2020 · 1 min · jkgtw

完全 Docker 化搭建 FreshRSS + Traefik 反向代理

​ Docker 真的是一個越用越上癮的應用,目前我在效能可以勝任的時候都會盡量 Docker 化 隨便亂搞一通,壞掉了就刪掉,重新再啓動一個容器又能繼續玩~ 不會因為手賤搞砸了某東西就影響到整台機器的系統,備份跟搬家也是輕輕鬆鬆~ 上次介紹的 Minflux + RSSHub 與 Caddy 反向代理搭配,可以很快搭出一套屬於你自己的 RSS 閱讀器 今天來介紹另外一種也是很夯的反向代理與負載平衡服務「Traefik」,特點是 Go 語言與 Docker 深度結合 這篇就來搭配使用搭建另外一套開源的 FreshRSS 閱讀器吧! ​ 他就像一個交通警察在路口指揮交通~ 如果你跑許多應用跟服務,Traefik 可以輕鬆的幫你管理網路應該怎麼走不塞車 而且 Traefik 可以做到類似熱插拔的功能,不需要關閉甚至重新啟動任何服務 只要新增新服務時候貼上對應標籤,Traefik 會自動接管並啓動,完全不影響內部其他服務 ​ ​ Traefik 設定與啓動 廢話不多說,在裝好 Docker 環境以後,我們就可以開始設定 Traefik # 先在 Docker 內部建立一個專屬網路 $ docker network create reverse-proxy ​ 接著建立安裝會需要用到的資料夾與 docker-compose 設定檔 # traefik 會放 docker-compose, certs 會放自動申請的 SSL 憑證 $ mkdir ~/traefik && mkdir ~/traefik/certs && cd ~/traefik $ nano docker-compose.yml ​ 拷貝以下內容,貼上後需要修改 16、25 行的 email 跟 volumes 的 certs 路徑,其他可以不用動,保存然後退出 ...

March 10, 2020 · 3 min · jkgtw

Docker 快速搭建 Miniflux + RSSHub

​ 最近群裡面熱鬧許多,有些原因是不少人都開到終身免費的 Oracle Cloud 虛擬機 開始想著在虛擬機裡面安裝各種應用,像是之前說到的 Outline,還有皮樂大大寫的 v2ray + MTProxy 今天來講講 RSS 閱讀器的搭建,之前有介紹過 Miniflux 的安裝,不過搭建起來比較麻煩 對於新手來說步驟有點多,安裝過程只要有一個步驟錯誤就常常不知所措 所以還是來個 Docker 快速版本吧,也順便把超好用萬物皆可 RSS 化的 RSSHub 一起打包進去~ ​ ​ Docker Community 穩定版安裝 首先 SSH 連到伺服器裡面,先從安裝 Docker 跟所需軟體開始 # 先完整更新一下系統 $ sudo apt update && sudo apt full-upgrade -y # 安裝一下等下會需要用到的軟體 $ sudo apt install nano curl wget libcap2-bin -y ​ 接下來使用官方 Get Docker 自動安裝的腳本 $ curl -fsSL https://get.docker.com/ | sh 以上一條指令輸入完,稍等片刻就自動完成 Docker 安裝 安裝完 Docker 以後,我們設定一下 Docker 權限,將自己帳號新增到 Docker 群組裡面 # 將你帳號加入 docker 群組 $ sudo usermod -aG docker $USER # 退出 $ exit 完成以後,再登入回去機器中即可生效(有些機器可能要重開機才會生效) ...

March 6, 2020 · 4 min · jkgtw

用 Docker 快速搭建 iOS / macOS 按需連線的 IKEv2 VPN Server

​ 之前寫過兩篇介紹在樹莓派搭 IKEv2 VPN Server,以及按需連線(On Demand)的文章 當時很多人跟我說步驟太多太複雜,其中一個步驟搞錯就搭不起來 最近我新入手一台 Intel i5 mini PC,主要想把群暉 NAS 上面很多在跑的軟體都移轉過去,順手整理一下內部網路環境 因為我發現我給群暉 NAS 太多工作,他有點不是很開心,速度越來越慢了。。。 ​ 然後我看了一看之前文章,我自己也覺得很繁瑣,就乾脆重新用 Docker 來搭建 VPN Server 🤣 當初會用原生來搭建是因為擔心樹莓派用 Docker 模擬的方法效能不足。。 ​ 搜尋一下 Docker Hub 相關資源,找到一個不錯的版本 只要兩行指令就能搭好 IKEv2 VPN Server 與 On Demand 的 iOS / macOS 描述檔,非常方便! 原始程式網站在這: https://github.com/billimek/ikev2-vpn-server ​ 不過在開始前,要先製作一個 strongswan.conf 的設定檔 因為作者 Docker 映像檔裡面塞了一個國外的 DNS Server,我們在台灣使用的話速度超慢 所以我們要另外做一個設定檔,把它換成 CloudFlare 跟 Google 的 DNS 速度就會快上許多 ​ 當然你也可以改成你自己的,甚至是你自己搭的 AdGuard Home or PiHole 廣告阻擋器 ​ # SSH 登入到你要安裝的主機中 $ ssh username@IP # 建立一個設定檔 $ nano ~/strongswan.conf ​ ...

November 4, 2019 · 1 min · jkgtw