目前KMOLab 的所有課程都架構在 Github 與 Gitlab 的網際雲端服務之上, 幾個禮拜前由於大量用戶透過免費的 CI/CD 服務進行數位貨幣挖礦, 導致許多採取學號連號建立的 Github 帳號莫名被禁用, 而 2021.05.14 之後所建立的 Gitlab 帳號也必須提供簽帳卡或信用卡號, 經過認證才能使用 CI/CD 服務.
面對這個突如其來的事件, 不僅這些被禁用的帳號倉儲無法公開顯示提交歷程 (有些帳號向 Github 反應後已經解禁, 但仍有帳號無法解禁), 必須透過 CI/CD 轉為 Github Pages 或 Gitlab Pages 的服務也無法執行. 因此只能在工作站室中的伺服器設法提供類似的服務補救.
自行架構網際伺服器
由於在 2017 年, 曾經利用電腦輔助設計室汰換電腦時所移出的許多舊電腦, 執行過 gogs 與 Fossil SCM 服務, 這時正好可以利用 gogs 展開原先推送到 Github 的倉儲提交歷程, 而 Fossil SCM 伺服器中的 Project Documentation 功能則正好可以用來取代 Github Pages, 讓使用者展示倉儲中各版本的靜態網頁.
理論上很簡單, 只要分別下載 gogs 與 Fossil SCM 的套件, 然後設法找一台虛擬主機安裝配置即可. 但若希望透過程式方法, 幫這許多用戶設定帳號與密碼, 就必須要建立一組網際程式套件, 讓各學員自行登入系統建立所需的帳號或倉儲.
gogs 伺服器原本就提供使用者自行註冊帳號的功能, 因此問題較小, 比較大的問題是: gogs 好像只支援 IPv4, 因為時間緊迫, 沒有多花時間在這上面, 只能找了一個 IP, 設定符號名稱, 利用 Stunnel 與 Letsencrypt 讓 gogs 伺服器可以採 https 協定上線, 如此使用者就能自行登錄帳號, 將 Github 倉儲的提交歷程在 gogs 伺服器中展開.
Fossil SCM 網際登錄 app
任務解決了一半, 接下來則希望建立一組網際程式, 採用 Google Oauth2 讓使用者透過學校配發的 @gm 帳號登入, 然後自選管理密碼後, Fossil SCM 伺服器就能設法配置好能讓使用者提交推送的 Github 倉儲, 展示出 CMSiMDE 倉儲中的靜態網頁.
初步建立 fossilapp 的流程請參考: http://mde.tw/cd2021/content/fossilapp.html.
No comments:
Post a Comment