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,它不但简单、可扩展,而且运行起来快速且高效。

posted @ 2023-01-17 15:29  qsBye  阅读(104)  评论(0编辑  收藏  举报