自己搭建gogs服务器原因如下:
- 原先用的git.oschina.com,发现免费版对diff有限制,这就算了,对于history版本也有限制,这个就不能忍了,当时没办法只能用本地的github过度了一下;
- 发现gitlab有docker版本,开心啊,配置就省心多了,于是开始架设gitlab dockerise服务;
- 穷人来说只能用一台入门的ecs 1gb ram +1 core,结果gitlab搞笑的告诉我它至少需要3g ram,至少1g ram+2g swap,只是一个git服务而已,我的天;
- gitlab用的uncorn很吃内存,但是服务100+用户没问题,咱私人的不需要这么强,而且它依赖的是企业级的架构:nginx+redis+sidekiq +rails++unicorn+postgresql 应该没有列完,换mysql还挺麻烦的;
- 官方docker打包了上面提到的服务,大小居然达到了1.1GB;
- gogs是用go写的,go可是堪比c++的性能,功能强大,后来试用后功能堪比github,大小只有128MB,兼容三大数据库,sqlite也支持,这个要赞一个,意味着在树莓派上也是妥妥的,最近go的应用真是如火如荼呀,架设好后内存只吃了30MB,良心项目~;)
- 近2万~星,应该是国人写的,骄傲一个;
直接说安装步骤吧(ubuntu):
安装docker和docker-compose:
1 | apt-get install docker -y && pip install docker-compose |
创建一个存放gogs数据的地方:
1 | mkdir -p /srv/gogs |
创建docker-compose.yml :
1 | nano docker-compose.yml |
配置如下:
1 2 3 4 5 6 7 8 9 10 11 | < / pre><pre>gogs: image: gogs / gogs container_name: gogs depends_on: - db ports: - "3000" ports: - "10022:22" volumes: - "/srv/gogs:/data" < / pre><pre> |
上面depends_on部分里的db是我的mysql服务,如果你的mysql服务不是dockerise的话请删掉这部分。
最后运行服务:
1 | docker-compose up |
上面只是最简单的配置,它还内置了nginx,所以既可以直接访问上面的3000端口(甚至指定证书)也可以跟现有的nginx再次代理本地80端口转发。
服务起来后就可以初始化配置了,默认注册的第一个账户为管理员账户,数据库信息跟其他服务一样,需要先建好它用的库和用户即可。初始化页面配置的都是必须的选项,比较简单,安装好后可以在控制面板看到很多设置信息,但是是不能更改的,估计是开发者偷懒,我很理解,我也会这样,呵呵。需要修改的话按照上面的配置是在主机的/srv/gogs/gogs/conf/app.ini中修改,详细的配置项在:https://gogs.io/docs/advanced/configuration_cheat_sheet 修改后docker-compose restart gogs即可