在VisionFive2中部署Gitea服务
分享作者:wx17445654289041
评测品牌:赛昉科技
评测型号:VF202040-A0
发布时间:2025-07-07 11:31:31
0
前言
gitea是一个开源的代码托管服务,本文记录了笔者在vision five 2开发板上部署gitea服务,并通过nginx反向代理对内网提供代码托管服务的过程。
开源口碑分享内容

关于在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中部署了一个代码托管服务。

全部评论
暂无评论
0/144