Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。 |
环境
- Centos8
- gogs_0.11.91
创建git用户
[root@localhost ~]# useradd git [root@localhost ~]# echo '123456'|passwd --stdin git Changing password for user git. passwd: all authentication tokens updated successfully.
为git用户设置sudo
[root@localhost ~]# visudo git ALL=(ALL) NOPASSWD: ALL
下载并配置基本环境
[root@localhost ~]# yum -y install tar wget git mariadb mariadb-server
设置mariadb开机启动,并启动mariadb服务
[root@localhost ~]# systemctl enable mariadb --now
创建gogs数据库
# 切换到git用户 [root@localhost ~]# su - git # 创建数据库 [git@localhost ~]$ mysql -u root -e "CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" [git@localhost ~]$ mysql -u root -e "show databases;" +--------------------+ | Database | +--------------------+ | gogs | | information_schema | | mysql | | performance_schema | +--------------------+
创建数据库gogs用户,并授予访问gogs数据库权限:
[git@localhost ~]$ mysql -u root -e "create user gogs; grant all privileges on gogs.* to gogs@'%' identified by 'gogs123';" # 查看用户gogs是否添加,是否授予所有访问权。 [git@localhost ~]$ mysql -u root -e "select Host,User,Password from mysql.user; show grants for gogs@'%';"
下载gogs安装包
从gogs的官网 https://gogs.io/docs/installation/install_from_binary 下载对应操作系统的安装包。
[git@localhost ~]$ wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz [git@localhost ~]$ tar xvf gogs_0.11.91_linux_amd64.tar.gz
启动gogs并开放防火墙的端口
[git@localhost gogs]$ sudo firewall-cmd --permanent --add-port=3000/tcp success [git@localhost gogs]$ sudo firewall-cmd --reload success [git@localhost ~]$ /home/git/gogs/gogs web
打开浏览器输入服务器的ip地址,端口是3000。数据库用户和密码,使用刚才创建的。“应用URL”填写gogs服务器的ip地址。然后点击立即安装。
之后,进入登录界面,我们可以创建一个新用户。
进入注册页面,注册用户。
注册完成,登录进去,我们可以点我的仓库,创建第一个仓库。
复制仓库地址,然后再自己的操作系统中下载该仓库
在仓库中创建一个描述文件,并上传到远程仓库中。
[root@localhost ~]# git clone http://192.168.60.137:3000/user01/example01.git Cloning into 'example01'... warning: You appear to have cloned an empty repository. [root@localhost ~]# cd example01/ [root@localhost example01]# echo "This is example01's README" > README.md [root@localhost example01]# git add . [root@localhost example01]# git config --global user.name user01 [root@localhost example01]# git config --global user.email user01@example.com [root@localhost example01]# git commit -m "add a README.md" [master (root-commit) 9d7df1d] add a README.md 1 file changed, 1 insertion(+) create mode 100644 README.md [root@localhost example01]# git push Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 240 bytes | 240.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) Username for 'http://192.168.60.137:3000': user01 Password for 'http://user01@192.168.60.137:3000': To http://192.168.60.137:3000/user01/example01.git * [new branch] master -> master
远程仓库中可以看到上传成功。
总结
部署Gogs的方式还有可以使用Docker、Vagrant、基于 Kubernetes 的 Helm Charts等方式安装。