CentOS 7 搭建 gogs Git 服务器
CentOS 7 搭建 gogs Git 服务器
本地环境如下:
Linux 系统环境为:CentOS Linux release 7.4.1708 (Core)
MySQL 版本为: mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper
Git 版本为: git version 1.8.3.1
Gogs 当前最新版本为:0.11.86
所需软件
- Gogs
- Git
- MySQL
安装步骤
-
创建用户名为 git 的账户,用于管理 git
sudo adduser git
-
切换到 git 用户,并在其账户所在家目录,下载 Gogs
// 切换到 git 用户 su git // 切换到 git 用户所在家目录 cd ~ // 下载 gogs 压缩包 wget [https://dl.gogs.io/0.11.86/gogs\_0.11.86\_linux\_amd64.tar.gz](https://dl.gogs.io/0.11.86/gogs_0.11.86_linux_amd64.tar.gz) // 解压缩 (解压缩之后的文件夹名为 gogs ) tar -zxvf gogs\_0.11.86\_linux\_amd64.tar.gz
-
执行 gogs 数据库文件
// 切换到 /home/git/gogs/scripts 目录 cd /home/git/gogs/scripts // 登录数据库 (这里采用 MySQL ) mysql -u root -p // 创建 gogs 用户 create user 'gogs'@'localhost' identified by '密码'; // 赋予 gogs 数据库用户能够访问 gogs 数据库所有权限 grant all privileges on gogs.\* to 'gogs'@'localhost'; // 刷新权限 flush privileges; // 执行 gogs 数据库脚本文件 source mysql.sql // 测试(执行完了之后可以看到已经创建好了 gogs 数据库) show databases;
-
配置与运行
- 打开 gogs 文件
vim /home/git/gogs/scripts/init/centos/gogs
-
核对文件信息
19 PATH=/sbin:/usr/sbin:/bin:/usr/bin 20 DESC="Gogs" 21 NAME=gogs 22 SERVICEVERBOSE=yes 23 PIDFILE=/var/run/$NAME.pid 24 SCRIPTNAME=/etc/init.d/$NAME 25 WORKINGDIR=/home/git/gogs # 仓库地址,可以自行修改 26 DAEMON=$WORKINGDIR/$NAME 27 DAEMON_ARGS="web" 28 USER=git # 如果运行 gogs 不是名为 git 的账户,则需要修改。 # 如是用 root 账户运行 gogs,则这里修改成 root
-
切换到 root 账户,然后复制到 /etc/init.d/ 目录下
// 切换到 root 账户 su root // 将 gogs 文件复制到 /etc/init.d 目录下 sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
-
增加执行权限
sudo chmod +x /etc/init.d/gogs
-
复制 service
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
-
开启 gogs 服务
service gogs start
-
运行 gogs web
// 切换到 gogs 目录 cd /home/git/gogs // 运行 gogs web (如果此时 Ctrl + C 关闭掉命令,此时刷新浏览器时,会无内容) // 执行命令后,看到有日志输出,则证明启动成功! ./gogs web // 后台运行 gogs ./gogs web >/dev/null 2>&1 &
-
必须开启 3000 端口 (我使用的是阿里云的 ECS ,直接在阿里云后台添加 3000 的安全组规则即可)
-
测试。( 浏览器访问 http:// 远程主机 IP 地址 :3000 )
-
配置反向代理
-
在 nginx 配置文件夹中,新建 git.drling.xin.conf 文件
vim /etc/nginx/conf.d/git.drling.xin.conf
-
填入以下内容
server { listen 80; server_name git.drling.xin; location / { proxy_pass http://127.0.0.1:3000/; } }
-
-
关于自定义配置
- 第一次访问 http:// 远程主机 IP 地址 :3000 的时候,会提示你填入一些自定义项,这些自定义项会在你
<gogs path>/custom/conf/app.ini
文件中,只有你在网页中填入自定义项之后才会有此文件。你也可以先在你gogs
目录下创建custom/conf/app.ini
文件,然后填入自定义项,如下所示:
APP_NAME = Semir-git # 这里的用户名在 Linux 系统中必须存在,且这里的用户名为 ssh 仓库地址的用户名 RUN_USER = git RUN_MODE = prod # 代码仓库地址 [repository] ROOT = /extend-disk/partition2/git-repositories # if you use nginx to proxy, suggest you set 127.0.0.1, otherwise you set 0.0.0.0 is ok HTTP_ADDR = 127.0.0.1 [database] DB_TYPE = mysql HOST = 127.0.0.1:3306 NAME = gogs USER = gogs PASSWD = 123456 SSL_MODE = disable PATH = data/gogs.db [server] # 仓库域名如:git.drling.xin DOMAIN = 10.90.60.6 HTTP_PORT = 3000 # 仓库 url 如:http://git.drling.xin/ ROOT_URL = http://10.90.60.6:3000/ DISABLE_SSH = false SSH_PORT = 22 START_SSH_SERVER = false OFFLINE_MODE = false [mailer] ENABLED = false [service] REGISTER_EMAIL_CONFIRM = false ENABLE_NOTIFY_MAIL = false DISABLE_REGISTRATION = false ENABLE_CAPTCHA = true REQUIRE_SIGNIN_VIEW = false [picture] DISABLE_GRAVATAR = false ENABLE_FEDERATED_AVATAR = false [session] PROVIDER = file [log] MODE = console, file LEVEL = Info ROOT_PATH = /extend-disk/partition2/software/gogs/log [security] INSTALL_LOCK = true SECRET_KEY = 3WWzvF7wpDsBvvP
- 第一次访问 http:// 远程主机 IP 地址 :3000 的时候,会提示你填入一些自定义项,这些自定义项会在你