本文发布于395天前,最后更新于155天前,其中的信息可能有所发展或是发生改变。如有疑问请联系邮箱:admin@yemengstar.com。
1.前言
相比较gitlab,gitea是绝对的轻量级git服务程序了。
GIT(本地必装):Git – Downloading Package (git-scm.com)。装完以后在目标文件夹右键会有Git Bash Here
和Git GUI Here
两个选项
GitHub地址:go-gitea
1panel地址:1Panel – 现代化、开源的 Linux 服务器运维管理面板
可能会用到的文档:
- 在 Git 中设置用户名 – GitHub 文档
- git配置SSH – 江风余火
- Gitea——私有git服务器搭建详细教程_Baret-H
Gitea不提供内置的Pages服务器。您需要一个专用的域名来提供静态页面,以避免CSRF安全风险。 对于简单的用法,您可以使用反向代理来重写和提供Gitea的原始文件URL中的静态内容。 还有一些已经可用的第三方服务,比如独立pages server的或caddy plugin,可以提供所需的功能。
这篇教程中,夜梦全程以推送HEXO博客仓库进行展示
最终效果如图
2. 1panel部署
推荐使用1panel进行部署,快捷简便。
2.1 1panel面板安装
Ubuntu系统
代码语言:javascript复制curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
Debian系统
代码语言:javascript复制curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
CentOS系统
代码语言:javascript复制curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
2.2 Gitea安装
在控制台找到访问地址后,登录面板。
然后再应用商店中找到gitea,点击安装即可!
注意:需要安装MySQL!版本按照服务器的性能进行选择即可!夜梦安装的MySQL版本为5.6
在安装gitea时,需要勾选端口对外访问!
2.3 Gitea初始化
访问ip:3000
即可进入gitea初始化界面。
我们需要完善其中的【站点名称】填写,其余若无域名访问需要,保持默认即可。
夜梦全程以ip:3000
进行访问!
然后我们就进入了主页!
和GitHub有异曲同工之妙。
(看着真的眼熟不是吗)
由于就是GitHub的翻版,所以夜梦这里就不再赘述如何使用Gitea了。下面夜梦简单讲述一下使用过程中和GitHub不一样的地方,也是很容易出问题的地方。
3.简单使用
3.1本地操作
在本地文件夹中,右键选中Git Bash Here
,即可进行操作。
在本地文件夹中,右键选中Git GUI Here
,在Help
中,找到Show SSH Key
即可添加SSH密钥(公钥与私钥)。推荐在本地文件夹中新建.ssh
文件夹。
仓库建立完毕以后,本地文件夹中会出现.git
文件夹!
夜梦这里以HEXO仓库进行演示,仓库建立完毕以后,文件夹内容如下:
3.2 gitea操作
如果要链接Gitea仓库,夜梦推荐使用SSH进行连接。
在设置
–SSH/GPG密钥
–管理SSH密钥
,上传已经生成的公钥(.pub
后缀),即可避免使用密码连接。
3.3修改SSH连接配置
如果没有猜错,你应该会在上述连接中遇到一个问题
连接仓库
代码语言:javascript复制ssh git@233.233.233.233:yemeng/hexo.git
提示
代码语言:javascript复制git@233.233.233.233's password:
这个密码时什么呢?
反正不是连接仓库的就对了。
那这是为什么?
让我们观察一下连接方式ssh git@233.233.233.233:yemeng/hexo.git
,我们在服务器公网ip
后面直接接了用户名yemeng
,没有接任何端口,也就是想当于走了默认端口22
,这一步等价于ip:22
,这也就是要登陆服务器的操作,这当然是需要密码的!我们应该是登陆服务器内部gitea容器的操作,因此我们需要修改gitea的一些配置!
让我们先回到1panel面板中。
在gitea应用中,选择参数
选择编辑
勾选高级设置
勾选编辑compose文件
编辑ports:
在gitea应用中,进入其文件夹
进入/data/gitea/conf
文件夹中,修改app.ini
文件
修改内容如下
之后重启容器即可!
此时我们再通过ssh推送HEXO仓库
代码语言:javascript复制xxx@YeMeng MINGW64 /e/hexo (master)
$ hexo d
INFO Validating config
INFO
===================================================================
##### # # ##### ##### ###### ##### ###### # # #
# # # # # # # # # # # # #
##### # # # # ##### # # ##### # #
# # # # # # # ##### # # #
# # # # # # # # # # # #
##### #### # # ###### # # # ###### #
4.7.0
===================================================================
INFO Deploying: git
Processing...
On branch master
nothing to commit, working tree clean
Everything up-to-date
branch 'master' set up to track 'ssh://git@233.233.233.233:222/yemeng/hexo.git/gh-pages'.
INFO Deploy done: git
这次期间任何流程无需再需要输入密码进行验证,到此ssh配置已经完毕。
4.docker-compose部署(rootless)
4.1安装docker-compose
上面第三部分重新设置端口的过程还是比较繁琐的,但是如果你熟悉docker-compose的配置,那么使用docker-compose.yml
即可快速完成上述第二部分和第三部分的所有设置。
安装docker和docker-compose:【docker】在服务器上安装docker
4.2准备
首先创建一个 gitea 工作目录,后续工作都在这个目录下完成
代码语言:javascript复制mkdir ~/gitea && cd ~/gitea
预先创建 data 和 config 目录,稍后用于数据挂载
代码语言:javascript复制mkdir data config
chown 1000:1000 data config
# 1000:1000自己调整
4.3基础配置
参考文章:
- 手把手教你玩转 Gitea|使用 Docker 安装 Gitea – Gitea – 博客园 (cnblogs.com)
- 使用 Docker 安装 | Gitea Documentation
代码语言:javascript复制rooless 版本的镜像默认使用 UID/GID 1000:1000 作为程序运行的用户组,为了保证 gitea 程序挂载权限正确的数据目录,我们在前面的步骤中预先创建了
data
和config
目录。
version: "2"
services:
server:
image: gitea/gitea:1.20-rootless
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
安装完毕以后,你可以通过ip:3000
访问配置页面。
如果需要通过域名进行访问,请完成反向代理。
选用基础配置时,安装时选择SQLite3作为初始化数据库。
4.4MySQL配置
夜梦这里选择将 Gitea 与 MySQL 数据库结合使用,具体的配置文件如下
代码语言:javascript复制version: "2"
services:
server:
image: gitea/gitea:1.20-rootless
environment:
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=yemeng
- GITEA__database__PASSWD=yemeng
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
depends_on:
- db
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=yemeng
- MYSQL_PASSWORD=yemeng
- MYSQL_DATABASE=gitea
volumes:
- ./mysql:/var/lib/mysql
安装完毕以后,你可以通过ip:3000
访问配置页面。
如果需要通过域名进行访问,请完成反向代理。
选用基础配置时,安装时选择mysql作为初始化数据库。
4.5完成设置
你可以访问IP:3000
进入gitea配置页面。
你可以直接设置管理员,也可以到后面进行注册。第一个注册的用户自动会成为管理员。
5.app.ini配置
如果你忘记了管理员的密码,抑或是你需要修改配置文件,你都可以在app.ini
文件中修改。
由于我们是使用docker进行部署的,所以我们需要先进入容器。
查看容器ID
代码语言:javascript复制docker ps -a
得到
代码语言:javascript复制CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4fd3cb713ab7 gitea/gitea:1.20 "/usr/bin/entrypoint…" 13 minutes ago Up 13 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp gitea
85e1eeea4fe2 mysql:8 "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 3306/tcp, 33060/tcp root-db-1
然后我们找到gitea的<CONTAINER ID>
:4fd3cb713ab7
然后进入容器
代码语言:javascript复制docker exec -it <CONTAINER ID> /bin/bash
进入以后,我们输入
代码语言:javascript复制gitea admin user change-password --username AdminUserName --password NewAdminPwd --config /etc/gitea/app.ini
即可修改你的管理员密码。