在Centos上搭建轻量代码托管平台Gitea
2023-12-06 12:07:46

在 Centos 上搭建代码管理平台 Gitea

一, 官网概述

Gitea 是一个自己托管的 Git 服务程序。他和 GitHub, Bitbucket or Gitlab 等比较类似。他是从 Gogs 发展而来,不过我们已经 Fork 并且命名为 Gitea。

Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了 x86,amd64,还包括 ARM 和 PowerPC。

二, 环境准备
  • mysql (>=5.7)
  • Git (>=2.0)
  • Centos 操作系统
三, 开始安装
  1. 配置 mysql 数据库 (需要设置 mysql 在安装的服务器上可以访问)
    • 首先创建一个 mysql 的名为 (giteadb) 的数据库. 可用图形化工具, 也可使用命令:

      1
      2
      CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

    • 创建一个用户用来操作 giteadb 数据库.

    • 测试该用户是否可以操作该数据库.

  2. 下载 Gitea 二进制安装包
    • 下载页面选择对应平台的二进制文件

    • 使用 wget 下载

      1
      2
      wget -O gitea https://dl.gitea.com/gitea/1.20.4/gitea-1.20.4-linux-amd64

    • 下载完成后,把 gitea 移到 / usr/local/bin 目录,并改为可执行。

      1
      2
      3
      mv gitea /usr/local/bin
      chmod +x gitea

    • 为了安全起见,我们还需要创建一个系统用户, 推荐使用 (git)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      groupadd --system git
      adduser \
      --system \
      --shell /bin/bash \
      --comment 'Git Version Control' \
      --gid git \
      --home-dir /home/git \
      --create-home \
      git

    • 下面建几个 Gitea 的数据目录, 并授权

      1
      2
      3
      4
      5
      6
      7
      mkdir -p /var/lib/gitea/{custom,data,log} # 是存放仓库相关文件的目录
      chown -R git:git /var/lib/gitea/
      chmod -R 750 /var/lib/gitea/
      mkdir /etc/gitea # 是存放配置文件app.ini的目录
      chown root:git /etc/gitea
      chmod 770 /etc/gitea

    • 配置 Gitea 工作路径

      1
      2
      export GITEA_WORK_DIR=/var/lib/gitea/

    • Gitea 在 Linux 上需要以 Service 的方式运行, 把以下配置保存到文件 gitea.service

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      [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.service 为可执行,并复制到 / etc/systemd/system 目录

      1
      2
      3
      4
      5
      6
      chmod +x gitea.service
      mv gitea.service /etc/systemd/system
      systemctl enable gitea.service # 设置为开机启动

      systemctl start gitea.service # 启动gitea

    • 启动后浏览器访问 http://ip:3000 (记得防火墙放行端口), 就可以看到如下页面

    • 后续的按照提示进行填写就可以了.

    • 最后就可以看到首页

    五, 提示, 相关配置
    • 关闭注册功能, 关闭 OpenId 登录方式

      1
      2
      vim /etc/gitea/app.ini #打开gitea的配置文件

      关闭下图所示的配置

    六, 总结

    看到监控面板, 它的内存占用相比于 gitlab 是非常小的.