Gogs 简介
Gogs(Go Git Service)是一个用 Go 语言编写的自托管 Git 服务,类似于 GitHub 或 GitLab,但更轻量、易于部署和使用。Gogs 的目标是提供一个简单、快速且低资源占用的 Git 服务,适合个人开发者、小团队或企业使用。
下载官网:Gogs: A painless self-hosted Git service
安装部署:
首先安装docker,这里不再详细解释了。
#安装好docker之后,拉取gogs镜像。
docker pull gogs/gogs
#创建本地目录存放数据
mkdir -p /var/gogs
#使用run命令绑定端口和一些配置文件
docker run -d --name=my_gogs -p 1022:22 -p 3000:3000 -v /var/gogs:/data gogs/gogs
#注释:
#docker run 创建并启动一个新的容器。
#-d 表示以“后台模式”运行容器。
#--name 用于为容器指定一个名称,这里是 my_gogs
#-p 1022:22 表示将宿主机的 1022 端口映射到容器的 22 端口。
#-p 3000:3000 将宿主机的 3000 端口映射到容器的 3000 端口。
#-/var/gogs:/data 表示将宿主机的 /var/gogs 目录挂载到容器的 /data 目录。
#gogs/gogs 是Gogs的官方Docker镜像,托管在Docker Hub上。#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 临时
setenforce 0
# 永久 注意需要重启才能生效。
sed -i 's/enforcing/disabled/' /etc/selinux/config #拉取mysql镜像
docker pull mysql:8.0
#启动mysql容器
docker run -d --name=mysql8 \
> -e MYSQL_ROOT_PASSWORD=password \
> -p 5432:3306 \
> -v /path/to/mysql/data:/var/lib/mysql \
> mysql:8.0#-d:后台运行容器。
#--name=mysql8:为容器指定名称。
#-e MYSQL_ROOT_PASSWORD=password:设置MySQL的root用户密码。
#-p 5432:3306:将宿主机的3306端口映射到容器的3306端口(MySQL默认端口)。
#-v /path/to/mysql/data:/var/lib/mysql:将宿主机的目录挂载到容器的 /var/lib/mysql 目录,用于持久化数据。
#mysql:8.0:使用的镜像名称和版本。
#进入容器
docker exec -it mysql8 bash
#进入数据库里面
mysql -u root -p
#输入密码
#创建数据库
CREATE DATABASE gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#utf8mb4 是Gogs推荐的字符集,支持存储Emoji等特殊字符。
#utf8mb4_general_ci 是默认的排序规则。
#创建用户并设置密码
#创建用户 gogs,并设置密码为password :
CREATE USER 'gogs'@'%' IDENTIFIED BY 'password ';
#授予用户 gogs 对数据库 gogs 的所有权限
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%';
#刷新权限
FLUSH PRIVILEGES;
#检查用户 gogs 的权限:
SHOW GRANTS FOR 'gogs'@'%';
#退出MySQL命令行:
exit;
打开浏览器访问 http://服务器IP:3000。
报错500,原因没有启用邮箱配置。
解决方法:
#查找app.ini文件
find / -name app.ini
#编辑app.ini文件
vim /var/gogs/gogs/conf/app.ini#启用邮箱配置
把改为ENABLED = true #gogs重启
docker restart my_gogs
docker restart mysql8
重启gogs之后重新注册。
登录成功
创建仓库:
后面的内容和gitee github 仓库差不多,不再详细描述了。