以前曾经在centos上部署了gitlab,但因为买的配置比较低,实际效果并不理想,经常卡机。而且,gitlab配置相当麻烦,需要依赖很多被墙包支持。最近在用golang搞开发,顺道发现了gogs这款git管理系统,据说经过长期迭代已经足够稳定了,所以也想试一试效果,毕竟golang以效率著称,想必对系统要求也会很低很低。下面介绍一下这次成功的配置经历。
 
本文配置项目
nginx
mysql
git
gogs gogs v0.9.97 @ 2016-09-01
 
先简单说一下基本步骤
gogs有两种安装方案,第一种是使用二进制安装,这种最简单,配置好git环境、运行二进制文件就能搞定;第二种是编译源码,搭建好环境,再安装好golang语言开发环境和其他需要用到的包,最后自己编译。
其实两者区别不大,一般使用建议第一种方案即可搞定。第二种方案主要用于特殊系统环境、二次修改开发。
 
两种方案都需要这些步骤进行:
1、安装git、nginx做反向代理解析域名、可选安装mysql数据库。
2、建立git账户。
3、下载gogs二进制文件,运行配置完成。
 
下面详细介绍安装步骤
1、安装git包,并创建git账户。下面以“git”用户为例。
# 安装git
sudo apt-get install -y git
# 创建git账户
sudo adduser git
 
2、安装nginx,安装mysql,或不安装任何数据库。
PS:最新的“gogsv 0.9.97 @ 2016-09-01”版本支持mysql、psql、sqlite。
sudo apt-get install -y nginx
sudo apt-get install -y mysql
 
3、在git账户的“/home/git”目录下,创建gogs安装目录、git库存储目录。
PS:因为gogs运行需要以git账户进行,所以同时需要gogs目录和git库目录的权限,最好放到git的账户目录下。
 
4、下载gogs的linux二进制安装包,将其放入$HOME/git/gogs目录下。
gogs v0.9.97 @ 2016-09-01下载地址:
https://dl.gogs.io/gogs_v0.9.97_linux_amd64.tar.gz
http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.9.97_linux_amd64.tar.gz
 
5、进入$HOME/git/gogs,运行gogs二进制文件。
# 进入gogs目录
cd /home/git/gogs
# 启动gogs web服务
./gogs web
PS:该方式是直接运行gogs,但关闭终端后就失效了。所以稍后还需要将运行脚本放入/etc/init.d目录下,再使其实现自运行。
 
6、浏览器访问“http://站点IP:3000”,根据要求填写配置信息。完成后就可以通过http://IP地址:3000访问到gogs服务了。下面将gogs服务加入到开机自启动,并解析到子域名上。
PS:如果发现端口冲突,可以在“/home/git/gogs/custom/conf/app.ini”文件内修改端口配置。
 
7、完成后,将“/home/git/gogs/scripts/init/debian/gogs”文件放入“/etc/init.d”下,之后就可以使用service gogs命令了。
# 复制脚本到init.d目录
sudo cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d
# 运行服务
service gogs start
 
8、设置开机自启动。
# vim打开rc.local,添加开机运行脚本
sudo vim /etc/rc.local
# nginx服务器
service nginx start
# mysql服务
service mysql start
# gogs服务
service gogs start
 
9、在nginx内配置反向代理,将子域名解析到localhost:3000上。
# nginx站点设定
server {
server_name xx.localhost.com;
listen 80;
location / {
proxy_pass http://localhost:3000/;
}
}
 
10、配置完成。
 
FAQ
* git库地址都是localhost?
配置完成后,可以在gogs配置文件中将项目地址改为“域名:3000”,即可搞定。注意nginx反向代理设定要跟着改变。
 

阿里云ubuntu14.4上部署gogs的更多相关文章

  1. 一个空行引起的阿里云负载均衡上部署https证书的问题

    今天在阿里云上购买了WoSign的https证书,在证书签发后,在控制台下载证书文件,一共有2个文件,一个是.key文件(私钥文件),一个是.pem文件(证书文件). 然后在阿里云负载均衡“证书管理” ...

  2. 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客

    前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...

  3. 阿里云esc服务器上部署java项目

    文章中使用centos(6和7版本).Xshell.Xftp 因为部署过程直接从操作服务器开始,如果你还没有连接好服务器请参考http://blog.csdn.net/ctrlxv/article/d ...

  4. [Linux]阿里云免费试用体验(在阿里云的ubuntu上部署个人服务)

    作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然这在虚拟机或者自己的PC上面也可以实现,但是这跟一台一直开着 ...

  5. Linux学习总结(13)——在阿里云的ubuntu上部署个人服务

    作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然这在虚拟机或者自己的PC上面也可以实现,但是这跟一台一直开着 ...

  6. [傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目

    网络上关于flask部署Centos的教程有挺多,不过也很杂乱. 在我第一次将flask上传到centos服务器中遇到了不少问题,也费了挺大的劲. 在参考了一些教程,并综合了几个教程之后才将flask ...

  7. 阿里云函数计算上部署.NET Core 3.1

    使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂.好在很多云厂商(阿里云.Azure等)提供了Serverless服务,借助于 ...

  8. 在阿里云Windows Server 上部署ASP .NET CORE2.0项目

    近期使用ASP.NET Core2.0对博客进行了重写,在部署到服务器时遇到了一些问题,来记录一下留用. 配置环境 安装 .Net Framework3.5 在IIS管理器上直接开启,这里总是失败,上 ...

  9. 在阿里云虚拟主机上部署Laravel

    拿laravel5.1来说: 在根目录下创建一个local文件夹,把网站根目录下除了public文件夹以外所有文件及文件夹剪切到local文件夹中 然后把public文件夹下的所有文件剪切到网站根目录 ...

随机推荐

  1. 64位系统web项目导出excel问题分析及解决方法汇总

    最近在web项目中做了一个导出Excel功能.在导出的时候报错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败. 一 ...

  2. swig和angular双花括号的冲突

    swig和angular都用{{name}}来作为模板中变量的取值, 那么要共用的话怎么办: {% raw %}{{ foobar }}{% endraw %} 或者 config(['$interp ...

  3. 在Unity3d中调用外部程序及批处理文件

    如果调用外部普通应用程序, 比如notepad.exe 这样调用 static public bool ExecuteProgram(string exeFilename, string workDi ...

  4. AdoConnect-获取连接字符串 (工具)

    使用ADO访问数据库时需要设置正确的连接字符串,为此特提供一个获取连接字符串的小工具,方便编程使用. 使用方法: 1.点击“连接字符串”,弹出数据链接属性对话框 2.可以使用“提供程序”新建数据源,也 ...

  5. Nginx 反向代理解决favicon404错误问题

    # set site favicon location /favicon.ico { root html; } OR location = /favicon.ico { log_not_found o ...

  6. linux环境中,如何通过手动创建crontab文件的方式来设置crontab定时调度任务?

    需求描述: 之前在创建定时任务的时候,都是通过cronab -e的方式进行创建,今天在做通过脚本部署定时任务的时候, 就想,通过crontab -e编辑的定时任务存放在哪个文件里,是否,可以手动的编辑 ...

  7. 使用a标签制作tooltips

    摘要: 前面已经分享了三种方法制作tooltips,今天再来分享一个借助a标签来实现tooltips的方法. 效果如下:

  8. 一道简单的把ArrayList中的正负数组分开并求得边界索引的题目

    给定一个List,里面存放的一组整数有正数和负数,要求把正数和负数分开,并得到正数和负数分割线索引(不要求排序,不能使用多层循环) 解答方法并不算太复杂,重点注意边界条件和极端条件(全是正或者全是负) ...

  9. PostgreSQL主备切换

    备库如何激活 在PostgreSQL(HOT-Standby)如主库出现异常.备库如何激活:来替换主库工作.有下列2种方式 备库在recovery.conf文件中有个配置项trigger_file.它 ...

  10. NTP服务器时间集群借节点之间同步

    1.三个节点时间同步,cdh1,cdh2,cdh3 2.做法:cdh1从网络时间同步,然后cdh2和cdh3从cdh1节点同步 3.安装与自启动设置 yum install ntp 按上面的安装方式在 ...