说到项目管理,GitHub几乎是完美的解决方案,唯一的不足就是免费用户无法私有自己的仓库了。所以为了方便还是打算搭建一个Gogs服务器。
环境搭建
Gogs 需要安装Nginx、MySQL和git
- 安装nginx
$ apt-get install nginx
- 安装git
$ apt-get install git
- 安装mysql
$ apt-get install mysql-server
添加系统新用户
- 添加用户git
注意这里的git是一个新的系统用户的名字而已
$ adduser git
- 切换到git用户
$ su git
下载并安装
- 下载安装包到服务器
注意下面的链接可能会根据不同的版本而变化,实际安装时应去官网查找最新的链接
$ sudo wget -c http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_0.11.43_linux_amd64.tar.gz
打开官方下载链接,找到对应版本
我们这里选的是Linux amd64,然后HTTPS / CDN(通常来说CDN会更快):TAR.GZ 右键复制链接即可
- 解压
$ tar zxvf gogs_0.11.43_linux_amd64.tar.gz
- 初始化数据库
$ cd gogs/scripts
$ mysql -u root -p < mysql.sql
- 建立新数据库
$ mysql -u root -p
> # (输入密码)
> create user 'gogs'@'localhost' identified by '密码';
> grant all privileges on gogs.* to 'gogs'@'localhost';
> flush privileges;
> exit;
配置与运行Gogs
- 修改Gogs service配置文件
vim /home/git/gogs/scripts/init/debian/gogs
1
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Go Git Service"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/home/git/gogs #这个根据自己的目录修改
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=git #如果运行gogs不是用的这个用户,修改对应用户
#说明:
#1.如果是创建的git用户 则目录修改为/home/git/gogs.对应的USER修改为git
#2.如果是在root用户下安装在/usr/local/gogs/下 则对应的目录为:/usr/local/gogs/gogs.对应的USER修改为root
2.切回root用户然后复制到/etc/init.d/
$ cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d/
(如果没有创建git用户而是root用户下则不需要切换用户而是直接复制)
- 增加执行权限
$ chmod +x /etc/init.d/gogs
#也可以cd /etc/init.d/
# chmod -x gogs
- 复制service
$ cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
(同样,如果没有创建git用户而是root用户下则不需要切换)
- 启动Gogs
$ service gogs start
此时,可以在服务器的浏览器上访问http://localhost:3000/install来完成配置
如果没有安装图形界面,则可以先进行以下的步骤再配置
Nginx 反代理
创建相应的配置文件
$ vim /etc/nginx/sites-enabled/gogs.conf
1
server {
listen 80;
server_name 0.0.0.0;
location / {
proxy_pass http://127.0.0.1:3000/;
}
}
其中server_name 字段填的是服务器ip或域名
配置完成后就可以通过 http://服务器ip/install 来开始Gogs了
对于gogs的用户配置都在custom/conf/app.ini
这里修改
更多详细的配置可以参考官方文档