源码管理服务器 gitea 的安装

1、 git 服务器软件的选型

我想在 docker 上部署一套个人实用的、安装维护简单、实用高效的 git 版本管理服务器系统,比较流行且常用的 git 服务器很多,比如说最常用的有: gitlab 、 gitolite 、 gitea 等。其中:
gitlab 比较重一些,适合企业客户使用,但对于个人用户、尤其是配置不高的云主机客户来说,主要问题还是 gitlab 镜像大、占用系统资源多,低配服务器容易卡顿等,不是最好的选择;
gitolite 被认为是轻量级 git 版本管理工具,但在 docker 市场里进行搜索,star 数很少,并且看朋友配置过 gitolite ,虽然已经比较简单了,但还是略显啰嗦;
gitea 也是轻量级的 git 版本管理工具,在 docker 市场里看到有 172 颗星,算还不错吧,镜像也比较小,看了 gitea 的说明(有中文网站),觉得对个人用户来说,应该是比较简单、实用的。经过简单测试,发现确实和官网所说的一样:Gitea - Git with a cup of tea,安装配置都很简单(喝一杯茶的功夫)、效率也是没有问题的(树莓派上都可以安装运行)。

2、关于gitea

Gitea 是一个开源社区驱动的 Gogs 克隆, 是一个轻量级的代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

开源化

易安装

跨平台

轻量级

中文官网地址:https://gitea.io/zh-cn/
中文文档地址:https://docs.gitea.io/zh-cn/
docker 安装文档:https://docs.gitea.io/zh-cn/install-with-docker/

3、最简化的安装模式

3.1、利用 docker-compose.yml 文件进行安装

编制yml文件,该文件是从官网上扒下来后,做了一点简单修改,内容如下:

version: "2"

networks:
    gitea:
        external: false

services:
    server:
        container_name: gitea_server
        image: gitea/gitea:latest
        environment:
            - USER_UID=1000
            - USER_GID=1000
        restart: always
        networks:
            - gitea
        volumes:
            - /dockers/gitea/data:/data
        ports:
            - "13000:3000"
            - "10022:22"
        depends_on:
            - db

    db:
        container_name: gitea_db
        image: mysql:5.7
        restart: always
        environment:
            - MYSQL_ROOT_PASSWORD=gitea
            - MYSQL_USER=gitea
            - MYSQL_PASSWORD=gitea
            - MYSQL_DATABASE=gitea
        networks:
            - gitea
        volumes:
            - /dockers/gitea/mysql:/var/lib/mysql

关于端口说明:
1)http端口
既然是最简化的安装,为了避免和其他站点冲突,选用一个空闲的端口提供git服务器的站点服务,此处选用端口:13000;
2)ssh端口
由于属主机的22端口一般由客户端用来进行远程管理,所以此处ssh端口选:10022
在shell里运行命令,启动安装:

# docker-compose up -d

在shell里运行命令:

# docker ps

可以看到新安装的两个容器启动正常。
为了便于显示及截图,给 docker ps 命令增加参数,只显示CONTAINER ID、NAMES和PORTS

# docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
容器信息

其中:CONTAINER ID 和 NAMES 都可以被用来进行容器调用,后面在服务器的web配置里会用到

3.2、利用网站进行git服务器安装和参数配置

3.2.1、站点访问

在浏览器里输入gitea服务器的访问地址:http://xxx.xxx.xxx.xxx:13000,其中服务器的ip或域名根据主机实际情况填写正确,如果出现访问错误,可能是卸载引起docker服务器状态出现问题,运行下面命令,重启docker服务器,一般可以解决问题:

# systemctl restart docker

再重新访问网站,出现下面的界面:


docker安装后,首次运行图

说明docker部署成功,下面需要进行站点配置

3.2.2、站点配置

点击首页右上角的“注册”或“登录”按钮:

“注册”和“登录”按钮

由于是首次运行,会弹出安装界面
1)数据库设置:
数据库设置

第 1 步:选择 MySQL 数据库
第 2 步:填入 MySQL 数据库容器的名称(container_name)
第 3 步:填入数据库用户密码(此处设置密码为:gitea,您可以根据自己需要设置)
2)一般设置:
一般设置

第 4 步:填入宿主机的域名或IP地址
第 5 步:填入Gitea网站的访问地址和端口
3)点击“立即安装”按钮
出现下面的登录界面
登录界面

4)注册管理员
由于安装时没有设置用户名,所以目前还没有用户,点击马上注册,第一个注册的用户默认为管理员,此处选择管理员账户为:root(admin被系统保留,无法使用)
管理员注册

3.2.3、创建仓库

image.png

3.3、git bash 测试

3.3.1、http 模式测试

1)克隆

$ cd ~
$ mkdir git
$ cd git
$ git clone http://192.168.150.128:13000/root/first.git

2)向远程仓库提交文件

$ cd ~/git/first
$ touch test1.txt
$ git add test1.txt
$ git commit -m 'test1'
$ git remote remove origin
$ git remote add origin  http://192.168.150.128:13000/root/first.git
$ git remote -v
origin  http://192.168.150.128:13000/root/first.git (fetch)
origin  http://192.168.150.128:13000/root/first.git (push)
$ git push origin master

当执行 git push 时,有时可能会出现错误,如下:

$ git push origin master
remote: invalid credentials
fatal: Authentication failed for 'http://192.168.150.128:13000/root/first.git/'

此时,顺序执行下面两个命令后,一般会解决问题:

$ git credential-manager uninstall
$ git credential-manager install

此时再执行 git push 命令,输入用户名:root;密码:123456,就可以提交成功!
如果通过了上面两项测试--“克隆” 和 “提交”,基本可以说明 http 模式测试成功!

3.3.2、 ssh 模式测试

1)生成 ssh key
在windows下查看[c盘->用户->自己的用户名->.ssh]下是否有id_rsa、id_rsa.pub文件,如果文件存在的话,就可以直接进入下一步,如果没有则需要手动生成。
打开git bash,在控制台中输入以下命令。

$ ssh-keygen

一路回车,即使用默认名称、不输入密码,生成:id_rsa、id_rsa.pub 两个文件
2)使用 ssh key 文件
在 gitea 网站的仓库管理界面,如下图:

仓库管理界面

点击“仓库设置”,进入下面界面:
仓库设置

点击“管理部署密钥”
管理部署密钥

点击“添加部署密钥”
把生成好的公钥 id_rsa.pub 的内容复制到“密钥文本”输入框中:
添加公钥

点击底部“添加部署密钥”按钮完成添加。
3)克隆
在 git bash 里输入:

$ git clone ssh://git@192.168.150.128:10022/root/first.git

如果出现包含:Offending ECDSA key in /c/Users/MyPC.000/.ssh/known_hosts:2 的信息,删除 ~/.ssh/known_hosts 文件,重新执行

$ git clone ssh://git@192.168.150.128:10022/root/first.git

即可!
查看 origin 的信息如下:

$ cd ~/git/first
$ git remote -v
origin  ssh://git@192.168.150.128:10022/root/first.git (fetch)
origin  ssh://git@192.168.150.128:10022/root/first.git (push)

4)向远程仓库提交文件

$ touch test2.txt
$ git add .
$ git commit -m 'test2'
$ git push origin master

查看远程仓库


提交检查

完成提交!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容