willning 发表于 2022-11-16 14:51:15

如何使用gitea,搭建一个有管理界面的协同服务器

本帖最后由 willning 于 2022-11-21 09:39 编辑

本教程为通用能力(L3)下的G-1:基于Git开展协同开发(含版本管理和分支管理)的推荐阅读项目。
您在使用活字格的过程中是否有这样的烦恼:

[*]担心工程文件损坏或丢失
[*]新加入的功能让其他页面跑不起来了,想快速回滚到一周前的版本
[*]线上运行的应用出了问题需要紧急修复,但当前开发的版本还不稳定


这些问题在软件工程中都是很常见的,可以通过引入版本管理机制来应对。活字格中内置兼容git的版本管理功能,叫“协作开发”。即便不需要协同,我们也强烈推荐您启用这个功能来做好版本管理,以防患未然。


在之前的教程中,我们都是以码云、工蜂等免费的SaaS版Git服务为例向大家展示这个强大的功能。如果您的公司不能接受将开发产物和工程存放在外网,或者干脆不允许开发机联网,该怎么办?

您需要在局域网内自己搭建一个类似码云的Git服务!

在这篇教程中,我向大家推荐一款开源的git服务:Gitea: Git with a cup of tea 。一次部署,同时搞定Git服务和Web版管理控制台。以下的搭建过程以MariaDB 10.3+Ubuntu 20为例,官方文档中也包含了对Windows和MS SQL Server的支持:

1. 准备数据库
官方教程: 先安装 再配置

1.1 安装:
在数据库服务器上,执行以下脚本
sudo apt-get install apt-transport-https curl
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo sh -c "echo 'deb https://mirrors.aliyun.com/mariadb/repo/10.3/ubuntu focal main' >>/etc/apt/sources.list"
sudo apt-get update
sudo apt-get install mariadb-server

1.2 启用外网访问:
在数据库服务器上,执行以下脚本
sudo vi /etc/mysql/my.cnf

将配置文件中的bind-address修改为bind-address=0.0.0.0

如果在RHEL等默认启用firewalld的系统,需要执行以下脚本,确保3306端口已打开
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

重启mariadb
sudosystemctl restart mariadb

1.3 创建gitea用户和数据库:
在数据库服务器上,执行以下脚本
sudo mysql -u root -p

然后依次执行以下sql语句
SET old_passwords=0;
CREATE USER 'gitea'@'10.32.210.236' IDENTIFIED BY 'giteap';--10.32.210.236是准备安装gitea的服务器IP,giteap是gitea账号的密码
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'10.32.210.236';
FLUSH PRIVILEGES;

2.2 下载二进制文件
cd /gitea
wget -O gitea https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-amd64sudo chmod +x gitea2.3 如果在RHEL等默认启用firewalld的系统,执行以下脚本,确保用于配置的3000端口已打开
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

2.4 在gitea服务器上,执行以下脚本,启动可视化配置的服务端
./gitea web

3. 在浏览器中配置

3.1 在浏览器上打开以下地址,按照界面提示配置数据库连接信息和站点URL。
http://10.32.210.236:3000/ (10.32.210.236是gitea服务器的IP)



点击【立即安装】按钮,等待用户登录页面准备完成。

3.2 在页面上点击【还没账号?马上注册。】链接,注册管理员账号,如root。
提示:不能使用admin作为用户名,这是gitea内部使用的用户。

点击右上角的头像,找到【管理后台】菜单,可以在【应用配置】选项卡确认配置信息是否正确。

3.4 关闭配置站点
确认无误后,在gitea服务器上按Ctrl+C结束站点。

4. 创建systemd的service
启动参数文档:在Linux中以service方式运行
4.1 在gitea服务器上,执行以下脚本
sudo vi /etc/systemd/system/gitea.service

在vi中参照附件进行编辑,附件中的ubuntu是当前执行命令的用户名,注意替换


4.2 执行以下命令,启动gitea服务
sudo systemctl enable gitea
sudo systemctl start gitea

5. 创建工程

5.1 在浏览器上打开以下地址,点击右上角的加号图标,选择【创建仓库】
http://10.32.210.236:3000/ (10.32.210.236是gitea服务器的IP)

5.2 按照提示输入仓库名:hello_gitea,等待创建完成后,在【代码】选项卡中获取HTTP协议的git地址


5.3 打开活字格设计器,创建一个新工程,在【高级】选项卡中点击【创建工程】图标,输入上一步的git地址,点击确定。按照界面提示,输入root和密码,等待上传完毕。


5.4 回到浏览器,刷新页面,协作工程就创建好了。

gitea提供的功能和码云类似,大家自行探索吧。

One more thing...
对于生产环境,强烈推荐将MariaDB和/gitea/data目录列入备份计划,你的工程数据就保存在这里。

shuyeshuye1982 发表于 2022-11-20 22:34:21

好多图都在转圈圈

葛挺挺 发表于 2022-11-21 13:12:43

学习学习:$

葛挺挺 发表于 2022-11-23 17:43:08

挺好的 , 已经搭建了个windows11+sql的在使用了
页: [1]
查看完整版本: 如何使用gitea,搭建一个有管理界面的协同服务器