lala.im:使用Gitea自建一个Git服务器

運維技術·lala.im · 2019-01-07 · 135 人浏览

原文地址:https://lala.im/4710.html,請支持原作者!該處僅作轉載。

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还要好看。。。

範例

運維技術 lala.im
Theme Jasmine by Kent Liao