简介
Gitea是一个极易安装,运行非常快速,安装和使用体验良好的自建Git服务。采用Go作为后端语言,这使得只要生成一个可执行程序即可。并且他还支持跨平台,支持Linux、macOS和Windows以及各种架构,除了x86,amd64,还包括ARM和 PowerPC。
Github地址:https://github.com/go-gitea/gitea
功能
- 支持活动时间线
- 支持SSH以及HTTP/HTTPS协议
- 支持SMTP、LDAP和反向代理的用户认证
- 支持反向代理子路径
- 支持用户、组织和仓库管理系统
- 支持添加和删除仓库协作者
- 支持仓库和组织级别Web钩子(包括Slack集成)
- 支持仓库Git钩子和部署密钥
- 支持仓库工单(Issue)、合并请求(Pull Request)以及Wiki
- 支持迁移和镜像仓库以及它的Wiki
- 支持在线编辑仓库文件和Wiki
- 支持自定义源的Gravatar和Federated Avatar
- 支持邮件服务
- 支持后台管理面板
- 支持MySQL、PostgreSQL、SQLite3、MSSQL和TiDB(实验性支持)数据库
- 支持多语言本地化(21种语言)
二进制安装
1、安装MySQL数据库
手动安装数据库方法不在这里说明,很简单。恰巧我这个站长安了宝塔服务器管理面板。啥啥套件都一键安装了。
宝塔可视化服务器面板安装。
#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh
安装完成后,安装MySQL,至少5.7版本。
2、安装Git
先查看下内置的git版本,是否达到最新gitea的git版本要求。然后觉得是否升级。
#Debian和Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
#添加Git用户
groupadd git
useradd git -g git -s /bin/false
3、安装Gitea
创建目录
mkdir /home/git/gitea /var/log/gitea
获取程序
最新版本下载地址:https://dl.gitea.io/gitea。
wget https://dl.gitea.io/gitea/1.6.0-rc1/gitea-1.6.0-rc1-linux-amd64 -O /home/git/gitea/gitea
添加执行权限
chmod +x /home/git/gitea/gitea
修改所有人
chown -R git:git /home/git/gitea /var/log/gitea
运行项目
./gitea web
接下来打开http://ip:3000即可
常见问题
1、进入ip:3000打不开网站
打不开需要关闭防火墙,或者打开对应的3000端口。
CentOS 7
systemctl stop firewalld.service
systemctl disable firewalld.service
其它系统
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart
2、保持程序一直运行
首先新建编辑下面这个文件
vi /etc/systemd/system/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 | [Unit] Description=Gitea (Git with a cup of tea) #After=syslog.target After=network.target #After=mysqld.service #After=postgresql.service #After=memcached.service #After=redis.service [Service] # Modify these two values and uncomment them if you have # repos with lots of files and get an HTTP error 500 because # of that ### #LimitMEMLOCK=infinity #LimitNOFILE=65535 RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/home/git/gitea ExecStart=/home/git/gitea/gitea web Restart=always Environment=USER=git HOME=/home/git/gitea [Install] WantedBy=multi-user.target |
之后执行
systemctl daemon-reload
sudo systemctl start gitea
如果服务不能启动,你要注意的是下面几点(systemctl status giea查看服务状态,journalctl -b 0 -u gitea查看日志)
首先你的gitea放的目录问题,因为使用git用户启动的服务,所以你的gitea所在目录肯定要让git用户有访问权限,所以root目录下是不可以的
之后上面的配置参数你也要按照自己的环境目录来写,不要复制粘贴了,After=mysqld.service表示在mysql服务启动之后再启动gitea服务,所以这个根据你的数据库来选择去掉哪个注释
服务操作相关命令
查看服务列表与状态
systemctl list-units --type=service
启动一个服务:
systemctl start gitea
关闭一个服务:
systemctl stop gitea
重启一个服务:
systemctl restart gitea
显示一个服务的状态:
systemctl status gitea
在开机时启用一个服务:systemctl enable gitea
在开机时禁用一个服务:systemctl disable gitea
查看服务是否开机启动: systemctl is-enabled gitea
查看已启动的服务列表: systemctl list-unit-files | grep enabled
查看启动失败的服务列表: systemctl --failed