关于在vision five 2 上的nginx部署请见前文
请注意!gitea服务依赖数据库,本文采用本地数据库提供服务。数据库工作时会对所在物理存储介质进行大量读写,考虑到性能与数据安全,强烈建议使用nvme固态硬盘作为存储介质。对于生产环境,还应当配置适当的数据备份策略。
参考文献: gitea
首先安装数据库
sudo apt update
sudo apt install mariadb-server -y
等待安装完成后,运行安全安装脚本
sudo mysql_secure_installation
接下来,它会提出一系列问题。建议按以下方式回答:
Enter current password for root (enter for none): - 直接按 Enter (因为初始没有密码)。
Switch to unix_socket authentication [Y/n] - 输入 n 然后按 Enter。这能让我们之后更容易用密码登录。
Change the root password? [Y/n] - 输入 Y 然后按 Enter。
New password: - 输入一个强大的 root 密码,并牢牢记住它。
Re-enter new password: - 再次输入该密码。
Remove anonymous users? [Y/n] - 输入 Y 然后按 Enter。
Disallow root login remotely? [Y/n] - 输入 Y 然后按 Enter (我们只在本地使用)。
Remove test database and access to it? [Y/n] - 输入 Y 然后按 Enter。
Reload privilege tables now? [Y/n] - 输入 Y 然后按 Enter。
登录数据库,为gitea服务配置数据库服务
sudo mysql -u root -p
登陆成功后,提示符变更为MariaDB [(none)]>
逐条输入以下sql命令
-- 创建一个名为 'gitea' 的用户,并设置密码。请将 'a_very_secure_password' 替换为自己的安全密码!
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'a_very_secure_password';
-- 创建一个名为 giteadb 的数据库,并指定使用 utf8mb4 字符集。
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
-- 将 giteadb 数据库的所有权限授予刚才创建的 gitea 用户。
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'localhost';
-- 刷新权限,使所有更改立即生效。
FLUSH PRIVILEGES;
-- 退出数据库控制台。
EXIT;
测试数据库连接
# -u gitea 指定用户,-p 表示需要输入密码,giteadb 是要连接的数据库名
mysql -u gitea -p giteadb
完成数据库准备后,开始安装gitea,这里我们通过官方提供的二进制文件直接安装
首先检查git版本
git --version
发现默认的镜像不提供git,我们安装git
sudo apt install git -y
安装完成后检查git版本
为git服务新建一个系统用户
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
为gitea创建目录与分配权限
# 创建主目录结构
sudo mkdir -p /var/lib/gitea/{custom,data,log}
# 将这些目录的所有权赋予我们刚才创建的 git 用户
sudo chown -R git:git /var/lib/gitea/
# 设置合适的目录权限
sudo chmod -R 750 /var/lib/gitea/
# 创建用于存放配置文件的目录
sudo mkdir /etc/gitea
# 设置配置文件目录的所有权和权限
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
下载安装包
# 1. 下载指定版本的二进制文件到 /tmp 临时目录,并重命名为 gitea
wget -O /tmp/gitea https://dl.gitea.com/gitea/1.24.2/gitea-1.24.2-linux-riscv64
# 2. 将下载的二进制文件移动到系统标准的可执行路径下
sudo mv /tmp/gitea /usr/local/bin/gitea
# 3. 赋予该文件可执行权限
sudo chmod +x /usr/local/bin/gitea
为其创建服务文件
sudo nano /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
# 确保 Gitea 在数据库服务启动后才启动
After=mariadb.service
[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
重新加载使配置生效
sudo systemctl daemon-reload
设置开机自启
sudo systemctl enable gitea
启动服务
sudo systemctl start gitea
检查状态
sudo systemctl status gitea
为服务配置反向代理
sudo nano /etc/nginx/sites-available/proxy-services
添加配置
# ---- Gitea ----
server {
listen 80;
server_name gitea.lan; # 监听 gitea.lan 域名
location / {
# Gitea 默认运行在 3000 端口
proxy_pass http://localhost:3000;
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;
proxy_set_header X-Forwarded-Host $host;
}
}
测试配置后重载nginx
sudo nginx -t
sudo systemctl reload nginx
在路由器dhcp劫持页面增加gitea的记录
通过域名访问并填写配置
数据库设置:
数据库类型: 选择 MySQL。
主机: 127.0.0.1:3306
数据库用户: gitea
密码: a_very_secure_password (填写为 gitea 数据库用户设置的那个密码)
数据库名: giteadb
字符集: utf8mb4
通用设置:
网站标题: 任意填写,例如 我的代码仓库。
服务器域名: 务必填写 gitea.lan。
SSH 服务端口: 保持默认的 22 即可 (因为它会通过 OpenSSH 运行)。
Gitea 基本 URL: 务必填写 http://gitea.lan/。这个地址必须和 Nginx 代理的地址完全一致!
可选设置 (重要):
找到“管理员账户设置”部分。强烈建议您在这里立即创建一个管理员账户,否则第一个注册的用户将自动成为管理员。填写您的用户名、邮箱和密码。
点击安装后等待
安装完成后自动跳转至欢迎页面
自此安装结束,我们成功地在visionfive2中部署了一个代码托管服务。

