整理文件發現好多檔案在多個終端裝置上都有存檔,整理起來費勁。希望所有檔案可以多裝置同步,頻繁編輯的檔案最好還兼具版本管理的功能。從有限的個人經驗裡想到先搭建個GitLab在個人區域網裡,把頻繁編輯檔案的同步和管理解決掉。
目前的同步都在區域網內,安裝過程(需網路),配置和同步過程需切換內網。每次同步都切換內網,雖麻煩但暫時不改。
涉及到vmare/ubuntu/gitlab/git/pkg/ssh/apt/vim/nano等軟體或系統使用。
本文章步驟不詳細主要列大綱,參考的文章都有連結,除unbuntu安裝沒參考其它文章。
1. win11 安裝虛擬機器
- vmware17.0資源。
- vmware17.0 安裝步驟只參考其中的虛擬機器安裝部分即可。
2. 虛擬機器安裝Unbuntu
- ubuntu下載映象源,官網下載需要login。
- 考慮自己的記憶體和硬碟空間選擇了一個無GUI的server版本ubuntu-24.04.1-live-server-amd64。
2.1 新建虛擬機器
步驟略(本次用的配置為2核4G記憶體30G記憶體),在新建虛擬機器嚮導中,指定磁碟容量步驟建議將虛擬機器磁碟儲存為單個檔案(以便跟後續移動虛擬機器時,給新虛擬機器新增硬碟),大小根據需要而定 。
2.2 Unbuntu系統安裝步驟
配置虛擬機器的cd/dvd路徑為下載的ubuntu iso的路徑.新建完成後直接開機即可,安裝過程需要連網。
虛擬機器開機,基本無腦下一步,記錄自己做過的幾個選擇如下:
- 安裝還是測試,選擇安裝。
- 已經下載的當前版本,是否update,選否。
- 鍵盤佈局選擇,使用的預設English-US。
- choose the base of installation.Unbuntu Server/--minimized/additional option search for the third-party drivers,選擇第一個。
- network configuration 選的預設。
- proxy 沒有填寫。
- ubuntu mirror address 沒有更改。
- 配置a guided storage layout,or custom(自定義)one,預設即可。
- 配置使用者資訊時myname/servername/username/pwd,分別是使用者名稱字/機器名字/登陸系統用帳戶和密碼。
- 不升級ubuntu pro。
- 安裝opensshserver。
- 網路介面卡設定橋接模式/NAT模式/僅主機模式/自定義/LAN區段,使用的預設NAT模式。
3. Unbuntu安裝Gitlab
參考:如何在Ubuntu 18.04上安裝和配置GitLab
2023最新Ubuntu安裝部署Gitlab詳細教程(每個步驟均配圖)
3.1 安裝依賴項
sudo apt update
sudo apt-get upgrade
sudo apt-get install curl openssh-sever ca-certificates postfix
執行以上命令,在postfix安裝時彈出的配置選項我選擇的Internet Site 確定,下一頁再確定就可以.
3.2 安裝gitlab
- 新增 GitLab 倉庫,執行以下 curl 命令。它將自動檢測你的 Ubuntu 版本並相應地設定倉庫。
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
2. 在ubuntu上自動安裝和配置gitlab-ce
sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce
備註:EXTERNAL_URL主要涉及gitlab的登陸地址,本次均使用的是區域網內的IP地址登陸的GitLab。EXTERNAL_URL設定就無關緊要。
3. 終端顯示gitlab狐狸圖形表示安裝完成.
4. Gitlab伺服器設定 (下面的步驟不需要虛擬機器就不再需要網路了)
4.1 防火牆設定
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw status
備註:允許http(80埠)和https(443)埠,/etc/services檔案中提供了HTTP和HTTPS的埠對映協議,因此我們可以按名稱允許該流量。sudo ufw status檢視當前防火牆狀態。
4.2 管理員使用者名稱密碼設定.
- 預設的管理員使用者名稱root,密碼存放在/etc/gitlab/initial_root_password文件中,需要修改。
- 開啟控制檯 sudo gitlab-rails console -e production
- 查詢使用者賬號資訊並賦值給u u=User.where(id:1).first
- 設定root的密碼 u.password = '
' - 確認密碼 u.password_confirmation = '
' - 儲存資訊(勿丟感嘆號) u.save!
- 退出 exit
- sudo vim /etc/gitlab/gitlab.rb中external_url設定gitlab網頁ip和埠號,沒做修改。
4.3 伺服器的簽名證書(本步驟未驗證)
為提高安全性,可使用自簽名證書或 Let's Encrypt 為 GitLab 例項配置 HTTPS。Let's Encrypt 只適用於網際網路上有 A 記錄的公有域。
- sudo nano /etc/gitlab/gitlab.rb,進入規則檔案將external_url中的http改為https.
- 從Let's Encrypt請求和啟用免費TLS / SSL證書的功能.取消註釋並填寫此內容letsencrypt['contact_emails']
- 使用自簽名證書來確保 GitLab 的安全。參考linux中國上的文章如何在Ubuntu安裝Gitlab
4.4 常用伺服器命令
- 啟動/停止/重啟/重配gitlab服務 sudo gitlab-ctl start/stop/restart/reconfigure
- 設定開機自啟動 sudo systemctl enable gitlab-runsvdir.service
5. 登陸伺服器及新建賬號
- 網頁登陸gitlab,位址列輸入unbuntu虛擬機器的地址,管理員使用者名稱密碼用4.2裡面設定的即可。
- 新建賬號在登陸網頁選擇註冊即可,註冊完需要再以管理員賬戶登陸approve一下.
6. 伺服器建倉庫,win11建倉庫並連線到伺服器倉庫
- 用註冊的賬號登陸gitlab,新建test倉庫,沒有特殊需要使用預設選項.
- win11上在需要上傳的專案目錄下,執行初始化倉庫,暫存所有文件,提交(終端執行以下命令git init/git add ./git commit -m commitmessage).
- 配置金鑰使得本地主機能和gitlab伺服器能建立ssh連結
- win11主機在終端執行 ssh-keygen -t rsa [-C "it@szhuarong.com"],方括號內未驗證.
終端回應詢問建立位置,和兩次輸入密碼,本次使用的都是回車預設或空.本地使用者目錄的本賬號目錄下將會生成.ssh/id_rsa.pub(需要複製到GitLab).
- win11主機在終端執行 ssh-keygen -t rsa [-C "it@szhuarong.com"],方括號內未驗證.
- 登陸新建的gitlab賬號例如Example,單擊個人資料設定在左側列表中選擇SSH金鑰,新增新金鑰,將id_rsa.pub中的內容複製到網頁輸入框內儲存,取消時間框設定將金鑰將永久有效.
- 測試連結ssh -vT git@172.23.23.23,IP更換為自己的gitlab伺服器IP即可.
- 本地專案中新增遠端專案的連結地址
git remote add origin git@172.23.23.23:Example/test.git(假設你已經初始化好本地倉庫並在Example賬號下新建好工程test).
git remote -v,檢視本地設定的遠端連結地址. - 將本地分支推送到遠端.
git push origin <branchname> branchname 要推送的分支名稱.
7. 手機下載安裝termux並連線到伺服器倉庫
網上搜尋了許多推薦軟體sgit mgit github/gitee網站推薦,最後決定用termux安裝git,這樣不用擔心git客戶端不升級,而且termux可以擴充套件更多應用。
參考 手機軟體推薦。安卓手機上的Git伺服器
7.1 手機安裝termux
termux github倉庫。termux wiki。
下載安裝termux,安裝apk.下載的版本為termux-app_v0.118.1+github-debug_universal.apk。
7.2 termux 安裝Git
在termux中安裝git及相關軟體.手機termux終端輸入pkg install git openssh vim termux-auth.(並沒有設定termux映象,好像安裝命令後自動測試了可用映象源).
7.3 手機從Gitlab同步文件
- termux生成金鑰複製到對應gitlab網頁.termux終端輸入 ssh-keygen -t rsa生成金鑰,像步驟6裡那樣複製到Gitlab伺服器即可。
- termux訪問手機儲存授權,termux終端輸入termux-setup-storage.termux軟體的存放路徑在手機不可見,用pwd命令即使看到termux的路徑也在手機中找不到.執行這條命令會將DCIM downloads music等資料夾掛在termux的當前home路徑下。透過這步可以在手機可見的資料夾裡同步檔案。
- termux中cd `/storage/download,然後git clone+倉庫ssh地址即可。
- 修改檔案後用git push 命令推送到伺服器。
注意:
- 手機操作空白md檔案後儲存的不是UTF8格式,手機上裝的軟體目前還沒找到能夠另存為utf8的軟體,暫時用mt管理器編輯檔案。
- git倉庫的分支管理;git fetch/merge/pull,git status/git show等常用命令熟悉。