当前位置: 首页 > 科技观察

CentOS下搭建Gitea——自己的Git服务器

时间:2023-03-13 19:31:24 科技观察

前言大家好,我是Milo。最近由于工作需要,需要为部门搭建一个git代码管理平台。经过一番比较,最终选择了Gitea来搭建。Gitea官网的介绍是:Gitea的首要目标是打造一个安装极其简单、运行速度极快、安装使用体验良好的自建Git服务。我们使用Go作为后端语言,它允许我们只生成一个可执行程序。而且他还支持跨平台,支持Linux、macOS和Windows各种架构,除了x86、amd64,还包括ARM和PowerPC。也就是说,它是一个git管理工具,类似于搭建自己的github,但是github仓库需要公开(私人付费),国内免费的gitee也有一定的限制。我们可以通过gitea管理自己的项目代码。官方文档地址(中文):Documentation-Docs(gitea.io)。与常见的git管理工具相比,我为什么选择了Gitea?功能基本满足我的需求。所需机器的性能不高。官方推荐2核CPU和1GB内存。我跑1核1GB有点慢(所以后面的教程是买个2GB跑)。GitLab太重了,Gogs维护的不多,而Gitea还在向前发展,值得推荐。Gitea安装image-20220924182825278根据官网介绍,目前提供了以上安装方式。我这里选择二进制安装,应该是最简单的方式。以下都是在centos7系统上操作的。注意??:gitea存储数据需要MySQL、PostgreSQL、MSSQL或SQLite3其中之一。1、安装gityum-yinstallgit从yum源安装的git版本是1.8.3,比最新的gitea要求的版本要低一点。这里不推荐yum源安装,需要自己安装高版本的git。2.创建存放gitea和git数据的目录。我放在/gitea里,大家可以改。mkdir-p/usr/local/gitea3.添加git用户因为gitea被限制以root用户启动,所以我们需要创建git用户来运行gitea,后面创建的服务也是由这个用户运行的,keys不能与root等用户混淆。#创建用户组groupaddgit#创建用户并加入用户组useraddgit-ggit4.下载并打开页面:gitea|Gitea,可以看到所有版本,最上面的是最新的,选择你要的版本。点击进入你要查找后缀为linux-amd64的文件的版本,复制链接。我下载了https://dl.gitea.io/gitea/1.17.2/gitea-1.17.2-linux-amd64。以root用户在服务器上进行以下操作。#进入你要安装的目录cd/usr/local/gitea#下载wget-Ogiteahttps://dl.gitea.io/gitea/1.17.2/gitea-1.17.2-linux-amd64#设置为可用运行文件chmod+xgitea如果服务器有防火墙,让它去。如果防火墙本身是关闭的,那就不用担心了。#检查3000端口是否未开放firewall-cmd--zone=public--list-ports#如果没有,添加一个firewall-cmd--zone=public--add-port=3000/tcp--permanent#重新加载回车配置文件firewall-cmd--reload没有问题直接退出gitea程序,继续下面的操作。5.更改目录的用户#Directorygrantpermissionchown-Rgit:git/usr/local/gitea#切换用户sugit#Testruncd/usr/local/gitea./gitea如果web运行成功,不要't退出测试[ip]:3000是否可以访问。对于云服务器,设置安全策略开放3000端口。6.Nginx代理因为我们nginx使用的是80端口,不想泄露3000端口(主要是看到域名后面的端口号不舒服),我们做一个nginx代理让他找nginx的配置文件目录。添加网站配置文件。如果要加ssl,可以自己加。修改app.ini的ROOT_URL后,重启gitea,nginx重新加载配置文件。服务器{听80;server_name[域名]}location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_passhttp://127.0.0.1:3000;}location~.*\.(js|css|png)${proxy_passhttp://127.0.0.1:3000;}7、配置服务如果不配置服务,适用于我们启动gitea./giteaweb,配置好后会很爽使用:systemctl控制。vi/etc/systemd/system/gitea.service官方提供了一个服务配置文件:gitea/gitea.serviceatmaster·go-gitea/gitea(github.com)。注意:WorkingDirectory配置项是一个存在于工作路径下,具有git权限的目录。如果不想太麻烦,可以删掉。。。execStart表示启动命令,/usr/local/bin/giteaweb--config/etc/gitea/app.ini中,/usr/local/bin/gitea改成你自己gitea文件的目录,这里是/usr/local/gitea,带--config的参数是gitea的配置文件,如果按照我的做法,有./gitea同级目录下的custom/conf/app.ini,把这个改到后面就行,最后:ExecStart=/usr/local/gitea/giteaweb--config/usr/local/gitea/custom/conf/应用程序.ini。懒人版请直接复制以下内容(从头到尾和我在同一个目录下)。[Unit]Description=GiteaAfter=syslog.targetAfter=network.target[Service]RestartSec=2sType=simpleUser=gitGroup=git??ExecStart=/usr/local/giteaweb--config/usr/local/gitea/custom/conf/app.iniRestart=always[Install]WantedBy=multi-user.target启动服务并设置开机启动。#运行systemctlstartgitea#检查你是否运行了ps-aux|grepgitea#如果成功,你会看到一个gitea用户运行的gitea进程git15259.812.11375512227352?ssl17:170:00/git/giteaweb--config/git/custom/conf/app.iniroot15250.00.0123241040pts/0S+17:170:00grep--color=autogitea#启动systemctl启用gitea,在电脑浏览器中打开【ip】:3000,点击登录初始化设置,我这里为它设置了域名和端口,这样访问就变成了【域名】:【端口号】,完成。8.配置gitea需要提前创建gitea数据库。其他情况,您可以根据自己的需要进行配置。这一步比较简单,就不赘述了。9.让我们做最后的润色。最后我们去参观一下。