Gitea是一个开源社区驱动的Gogs克隆,是一个轻量级的代码托管解决方案,后端采用Go编写。
Gitea和Gogs是有点渊源的,虽然可以说没有Gogs就没有Gitea,但我还是更喜欢Gitea一些。。。
下面我在一台CentOS7上面尝试部署,Gitea支持的数据库有SQLite/MySQL/PostgreSQL,这里我还是采用MySQL的方式,如果你想更简单的话可以选择SQLite。
更新系统:
yum -y update
安装Git:
yum -y install git
新建一个MySQL的源:
vi /etc/yum.repos.d/mysql-community.repo
写入:
[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
然后使用yum安装(安装的版本是5.7,机器内存要大于2G):
yum -y install mysql-community-server
立即启动以及设置开机启动:
systemctl enable mysqld systemctl start mysqld
查看初次安装完成后的默认ROOT密码:
grep 'temporary password' /var/log/mysqld.log
使用初始ROOT密码登录:
mysqladmin -u root -p password
然后修改ROOT密码,这里会提示让你输入两遍新的的密码。完成之后重启MySQL:
systemctl restart mysqld
使用你设置的新ROOT密码登录到MySQL的终端内:
mysql -u root -p
创建数据库:
CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
给数据库授权:
GRANT ALL PRIVILEGES ON gitea.* TO 'root'@'localhost';
保存更改:
FLUSH PRIVILEGES;
退出MySQL的终端:
quit
现在就可以下载Gitea的二进制文件了:
wget https://github.com/go-gitea/gitea/releases/download/v1.6.3/gitea-1.6.3-linux-amd64
给执行权限:
chmod +x gitea-1.6.3-linux-amd64
移动到/usr/bin:
mv gitea-1.6.3-linux-amd64 /usr/bin/gitea
新建一个systemd服务文件:
vi /etc/systemd/system/gitea.service
写入:
[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target After=mysqld.service [Service] Type=simple User=root Group=root ExecStart=/usr/bin/gitea web Restart=always [Install] WantedBy=multi-user.target
启动Gitea以及设置开机启动:
systemctl start gitea systemctl enable gitea
安装certbot用于签发SSL证书:
yum -y install certbot
签发命令:
certbot certonly --standalone -d example.com
安装Nginx用于反向代理:
yum -y install nginx
新建一个Nginx站点配置文件:
vi /etc/nginx/conf.d/gitea.conf
写入:
server { listen 80; listen 443 ssl http2; client_max_body_size 100000m; server_name example.com; if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; location / { proxy_pass http://127.0.0.1:3000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
启动Nginx以及设置开机启动:
systemctl start nginx systemctl enable nginx
现在访问你的域名,应该可以看到Gitea的首页:
点击右上角的注册按钮开始进行安装,首先是设置数据库:
然后下面这个,因为我不需要用到SSH这个功能,所以就没做改动,Gitea基本URL修改成自己的域名:
往下翻可以设置邮件SMTP什么的,建议这里就先把管理员账号创建了:
这些设置在完成安装之后也是可以进行修改的,默认情况下,我这个环境的配置文件保存在:
/usr/bin/custom/conf/app.ini
修改之后务必重启Gitea使其生效:
systemctl restart gitea
现在可以简单测试下功能是否正常,首先我尝试着创建了一个仓库:
项目页面,我怎么感觉这UI比Github还要好看。。。
每次逛完大佬网站都是一脸懵逼走出去
下次搞几个妹子,让你走出去是一脸满足
那时候怕是走不动路了
牛逼
这个必须HTTPS么?
非必需,但是提供Git服务的话还是建议上个SSL。
为什么和gogs基本长的一模一样
差不多就相当于Gogs的一个分支吧,至于为什么要另起炉灶,看了这个你就知道了:https://blog.gitea.io/2016/12/welcome-to-gitea/
大佬,可以用宝塔面板安装吗?
可以的。
那该怎么操作啊
。。在宝塔创建个数据库,Nginx配一下反代规则应该就行了。。
谢谢lala大佬!我想请教一个问题:我设置域名之后(http或者https都试过)可以成功解析,但是页面完全没有css加载,也没有favorite.ico显示,何解?… 新手也不知道应该从哪里开始排错,还望给个思路指点一下下,万分感谢。CentOS 7 x64,宝塔面板,mySQL版本5.6
更新,已经修好了…… 确实是JS css内容没有加载,于是给它们都加了proxy_pass
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
error_log off;
access_log /dev/null;
proxy_pass http://127.0.0.1:3001;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
proxy_pass http://127.0.0.1:3001;
}
location / {
proxy_pass http://127.0.0.1:3001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}