Gitea
Gitea版本控管
Gitea 架設
運行環境
- PVE
- LXC
- Debian 12
安裝nginx mariadb
apt update
apt -y install nginx mariadb-server git
systemctl enable nginx && systemctl start nginx
systemctl enable mariadb && systemctl start mariadb
資料庫設定
mysql -u root -p
CREATE DATABASE IF NOT EXISTS gitea DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'giteapass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
下載gitea二進制文件
wget -O gitea https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-amd64
chmod +x gitea
建立使用者運行Gitea
adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
創建所需的目錄
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
配置 Gitea 工作路徑
export GITEA_WORK_DIR=/var/lib/gitea/
複製Gitea二進制文件
cp gitea /usr/local/bin/gitea
建立service運行服務
建立/etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
systemctl enable gitea
systemctl start gitea
瀏覽器輸入http://IP:3000安裝
為了讓 Web 安裝程式可以寫入配置文件,臨時為 /etc/gitea 路徑授予了組外用戶 git 寫入權限。建議在安裝結束後將配置文件的權限設定為只讀。
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
Gitea 反向代理
運行環境
- 使用反向代理主機 Nginx
反向代理主機設定
使用子目錄/gitea/
server {
...
location ~ ^/(gitea)($|/) {
client_max_body_size 512M;
rewrite ^ $request_uri;
rewrite ^/(gitea($|/))?(.*) /$3 break;
proxy_pass http://ip:3000$uri;
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Gitea主機設定
編輯/etc/gitea/app.ini
修改網址
[server]
...
ROOT_URL = https://example.com/gitea
service gitea restart
瀏覽器輸入https://example.com/gitea登入
Gitea 基本指令
SSH金鑰
cmd
ssh-keygen -t ed25519 -C "your_email@example.com"
id_rsa.pub 貼入gitea web 新增ssh金鑰
更改預設分支名稱為master
git config --global init.defaultBranch master
初始化git
git init
加入檔案或目錄
git add <檔案名稱> #檔案
git add . #整個目錄
加入版本資訊
git commit -m "xxx"
設定資訊
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
連接gitea
git remote add <origin> <地址> #設定名稱和gitea儲存庫地址
>>git remote add main https://xxx.git
查詢remote
git remote -v
上傳至儲存庫
git push -u main master #上傳至連接位置和分支
移除連接gitea
git remote remove main #移除連接
新增標籤
git tag v1 #標籤
git push <origin> v1 #推送標籤至儲存庫