Linux运维笔记[10]-Git服务器
Git网页服务器
通过Git进行版本控制的软件源代码托管服务平台,
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
常用代码托管平台
[https://gitee.com]
[https://github.com]
[https://gitcode.net]
GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目。
[https://gitlab.cn]
SourceForge.net,又称SF.net,是开源软件开发者进行开发管理的集中式场所。
[https://sourceforge.net]
Bitbucket是一家类似于Github的免费代码托管空间,采用Mercurial和Git作为分布式版本控制系统,总得来说,Bitbucket和Github在代码托管和管理方面都旗鼓相当,Bitbucket甚至在某些方面还要强,只不过名气没有Github大些。
[https://bitbucket.org]
GitCafe是一个基于代码托管服务打造的技术协作与分享平台,程序开发爱好者们可以通过使用代码版本控制系统git来将他们所写的开源或商业项目的代码托管在GitCafe上,与其他程序员针对这些项目在线协作开发。
[https://gitcafe.com]
轻量级Git网页服务器
[https://blog.csdn.net/fx20211108/article/details/124459684]
Gogs
[https://cloud.tencent.com/developer/article/1612135]
[https://zhuanlan.zhihu.com/p/37603212]
一般提到自建Git,很多人都会想到GitLab,但是,真正用过的人就知道GitLab对资源消耗那是相当厉害的,个人使用都建议4G以上的配置,要真正释放GitLab的全部功能甚至需要8G、16G,这个似乎是由于GitLab使用了Ruby on Rails(简称RoR)开发导致的,当然,一定程度上也是因为GitLab功能太多。在线体验
但是,很多情况下我们其实用不到这么多功能,对于个人来说,我们甚至只需要最基础的那一部分,能够push,能够pull,能够显示Commit History,能够展示diff,仅此而已。因此Gogs应运而生。
安装:
docker pull gogs/gogs:latest
mkdir /lvm-group1/server/gogs
chmod 777 /lvm-group1/server/gogs
docker run --name=gogs -p 97:22 -p 98:3000 -v /lvm-group1/server/gogs:/data --restart=always -d gogs/gogs:latest
docker logs gogs
访问:192.168.50.239:98
在网页中设置服务器ip
第一个注册的用户默认为管理员.
创建仓库:
上传SSH密钥:
cat ~/.ssh/id_rsa.pub
[http://192.168.50.239:98/user/settings/ssh]
解除仓库上传文件大小限制:
[https://gogs.io/docs/advanced/configuration_cheat_sheet]
默认配置都保存在 conf/app.ini,您 永远不需要 编辑它。该文件从 v0.6.0 版本开始被嵌入到二进制中。
那么,在不允许修改默认配置文件 conf/app.ini 的情况下,怎么才能自定义配置呢?很简单,只要创建 custom/conf/app.ini 就可以!在 custom/conf/app.ini 文件中修改相应选项的值即可。
docker exec -it gogs /bin/bash
vi ~/../data/gogs/conf/app.ini
如下:
BRAND_NAME = Gogs
RUN_USER = git
RUN_MODE = prod
[database]
TYPE = sqlite3
HOST = 127.0.0.1:5432
NAME = gogs
SCHEMA = public
USER = gogs
PASSWORD =
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /data/git/gogs-repositories
[server]
DOMAIN = 192.168.50.239
HTTP_PORT = 3000
EXTERNAL_URL = http://192.168.50.239:98/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = false
[auth]
REQUIRE_EMAIL_CONFIRMATION = false
DISABLE_REGISTRATION = false
ENABLE_REGISTRATION_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
[user]
ENABLE_EMAIL_NOTIFICATION = false
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false
[session]
PROVIDER = file
[log]
MODE = console, file
LEVEL = Info
ROOT_PATH = /app/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = ************
[attachment]
MAX_SIZE = 1024000
ENABLED = true
[repository.upload]
ENABLED = true
FILE_MAX_SIZE = 1024000
MAX_FILES = 200
文件中没有的配置项就自行写上.
配置说明:
☞[https://www.cnblogs.com/hahaha111122222/p/11351991.html]
保存,然后:
exit
docker restart gogs
推送:
git remote add gogs http://192.168.50.239:98/qsbye/An_Embeded_Calculator.git
#同时推送两个分支
git push -u --atomic gogs master develop --force
✌
设置头像:
[cn.gravatar.com]
其实呢,很多个人网站都是采用wordpress、typecho等开源博客程序制作的,他们都内置了一个第三方的头像服务: Gravatar,中文全称为全球通用头像,旨在让用户能够轻轻松松的在不同网站上无需上传就能显示头像.
Gitea
[https://zhuanlan.zhihu.com/p/507860585]
Gitea 是一款使用 Golang 编写的可自运营的代码管理工具。Gitea 其实是 Gogs 的一个分支。
Scm-manager
[https://www.scm-manager.org]
[https://www.51cto.com/article/682205.html]
一种可用于DevOps CI/CD管道,并能与Git、Subversion 和 Mercurial 存储库协同的新工具。
如果您和您的团队正在使用Git或Subversion之类的源代码控制管理系统(source control management,SCM),您可能会需要一个管理层,以恰当的方式去管理用户的访问和存储库。目前,GitHub、GitBlit、以及GitLab等都是该领域流行、且强大的管理方案。当然,如果您计划使用Jenkins之类的自动化服务器,去创建自己的构建和部署管道的话,则还需要托管自己的存储库管理器。SCM-Manager,它不但简单、可扩展,而且运行起来快速且高效。