在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 操作系统
三, 开始安装
-
配置mysql数据库(需要设置mysql在安装的服务器上可以访问)
-
首先创建一个mysql 的名为(giteadb)的数据库.可用图形化工具,也可使用命令:
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
-
创建一个用户用来操作giteadb数据库.
-
测试该用户是否可以操作该数据库.
-
-
下载Gitea二进制安装包
-
下载页面选择对应平台的二进制文件
-
使用wget下载
wget -O gitea https://dl.gitea.com/gitea/1.20.4/gitea-1.20.4-linux-amd64
-
下载完成后,把gitea移到/usr/local/bin目录,并改为可执行。
mv gitea /usr/local/bin chmod +x gitea
-
为了安全起见,我们还需要创建一个系统用户, 推荐使用(git)
groupadd --system git adduser \ --system \ --shell /bin/bash \ --comment 'Git Version Control' \ --gid git \ --home-dir /home/git \ --create-home \ git
-
下面建几个Gitea的数据目录,并授权
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 工作路径
export GITEA_WORK_DIR=/var/lib/gitea/
-
Gitea在Linux上需要以Service的方式运行, 把以下配置保存到文件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.service为可执行,并复制到/etc/systemd/system目录
chmod +x gitea.service mv gitea.service /etc/systemd/system systemctl enable gitea.service # 设置为开机启动 systemctl start gitea.service # 启动gitea
-
启动后浏览器访问http://ip:3000 (记得防火墙放行端口), 就可以看到如下页面
-
后续的按照提示进行填写就可以了.
-
最后就可以看到首页
五, 提示, 相关配置
-
关闭注册功能, 关闭OpenId 登录方式
vim /etc/gitea/app.ini #打开gitea的配置文件
关闭下图所示的配置
六, 总结
看到监控面板, 它的内存占用相比于gitlab 是非常小的.
最后留个坑
下一期使用gitea 的action 实现前后端项目CI/CD功能.如下图所示:
-