手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:gogs

Install Gogs on Mac OS X

之前已经在服务器上装过gogs了,但由于VPS的硬盘空间较小,所以,准备的是在自己的mac mini上也装一个,由于已经dmz,所以可以进行穿透访问(网址就不透露了)

mac下面安装gogs,没有想象中的那么难,因为已经有人做过教程了,但为了能够自启动则需要做一个plist文件,以便用launchctl load一下
教程来自:http://ju.outofmemory.cn/entry/128521,如果你用sqlite来处理的话,则更简单,上述网页中,可以直接跳过前面的postgresql的安装直接进行gogs那一块(gogs直接从网上下载二进制的安装包就行,放到你的目录里,比如~/software/gogs)
进入~/software/gogs 目录,运行 ./gogs web,如果能够正常输出,OK,我们就开始下一步,创建plist文件:
XML/HTML代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  3. <plist version="1.0">  
  4. <dict>  
  5.   <key>Label</key>  
  6.   <string>io.gogs.web</string>  
  7.   <key>ProgramArguments</key>  
  8.   <array>  
  9.     <string>sh</string>  
  10.     <string>-c</string>  
  11.     <string>cd /Users/fundon/services/gogs; ./gogs web</string>  
  12.   </array>  
  13.   <key>RunAtLoad</key>  
  14.   <true/>  
  15.   <key>KeepAlive</key>  
  16.   <true/>  
  17.   <key>WorkingDirectory</key>  
  18.   <string>/Users/fundon/services/gogs</string>  
  19. </dict>  
  20. </plist>  
修改其中的两个地方:
1、sh 的路径
2、WorkingDirectory的路径,改成你gogs软件所在的路径
 
改完后,launchctl load一下即可(自从装了homebrew,它一般会在你的~/Library/下创建LaunchAgents目录,将这些plist文件扔过去,以后备份/Users/的时候就相当于备份下来了 ,超级方便 )
 
 
 
 
 
 

Tags: gogs

备份:不使用ssh_config实现git指定私钥

这是一个备份,起因是由于我现在使用的gogs不能使用ssh的方式连接,主要是不方便,所以目前我是使用了HTTP的方式。

看了这篇文章后对我有启发,但是我没有使用,所以只是先做个备份。原文在:http://www.luxingmin.com/archives/278.html
XML/HTML代码
  1. 一直想实现指定git访问的私钥,网上资料给出来的都是通过ssh_config来实现,这种方法很繁琐,另外想实现git webhook部署时,使用这种方法也比较不灵活。  
  2.   
  3. 切入正题  
  4.   
  5. 建立git_ssh文件,内容如下  
  6.   
  7. #!/bin/bash  
  8. ssh -i $SSH_KEY_FILE $1 $2  
  9. 然后增加执行权限  
  10.   
  11. chmod 755 git_ssh  
  12. 然后就可以通过如下命令指定git访问时使用的ssh私钥  
  13.   
  14. SSH_KEY_FILE=/root/git/id_rsa GIT_SSH=/root/git/git_ssh git clone git@xxx  
---EOF---
 
 

Tags: ssh, git, gogs

gogs 如何不使用端口进行访问

gogos 默认是 3000端口,如果你本身已经有了其他WEB服务,比如apache,当然不可能同时占用80端口,这时候就可以利用apapche的proxy功能。如果你是apt-get 安装 的apache,就方便了,debian/ubuntu 都支持a2ensiate,a2enmod这样的小脚本。你只要打开a2enmod proxy proxy_http就行了,然后新建一个site加入以下配置

XML/HTML代码
  1. <VirtualHost *:80>  
  2.     ServerAdmin test@test.com  
  3.     ServerName yoursitename  
  4.     ProxyRequests off  
  5.     ProxyPass / http://127.0.0.1:3000/  
  6.     ProxyPassReverse / http://127.0.0.1:3000  
  7.     <Proxy *>  
  8.         Order Deny,Allow  
  9.         Allow from all  
  10.     </Proxy>  
  11.     ErrorLog ${APACHE_LOG_DIR}/yoursitename.log  
  12.     LogLevel warn  
  13. </VirtualHost>  
是不是很简单,这时候你用supervisor启动后就可以通过WEB访问了.不过这时候有具小缺点,那就是如果你killall gogs进程的话,你会发现再也启动不了了.看启动的LOG会告诉你3000端口被占用,用netstat -an|grep 3000,发现有N个进程都是在CLOSE_WAIT的情况,这时候用: echo $(netstat -anp|grep 127.0.0.1:3000 |awk '{print $7}') 发现,全是apache2占着这些进程.

怀疑刚才在强杀gogs进程的时候,apache因为开着proxy导致刚刚向3000端口发起请求就挂起,导致异常关闭所以一直卡住(以前用nginx的做反代的时候也有类似问题,只要客户机挂了,nginx必须 重启),所以我重启了一下apache,立刻发现gogs启动成功.

至此,如果要 重启gogs最好是/etc/init.d/supervisor restart ,如果不正常就再重启一下apache...

OK,问题全部解决

 

Tags: gogs, apache

gogs 0.6.1版二进制打包文件缺少start.sh

在gogs的release包中,linux_amd64.zip这个包里,scripts目录下没有start.sh这个文件,因此在 执行./scripts/gogs_supvisor.sh文件的时候会直接后/usr/local/bin/gogs_start文件不存在

打开这个gogs_supvisor.sh文件后,发现他会判断/usr/local/bin/gogs_start文件是否存在,如果不存在就将./scripts/start.sh文件复制 过去并改为为gogs_start

然而,scripts目录下并没有这个start.sh文件,这个问题在官方的issue中已经提出并有解决方案:https://github.com/gogits/gogs/issues/1198

解决方案就是:

XML/HTML代码
  1. oh man sorry for that.  
  2.   
  3. I would suggest install supervisor as init.d somehow doesn't worked for me after trying lot of diffrent combinations. to do that,  
  4.   
  5. sudo apt-get -y install supervisor  
  6.   
  7. and edit its file via  
  8.   
  9. sudo nano /etc/supervisor/supervisord.conf  
  10.   
  11. [program:gogs]  
  12. directory=/home/git/go/src/github.com/gogits/gogs/  
  13. command=/home/git/go/src/github.com/gogits/gogs/gogs web  
  14. autostart=true  
  15. autorestart=true  
  16. startsecs=10  
  17. stdout_logfile=/var/log/gogs/stdout.log  
  18. stdout_logfile_maxbytes=1MB  
  19. stdout_logfile_backups=10  
  20. stdout_capture_maxbytes=1MB  
  21. stderr_logfile=/var/log/gogs/stderr.log  
  22. stderr_logfile_maxbytes=1MB  
  23. stderr_logfile_backups=10  
  24. stderr_capture_maxbytes=1MB  
  25. environment = HOME="/home/git", USER="git"  
  26.   
  27. change directory's to match your installation and user to your git user. and restart the supervisor via,  
  28. sudo service supervisor restart  
  29.   
  30. that's all you need to make gogs start automatically on boot.  

看上述内容,修改一下supervisor的配置,加入gogs的配置,注意修改成你自己的路径即可

Tags: gogs

/etc/apt/sources.list won't accept URLs with https connection

因为安装gogs遇到了一些奇怪的问题,所以我不得不尝试换个方式,于是我想,我是不是可以用apt来安装 ,毕竟官方在这一页有说明:http://gogs.io/docs/installation/install_from_packages.html,于是我到 https://packager.io/gh/pkgr/gogs/install?bid=190#debian-7-gogs 进行了查看,按照上面写的进行操作:

XML/HTML代码
  1. wget -qO - https://deb.packager.io/key | sudo apt-key add -  
  2. echo "deb https://deb.packager.io/gh/pkgr/gogs wheezy pkgr" | sudo tee /etc/apt/sources.list.d/gogs.list  
  3. sudo apt-get update  
  4. sudo apt-get install gogs  

执行到第三步就报错了:

XML/HTML代码
  1. E: The method driver /usr/lib/apt/methods/https could not be found.  

这,这搞什么?google了一下,原来有这个问题的人很多,但也很好解决,先把刚才的gogs.list中的内容注释掉,运行一下:

XML/HTML代码
  1. apt-get install apt-transport-https  

然后就OK了。上面的帮助内容来自:http://unix.stackexchange.com/questions/166917/etc-apt-sources-list-wont-accept-urls-with-https-connection,我还以为是stackfollow呢。结果居然不是。。。

Tags: apt, gogs