Centos7 Gogs服务安装部署

本文介绍如何安装配置Git、Go语言环境、MySQL数据库及Gogs代码托管平台,并通过Nginx实现反向代理。包括各软件的安装步骤、Gogs运行环境设置及Nginx配置细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装git并初始化

yum install git

2.安装go语音

yum install go   

安装完成之后,可以通过 go version 查看安装是否成功

3.安装mysql数据库

安装mysql数据库
安装完成后创建mysql数据库的用户gogs,创建数据库gogs

4.安装gogs

1:下载二进制安装包

curl -o /usr/local/src/gogs.tar.gz http://7d9nal.com2.z0.glb.qiniucdn.com/0.11rc/linux_amd64.tar.gz

2:解压

cd /usr/local/src
tar -zxvf gogs.tar.gz
mv gogs /usr/local

3:运行

cd /usr/local/gogs
./gogs web  后台运行nohup ./gogs web &

4:访问

http://ip地址:3000

5:配置
根据升级情况配置

5.配置gogs

gogs安装完成之后,可以设定gogs的运行环境,配置文件为:custom/conf/app.ini(安装完成之后才会在gogs根目录下出现)
具体配置项可以参考:gogs配置说明

6.配置nginx反向代理

创建vhost文件夹
mkdir /etc/nginx/vhost

创建gogs.conf文件
touch /etc/nginx/vhost/gogs.conf

编辑gogs.conf文件,内容如下:
server {
    listen 80;
    server_name git.onemoo.cn;
    access_log /usr/local/gogs/log/gogs.log main;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:3000;
    }
}

配置nginx.conf文件
vi /etc/nginx/nginx.conf

添加内容include /etc/nginx/vhosts/*.conf到nginx.conf文件中
http {
    ...
    # 包含所有虚拟主机的配置文件
    include /etc/nginx/vhosts/*.conf;

}

重新加载nginx配置文件
nginx -s reload

参考地址:www.cnblogs.com/yuanyee/p/6639228.html

<think>嗯,用户之前问过在CentOS上配置Docker的问题,现在又转向了在CentOS部署Gogs服务。可能用户正在搭建自己的Git服务,用于代码管理。Gogs是一个轻量级的自托管Git服务,适合个人或小团队使用。用户提到拉取镜像、启动容器后搭建远程仓库,但可能遇到了问题或者需要详细步骤。 首先,我需要确定用户是否已经正确安装了Docker,因为之前的对话中用户遇到了yum源的问题。但用户现在的问题是关于Gogs部署,所以可能Docker已经安装好了。不过,不能排除用户可能仍有Docker配置的问题,例如镜像加速或者权限问题。 接下来,用户提到拉取Gogs镜像,但需要确认使用的是官方镜像还是其他来源。通常,Gogs的官方Docker镜像在Docker Hub上,用户可能需要正确的拉取命令。然后启动容器时,需要注意端口映射、数据卷挂载和环境变量配置,特别是数据库的设置。Gogs支持SQLite、MySQL、PostgreSQL,默认可能使用SQLite,但用户可能需要持久化数据,所以数据卷的位置很重要。 用户可能遇到的常见问题包括容器启动后无法访问,这可能是端口映射错误,或者数据库配置不正确。另外,搭建远程仓库时,可能需要在Gogs的Web界面中进行初始化设置,创建用户和仓库。这里需要指导用户完成这些步骤,包括如何注册第一个用户,创建仓库,以及如何通过Git客户端克隆或推送代码。 另外,用户可能忽略了数据持久化的问题,如果容器被删除,数据会丢失。因此,需要提醒用户正确挂载数据卷,比如将容器内的/data目录映射到宿主机的某个路径。此外,Gogs的配置文件也需要持久化,以便后续修改配置后不需要重新初始化。 还有可能用户在使用过程中遇到权限问题,比如宿主机挂载目录的权限与容器内用户不匹配,导致Gogs无法写入数据。需要检查目录权限,可能需要使用chown或chmod进行调整。 用户可能还关心如何配置HTTPS,提升安全性,或者如何备份和恢复Gogs的数据。这些可以作为扩展建议提供,但首先要确保基本部署步骤正确。 总结来说,回答需要分步骤指导用户拉取镜像、启动容器、进行初始化设置,并解决可能遇到的常见问题,同时提醒数据持久化和权限配置的重要性。确保用户能够顺利搭建远程Git仓库,并正确使用Gogs服务。</think>在CentOS系统部署Gogs服务并通过Docker容器搭建自托管Git仓库,以下是完整操作指南: --- ### 📦 **部署流程概览** 1. 安装Docker(若未安装) 2. 拉取Gogs镜像 3. 启动容器并配置持久化存储 4. 初始化Gogs服务 5. 创建远程仓库并测试 --- ### 🛠️ **详细步骤** #### **1. 安装Docker(若已安装可跳过)** ```bash # 安装必要工具 sudo yum install -y yum-utils # 添加Docker仓库 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装Docker sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker && sudo systemctl enable docker ``` --- #### **2. 拉取Gogs镜像** ```bash # 使用官方镜像(推荐) docker pull gogs/gogs ``` --- #### **3. 启动容器** ```bash # 创建数据存储目录 mkdir -p /opt/gogs/data # 启动容器(关键参数说明) docker run -d \ --name=gogs \ -p 10022:22 \ # SSH协议端口 -p 13000:3000 \ # Web界面端口 -v /opt/gogs/data:/data \ # 持久化存储 --restart=always \ gogs/gogs ``` --- #### **4. 初始化Gogs服务** 1. 访问Web界面:`http://服务器IP:13000` 2. **数据库配置**: - 选择 **SQLite3**(适合小型部署) - 若用MySQL/PostgreSQL,需提前创建数据库 3. **应用基础设置**: ```ini 域名 = 服务器IP SSH端口 = 10022 # 必须与容器映射的SSH端口一致 HTTP端口 = 3000 # 容器内部端口,无需修改 ``` 4. 完成初始化后,创建第一个管理员账户 --- #### **5. 创建远程仓库** 1. 登录后点击 **"+"** 创建新仓库 2. 填写仓库名称(如 `myproject`),选择公开/私有 3. **本地连接测试**: ```bash # 克隆仓库(HTTP协议) git clone http://服务器IP:13000/用户名/myproject.git # 或使用SSH协议(需配置SSH密钥) git clone ssh://git@服务器IP:10022/用户名/myproject.git ``` --- ### 🔍 **常见问题排查** #### **场景1:SSH连接失败** ```bash # 检查宿主机防火墙 sudo firewall-cmd --add-port=10022/tcp --permanent sudo firewall-cmd --reload # 验证容器端口映射 docker ps | grep gogs # 应显示 "0.0.0.0:10022->22/tcp" ``` #### **场景2:页面无法访问** ```bash # 查看容器日志 docker logs gogs # 检查端口冲突 netstat -tunlp | grep 13000 ``` #### **场景3:数据持久化失败** ```bash # 检查目录权限 sudo chown -R 1000:1000 /opt/gogs/data # Gogs容器默认使用UID 1000 # 验证数据同步 ls /opt/gogs/data/gogs/conf # 应看到app.ini配置文件 ``` --- ### ⚙️ **进阶配置** #### **1. 配置HTTPS访问** ```bash # 宿主机生成证书(示例) sudo mkdir -p /opt/gogs/certs openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /opt/gogs/certs/privkey.pem \ -out /opt/gogs/certs/fullchain.pem # 修改容器启动命令,添加443端口映射 docker run ... -p 1443:443 -v /opt/gogs/certs:/etc/ssl/certs ... ``` #### **2. 配置SMTP邮件服务** 修改 `/opt/gogs/data/gogs/conf/app.ini`: ```ini [mailer] ENABLED = true HOST = smtp.example.com:587 FROM = gogs@example.com USER = your-email@example.com PASSWD = your-password ``` --- ### 📝 **维护操作** #### **备份数据** ```bash # 备份数据库和仓库数据 tar czvf gogs-backup-$(date +%F).tar.gz /opt/gogs/data # 备份配置文件 cp /opt/gogs/data/gogs/conf/app.ini ./app.ini.bak ``` #### **升级Gogs版本** ```bash # 停止旧容器 docker stop gogs && docker rm gogs # 拉取新镜像 docker pull gogs/gogs # 重新启动容器(使用原有数据卷) docker run ...(与之前相同的启动命令) ``` --- ### 🌟 **扩展建议** 1. **定时备份**:使用cron定时任务自动备份数据 2. **性能优化**:当仓库数量增加时,建议使用MySQL替代SQLite 3. **安全加固**: - 定期更新Gogs版本 - 配置Nginx反向代理并启用HTTPS - 限制SSH访问IP范围 通过以上步骤,您将获得一个功能完整的自托管Git服务。测试时建议先创建测试仓库验证推送/拉取功能,再逐步迁移实际项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值