简介

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


功能

  • 支持活动时间线
  • 支持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


获取程序

/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 postfix.service

关闭一个服务:

systemctl stop postfix.service

重启一个服务:

systemctl restart postfix.service

显示一个服务的状态:

systemctl status postfix.service

在开机时启用一个服务:systemctl enable postfix.service

在开机时禁用一个服务:systemctl disable postfix.service

查看服务是否开机启动: systemctl is-enabled postfix.service

查看已启动的服务列表: systemctl list-unit-files | grep enabled

查看启动失败的服务列表: systemctl --failed