887 字
4 分钟
阿里云云服务器部署 Gitea 服务

前言#

在之前的文章 《本地部署简单的 Git-LFS 服务》介绍了如何在本地部署 LFS 服务,该方法只适合个人开发。现在需要与他人协同进行开发,在本地部署的 LFS 服务已经无法满足当前的需求。

因此选择购买阿里云云服务器部署 Gitea 服务,并且不额外部署数据库服务,在没有域名的情况下启用 https。

NOTE

服务器镜像:Debian 11.3

Gitea 版本:1.23.8

系统与环境准备#

更新系统软件包#

Terminal window
sudo apt update && sudo apt upgrade -y

检查是否安装 Git。要求 Git 版本 >= 2.0。没有安装 Git 的话通过 apt 进行安装。

Terminal window
git --version
sudo apt install git -y

创建用户#

Terminal window
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git

安装 Gitea#

下载二进制文件#

这里查看 Gitea 的所有版本。

Terminal window
wget -O gitea https://dl.gitea.com/gitea/1.23.8/gitea-1.23.8-linux-amd64
sudo chown root:root gitea
sudo chmod -x gitea
sudo mv gitea /usr/local/bin/gitea

创建工作文件夹#

Terminal window
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

以 service 方式运行#

创建 systemd 服务文件:

Terminal window
sudo nano /etc/systemd/system/gitea.service

在文件中填写以下内容:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
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

服务文件编辑完成后,重新加载服务单元文件、设置 Gitea 服务开机自启、启动 Gitea 服务:

Terminal window
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

进行 Web 安装#

这时我们还无法访问 Gitea 页面,需要在阿里云服务器的防火墙设置里添加规则,开放 Gitea 默认的 3000 端口。

Aliyun-GItea-FireWall

设置完成后就可以通过 http://your-server-ip:3000 访问 Gitea 的 Web 安装界面。

因为是个人使用,数据库选择 Gitea 内置的 SQLite3。

Aliyun-Gitea-Database

一般设置根据个人需求进行填写。

Aliyun-Gitea-NormalSetting

TIP

启用检查更新并不会自动进行版本更新,只是在访问网页时会提示用户有更新的版本。

因为我们只是自己使用,为确保隐私,我们在“可选设置>服务器和第三方服务设置”中勾选禁止用户自主注册、启用页面访问限制。之后使用管理员账户在“管理后台>身份及认证>账户管理”中创建普通账户使用。

其它设置#

配置文件权限设为只读#

在之前的步骤中为了使 Web 安装程序可以创建并写入配置文件,我们为 /etc/gitea 路径授予了组外用户 git 写入权限。在安装完成后需要将权限设为只读。

Terminal window
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

开启 https 并设置自签名证书#

生成自签名证书:

Terminal window
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/gitea/gitea.key \
-out /etc/gitea/gitea.crt \
-subj "/CN=your-server-ip"

修改证书文件的所有权与权限:

Terminal window
sudo chown git:git /etc/gitea/{gitea.key,gitea.crt}
sudo chmod 440 /etc/gitea/{gitea.key,gitea.crt}

编辑配置文件 /etc/gitea/app.ini

[server]
PROTOCOL = https
CERT_FILE = /etc/gitea/gitea.crt
KEY_FILE = /etc/gitea/gitea.key

修改完成后重启 Gitea 服务:

Terminal window
sudo systemctl restart gitea

重启服务后就可以通过 https://your-server-ip:3000 访问,浏览器会警告“此连接不安全”,可以手动信任这个证书。

修改 RSA 公钥的最小位数#

自 2020 年后 OpenSSH 8.0 及以上版本成为主流,RSA 密钥的公钥默认长度为 3072 位,出于安全性考虑 2048 位 RSA 已逐步不被推荐。如果出于某些原因不得不接着使用 2048 位 RSA,则需要在配置文件中添加如下配置:

[ssh.minimum_key_sizes]
RSA = 2047
阿里云云服务器部署 Gitea 服务
https://blog.unknowncat2048.top/posts/deploying-gitea-service-on-aliyun/
作者
碌碌无为喵神SAMA
发布于
2025-05-23
许可协议
CC BY-NC-SA 4.0