您好,登录后才能下订单哦!
# CentOS8怎么安装Gogs托管服务
## 前言
Gogs(Go Git Service)是一个用Go语言编写的轻量级自托管Git服务,类似于GitHub和GitLab,但更加轻量、简单易用。对于个人开发者或小团队来说,Gogs是一个非常好的代码托管选择。本文将详细介绍如何在CentOS8系统上安装和配置Gogs服务。
## 准备工作
在开始安装之前,请确保您已经具备以下条件:
1. 一台运行CentOS8的服务器(物理机或虚拟机均可)
2. 拥有root权限或sudo权限的账户
3. 服务器已连接互联网
4. 基本熟悉Linux命令行操作
## 第一步:系统更新
在安装任何软件之前,建议先更新系统软件包:
```bash
sudo dnf update -y
sudo dnf upgrade -y
Gogs需要一些基础软件包才能正常运行:
sudo dnf install -y wget git tar unzip
虽然Gogs支持SQLite、MySQL和PostgreSQL,但对于生产环境建议使用MySQL:
sudo dnf install -y @mysql
sudo systemctl enable --now mysqld
sudo mysql_secure_installation
按照提示设置root密码并完成安全配置。
登录MySQL:
mysql -u root -p
执行以下SQL命令创建数据库和用户:
CREATE DATABASE gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'gogs'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Gogs依赖于Git,确保已安装最新版本:
sudo dnf install -y git
配置Git全局设置:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
为安全起见,建议创建一个专用用户来运行Gogs:
sudo adduser --system --shell /bin/bash --comment 'Gogs Service' --home /home/git git
sudo passwd git
cd /tmp
wget https://dl.gogs.io/0.12.3/gogs_0.12.3_linux_amd64.tar.gz
sudo tar -zxvf gogs_0.12.3_linux_amd64.tar.gz -C /opt
sudo ln -s /opt/gogs /home/git/gogs
sudo chown -R git:git /opt/gogs /home/git/gogs
sudo -u git cp /opt/gogs/custom/conf/app.ini.sample /opt/gogs/custom/conf/app.ini
sudo -u git nano /opt/gogs/custom/conf/app.ini
主要修改以下部分:
[server]
DOMN = your-domain.com
HTTP_PORT = 3000
ROOT_URL = http://your-domain.com:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = gogs
PASSWD = your_strong_password
SSL_MODE = disable
sudo nano /etc/systemd/system/gogs.service
添加以下内容:
[Unit]
Description=Gogs (Go Git Service)
After=syslog.target
After=network.target
After=mysqld.service
[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/opt/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now gogs
如果启用了防火墙,需要开放相关端口:
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
现在可以通过浏览器访问Gogs的Web界面完成最后的配置:
http://your-server-ip:3000
可以使用Let’s Encrypt免费证书:
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot certonly --standalone -d your-domain.com
然后修改app.ini中的相关配置:
[server]
PROTOCOL = https
ROOT_URL = https://your-domain.com:3000/
CERT_FILE = /etc/letsencrypt/live/your-domain.com/fullchain.pem
KEY_FILE = /etc/letsencrypt/live/your-domain.com/privkey.pem
安装Nginx:
sudo dnf install -y nginx
创建Nginx配置文件:
sudo nano /etc/nginx/conf.d/gogs.conf
添加以下内容:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重启Nginx:
sudo systemctl enable --now nginx
sudo systemctl restart nginx
修改app.ini中的邮件部分:
[mailer]
ENABLED = true
HOST = smtp.your-email-provider.com:587
FROM = gogs@your-domain.com
USER = your-email@your-domain.com
PASSWD = your-email-password
sudo -u git /opt/gogs/gogs backup --target /backup/gogs --database-only
sudo -u git /opt/gogs/gogs restore --from /backup/gogs/backup-xxx.zip
检查防火墙设置和SELinux状态:
sudo systemctl status firewalld
sudo getenforce
检查MySQL服务状态和用户权限:
sudo systemctl status mysqld
mysql -u gogs -p
查看服务日志:
journalctl -u gogs -f
通过以上步骤,您已经在CentOS8系统上成功安装并配置了Gogs自托管Git服务。Gogs以其轻量级和易用性著称,非常适合个人开发者和小型团队使用。您可以根据实际需求进一步定制和优化Gogs的配置。
本文基于以下软件版本编写: - CentOS 8.4 - Gogs 0.12.3 - MySQL 8.0 - Git 2.27.0
”`
这篇文章详细介绍了在CentOS8上安装Gogs的完整过程,包括系统准备、依赖安装、数据库配置、Gogs安装与配置、服务管理、防火墙设置以及高级配置选项等。按照这个指南,您应该能够成功搭建自己的Git托管服务。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。