CentOS7安装Gitea
# 前言
Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC
安装之前请确保已安装 git
和 MySQ
L、PostgreSQL
、MSSQL
或 SQLite3
其中一个用于gitea
存储数据。
# Gitea安装
根据官网,目前提供了这些 (opens new window)安装方式,我这边选择二进制安装,应该也是最简单的方式了。
官方配置文件:https://docs.gitea.io/zh-cn/config-cheat-sheet (opens new window)
# 1、创建一个目录用于存放gitea和git数据的目录
我自己是放在/gitea里面,大家看着改。
mkdir -p /var/lib/gitea
# 2、添加Git用户
因为gitea限制了不能用root用户启动,所以我们需要创建git用户来运行gitea,后面创建的service也是通过这个用户运行,还有密钥那些东西不会和root之类的用户搞混。 创建用户组
groupadd git
创建用户并添加到用户组
useradd git -g git
# 3、下载Gitea
Gitea版本 (opens new window)可以看到全部版本,最上面的就是最新的,选择你要的版本。
点击进入你要的版本找到后缀是linux-amd64的文件复制下链接,我下载的是:gitea-1.19.0-rc1-linux-amd64 (opens new window)
或者使用wget
下载
# 去到你要安装的目录
cd /var/lib/gitea
# 下载
wget -O gitea https://dl.gitea.com/gitea/1.19.0-rc1/gitea-1.19.0-rc1-linux-amd64
# 设置成可运行文件
chmod +x gitea
2
3
4
5
6
7
8
# 4、关闭防火墙
如果服务器开了防火墙的,那就放行一下。如果防火墙本身是关闭的,那就不用管了
# 查看是不是没有开放3000端口
firewall-cmd --zone=public --list-ports
# 如果没有就添加一个
firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 删除已填加的端口
firewall-cmd --zone=public --remove-port=3000/tcp --permanent
# 重新载入配置文件
firewall-cmd --reload
2
3
4
5
6
7
8
或者全部关闭
chkconfig iptables off
没问题就直接退出gitea程序,继续下面的操作。
# 5、更换目录的用户
#目录赋权限
chown -R git:git /var/lib/gitea
#切换用户
su git
# 测试运行
cd /var/lib/gitea
./gitea web
2
3
4
5
6
7
运行成功的话,别退出测试下[ip]:3000
是否可以访问,云服务器的话去设置下安全策略开放3000端口。
# 6、nginx代理
因为我们80端口都是给nginx用了,3000端口不想报漏在外面(主要是看着域名后面跟着端口号好难受),我们给他做一下nginx代理 找到nginx的配置文件目录,添加一个网站配置文件,如果要ssl的自己添加就行了,改完修改下app.ini的ROOT_URL重启一下gitea,nginx重载下配置文件
server {
listen 80;
server_name [域名]
}
location / {
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_pass http://127.0.0.1:3000;
}
location ~ .*\.(js|css|png)$ {
proxy_pass http://127.0.0.1:3000;
}
2
3
4
5
6
7
8
9
10
11
12
13
# 7、配置service
如果不配置service,我们启动gitea是适用./gitea web
,配置以后就可以很爽的用systemctl
控制了。
vim /etc/systemd/system/gitea.service
写入如下内容
[Unit]
Description=Gitea
After=syslog.target
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
ExecStart=/var/lib/gitea/gitea web --config /var/lib/gitea/custom/conf/app.ini
Restart=always
[Install]
WantedBy=multi-user.target
2
3
4
5
6
7
8
9
10
11
12
13
14
15
官方有提供了一份services
配置文件:gitea/gitea.service at master · go-gitea/gitea (github.com) (opens new window)
注意
WorkingDirectory
配置项是工作路径得是存在且是git
有权限的目录,如果不想太麻烦,可以删除…
ExecStar
t是启动命令的意思,/usr/local/bin/gitea web --config /etc/gitea/app.ini中/usr/local/bin/gitea
改成你自己的gitea文件的目录,我这里是/var/lib/gitea,-- config
带的参数是gitea
的配置文件,如果你刚刚按照我的做法去做,在gitea
的同级目录下存在./custom/conf/app.ini
,把这个换到后面就行了,最后就是:ExecStart=/var/lib/gitea/gitea web --config /var/lib/gitea/custom/conf/app.ini
。
# 重新加载
systemctl daemon-reload
# 启动Gitea
systemctl start gitea
2
3
4
5
或者
nohup ./gitea web &
# 8、启动服务命令
开始运行
systemctl start gitea
重启
# systemctl daemon-reload
systemctl restart gitea
2
停止运行
systemctl stop gitea
查看运行状态
systemctl status gitea
开机启动
systemctl enable gitea
查看日志
ps -aux | grep gitea
# 或者
ps - ef|grep gitea
# 或者
journalctl -b 0 -u gitea
2
3
4
5
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13