在 Raspberry Pi 上安裝 Gitea 以創建您自己的代碼存儲庫

在 Raspberry Pi 上安裝 Gitea 以創建您自己的代碼存儲庫

Git 是一個版本控制系統,軟件開發人員、編碼人員和修補匠使用它來協作和分發開源項目。使用 Git,您可以處理任何規模的項目,引入代碼更改和合併,並允許用戶將您的存儲庫克隆到他們自己的機器上。開源生態系統在 Git 上運行,PCPC.me 上的許多項目都涉及使用來自 GitHub 的資源。使用 Gitea,您可以在自己家中的 Raspberry Pi 上託管您自己的全功能 Git 存儲庫。

為什麼在 Raspberry Pi 上託管自己的 Git 服務而不是使用 GitHub?

顯示 React 源代碼文件列表的 GitHub 存儲庫頁面

GitHub 擁有 5500 萬用戶,是地球上最大的免費和開源軟件存儲庫,但它目前的所有者微軟並不適合擔任保管人的角色。該公司的前任首席執行官將 Linux 和通用公共許可證描述為“癌症”,並且微軟自己的大部分產品都是專有的和封閉源代碼的。

微軟的所有權也讓 GitHub 探索了一些道德上可疑的技術——特別是 GitHub Copilot,這是一種幫助程序員生成代碼的人工智能工具。Copilot 接受了來自 GitHub 的數據培訓,這可能違反了編碼人員使用的知識共享許可條款。

通過使用 GitHub,開發人員正在創造另一個瓶頸,在這個瓶頸上創新可能會被扼殺、破壞並受到無意義的干擾。

Gitea 讓你在樹莓派上搭建你自己的 Git 服務器

Gitea 是 Gogs 的一個分支,是一個社區管理的輕量級代碼託管解決方案,用 Go 編寫,並在 MIT 許可下發布。它的目標是擁有比其前身更開放、更快速的開發模型,並將在資源有限的機器上運行,例如 Raspberry Pi。您將能夠處理您的點文件、自定義 Ubuntu ISO、Bash 腳本以及 Java 和 Python 實用程序,而不必擔心它們會受到 DMCA 刪除、被用於訓練惡意軟件或以其他方式不受您的控制.

如何在你的樹莓派上安裝 Gitea

Gitea 有多種安裝方法,但最簡單的一種是通過 Docker。如果您的 Raspberry Pi 上還沒有運行這些,請立即安裝 Docker 和 Docker Compose。

您存儲在 Gitea 服務器中的文件可能會佔用大量空間,因此我們建議在您的 Raspberry Pi 上使用外部存儲,並將其用作 Gitea 安裝的位置。

通過 SSH 連接到你的 Pi,然後導航到你想要安裝 Gitea 的位置,並創建一個新目錄,然後移動到其中:

mkdir gitea
cd gitea

使用 nano 創建一個新文件:

nano docker-compose.yml

…並將以下代碼粘貼到其中:

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
-. /gitea:/data
- /etc/timezone:/etc/timezone:gb
- /etc/localtime:/etc/localtime:gb
ports:
- "3000:3000"
- "222:22"
depends_on:
- db

db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
-. /mysql:/var/lib/mysql

將時區更改為您自己的語言環境並為您的數據庫選擇一個強密碼,然後使用Ctrl + O保存並退出 nano ,然後使用Ctrl + X。

進入:

docker-compose up -d

…以分離模式啟動 docker-compose。Docker-compose 將為 Gitea 和 Maria DB 拉取多個圖像並設置容器。根據您的連接速度,這可能需要一些時間。

docker-compose ps 顯示 gitea 和 gitea_db_1 為 up

當您返回到命令提示符時:

docker-compose ps

…應該將“gitea”和“gitea_db_1”顯示為“up”。您現在可以在your.pi.local.ip.address:3000訪問 Gitea 站點的初始配置頁面。

不要改變任何東西。如果您計劃通過互聯網訪問您的 Gitea 實例,您需要先做一些準備工作。

通過 Internet 訪問您的 Gitea 實例

您希望能夠輸入標準 URL 以便能夠訪問您的 Gitea 實例,因此您需要 Apache 來處理代理。使用以下命令安裝 Apache:

sudo apt install apache2

現在,使用以下命令啟動並啟用 Apache:

sudo systemctl start apache2
sudo systemctl enable apache2

使用以下命令啟用 Apache 的代理模塊:

sudo a2enmod proxy
sudo a2enmod proxy_http

從信譽良好的註冊商處選擇域名或子域名。然後,從您註冊商的設置頁面,找到“高級 DNS”選項並添加新的A記錄。將主機字段設置為“ @”,將值字段設置為您的靜態 IP 地址。將 TTL(租賃時間)值設置得盡可能低,然後保存。

打開您的路由器管理頁面,找到標題為Port ForwardingPort MappingPort Management 的部分。

為 HTTP 請求創建一個新條目。將本地和公共端口都設置為80,並將本地 IP 地址設置為 Raspberry Pi 的 IP 地址。

HTTPS 請求需要第二個開放端口。將本地端口和公共端口都設置為443,再次將本地 IP 地址設置為你的 Pi 的 IP 地址。

最後,您需要為 Git 服務器的 SSH 請求打開一個端口。將本地和公共端口都設置為222,將本地 IP 地址設置為你的 Pi 的 IP 地址。

您將使用 Certbot 獲取安全證書和密鑰。添加 Certbot 存儲庫,更新,然後安裝 Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache

更改目錄,並使用 nano 創建一個新文件:

cd /etc/apache2/sites-available/
nano gitea.conf

在新文件中,粘貼以下內容,確保複製您自己的域名:

<VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

使用Ctrl + O保存並退出 nano ,然後使用Ctrl + X,並使用以下命令啟用新的 conf 文件:

sudo a2ensite gitea.conf

重啟阿帕奇:

sudo service apache2 restart

使用以下命令運行 Certbot:

sudo certbot

…然後從列表中選擇您的域名。Certbot 將獲取並安裝證書和密鑰。當您返回到提示時,再次重新啟動 Apache:

sudo service apache2 restart

Gitea 實例設置

您現在可以在瀏覽器中使用地址https://your-domain-name.tld訪問您的 Gitea 實例。您將能夠在第一部分中設置數據庫類型、密碼和其他變量。這些將是您在 docker-compose 文件中指定的值,並且應該已經填寫,因此無需更改它們。

常規設置中,將站點標題設置為合適的,服務器域應該是您的域名,SSH 服務器端口必須設置為222。基本 URL 應該是您的域名,包括“HTTPS://”。

完成後,點擊藍色的大按鈕Install Gitea。迎接你的是一大杯綠茶,以及你給實例起的任何名字和鼻涕蟲。要創建您的第一個用戶,請單擊頁面右上角的註冊,然後輸入您的詳細信息。恭喜!

要阻止其他人在您的 Git 服務器上註冊和託管他們自己的存儲庫,您需要編輯app.ini文件。如果您最初在/ (根)目錄中創建了gitea目錄,請輸入:

nano /gitea/gitea/gitea/conf/app.ini

向下滾動到服務部分並將DISABLE_REGISTRATION設置為 true。

gitea 禁用註冊設置為 true

使用Ctrl + O保存並退出 nano ,然後使用 Ctrl + X,然後重新啟動容器:

docker-compose downdocker-compose up -d

使用 Gitea

如果您曾經使用過 GitHub,那麼您將立即對 Gitea 感到熟悉。登錄後,您會看到沒有可用的存儲庫。通過單擊頁面右側的+號創建一個,並為其指定一個合理的名稱。

gitea初始存儲庫創建

您可以通過選中該框來選擇將存儲庫設為私有,或者將其打開以供全世界查看。選中復選框以使用自述文件進行初始化,然後單擊創建存儲庫以創建您的第一個存儲庫!您可以像在 GitHub 上一樣進行和提交更改、上傳文件和編輯。

單擊SSH複製地址,您將無法將存儲庫克隆到本地計算機,而是收到錯誤消息:“請確保您具有正確的訪問權限並且存儲庫存在”。您需要先將本地計算機的 SSH 密鑰添加到 Gitea。為此,請從以下位置複製輸出:

cat ~/.ssh/id_rsa.pub

在您的 Gitea Web 界面中,單擊您的個人資料圖片,然後選擇設置 > SSH/GPG 密鑰。單擊Add Key,然後粘貼您剛剛複制的密鑰。

將 ssh 密鑰添加到 gitea

您現在可以在自己的 Raspberry Pi 上與自己的 Git 服務器上的自己的 Git 存儲庫進行交互!

使用您的 Gitea 實例創建出色的軟件項目

Git 是一個很棒的工具,可用於協作完成令人驚嘆的項目,但即使沒有團隊,它也非常適合組織您自己的工作流程並創建出色的軟件或配置。在您學習新的編程語言或定制您的桌面系統以達到最佳狀態時,使用它來幫助跟踪您的文件。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *