前头写到搭建好了gitlab,不过没有找到汉化的方法,而且看去界面蛮繁琐的(针对没有使用github的同学而言)。为了降低大家入门门槛,决定使用gogs来搭建代码托管服务器。

#gogs github上的star截止至15.08.03,已经超过8k。自助安装极其方便,有各个平台的二进制文件,甚至可以轻易搭建在树莓派上

#install

##安装mysql 你也可以不安装任何数据库,默认会使用sqlite

1
sudo apt-get install mysql-server

进入mysql,创建好数据库:CREATE DATABASE gogs;

##安装gogs 采用二进制安装

1
2
wget http://gogs.dn.qbox.me/gogs_v0.6.3_linux_amd64.zip
unzip gogs_v0.6.3_linux_amd64.zip

###run it

1
2
chmod +x gogs
./gogs web

跑起来后进入到一个安装配置页面,邮件服务器的配置需要注意一下端口号,举个栗子:smtp.qq.com:25.此外注意一下当出现运行系统用户非当前用户错误是,在配置里填上你运行./gogs web对应的用户

如果需要修改配置文件,只要编辑gogs目录下的:custom/conf/app.ini

整个过程极其建议

ps:管理员可以不设置,第一个注册的用户将被认为是管理员

如果要reinstall,只要把data和custom目录删除即可

##备份 默认情况下,代码仓库在~/gogs-repositories下,备份的话除了备份数据库(gogs/data),也注意备份这个目录,推荐使用backup,我在此前的一篇博客里有提到:here

backup的安装非常蛋疼,在ruby1.9中各种出错,还是使用rsync好了

###使用rsync同步数据

  • 配置好ssh免登陆
    • ssh-keygen -t dsa
    • sudo cp -R .ssh /root/
    • ssh-copy-id -i .ssh/id_dsa.pub xx@backup_host
  • 本地推送到远程:/usr/bin/rsync -avH /home/xx/gogs-repositories xx@backup_host:~/backup/
  • 备份mysql数据
    • /usr/bin/mysqldump -uroot -pxxx gogs > /tmp/gogs.sql
  • 使用cron写定时任务
    • 00 01 * * * /usr/bin/rsync xxx (每天凌晨1点同步数据)

使用Supervisor管理进程

参考使用Supervisor来管理进程

/etc/supervisord.conf.d/创建gogs.conf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
:::text
[program:gogs]

user=wwj
directory=/home/wwj/gogs/gogs
command=/home/wwj/gogs/gogs/gogs web
environment = HOME="/home/wwj", USER="wwj"
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

supervisorctl restart gogs