凌峰创科服务平台

Linux如何快速搭建Git服务器?

在Linux系统中搭建Git服务器可以通过多种方式实现,其中使用Gitosis或Gitea是较为常见的方案,本文将以Gitea为例,详细介绍在Linux服务器上搭建Git服务器的完整步骤,包括环境准备、安装配置、用户管理及安全设置等内容。

Linux如何快速搭建Git服务器?-图1
(图片来源网络,侵删)

确保服务器系统为Linux发行版,如Ubuntu 20.04或CentOS 7,推荐使用Ubuntu系统,因其软件包管理更为便捷,登录服务器后,更新系统软件包列表并安装必要的依赖工具,例如在Ubuntu中执行sudo apt update && sudo apt upgrade -y,然后安装gitwgetsqlite3等工具,接着创建一个专门用于运行Git服务的用户,例如sudo adduser --system --group --home /opt/gitea git,该用户将拥有较低的系统权限,以提高安全性。

下载并安装Gitea是核心步骤,访问Gitea官方 releases 页面获取最新版本的二进制文件,例如执行wget -O gitea https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-linux-amd64,然后赋予可执行权限chmod +x gitea,将二进制文件移动到系统路径,如sudo mv gitea /usr/local/bin/,创建Gitea的数据目录,例如sudo mkdir -p /opt/gitea/data && sudo chown -R git:git /opt/gitea/data,配置systemd服务单元文件,创建/etc/systemd/system/gitea.service如下:

[Unit]
Description=Gitea
After=syslog.target network.target
[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/opt/gitea
ExecStart=/usr/local/bin/gitea web -c /opt/gitea/custom/app.ini
Restart=always
Environment=USER=git
[Install]
WantedBy=multi-user.target

保存后执行sudo systemctl daemon-reload && sudo systemctl enable --now gitea,启动Gitea服务,通过浏览器访问服务器的3000端口(如http://服务器IP:3000),进入Gitea的初始化配置页面,设置数据库类型(推荐SQLite)、管理员账户、站点名称及域名等信息,完成后点击“安装”按钮,初始化成功后,即可使用管理员账户登录。

用户与仓库管理是Git服务器的核心功能,登录Gitea管理后台后,进入“管理”-“用户”可创建新用户,支持邮箱验证和密码策略配置,在“仓库”管理中,管理员可设置默认分支命名规则、是否允许创建公开/私有仓库等权限,Gitea支持通过LDAP或OAuth集成企业级身份认证,可在“认证”-“来源”中配置。

Linux如何快速搭建Git服务器?-图2
(图片来源网络,侵删)

安全配置方面,建议启用HTTPS,使用Nginx作为反向代理,配置文件如下:

server {
    listen 443 ssl;
    server_name git.example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

将配置文件保存到/etc/nginx/sites-available/gitea并创建软链接,然后重启Nginx服务,在Gitea的配置文件/opt/gitea/custom/app.ini中设置ROOT_URL = https://git.example.com,确保生成的仓库URL使用HTTPS。

定期备份是保障数据安全的重要措施,Gitea的数据包括数据库和仓库文件,可通过以下脚本实现备份:

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/opt/backups/gitea"
sudo mkdir -p $BACKUP_DIR
sudo cp -r /opt/gitea/data $BACKUP_DIR/data_$DATE
sudo sqlite3 /opt/gitea/data/gitea.db ".backup $BACKUP_DIR/gitea_$DATE.db"
tar -czf $BACKUP_DIR/gitea_backup_$DATE.tar.gz $BACKUP_DIR/data_$DATE $BACKUP_DIR/gitea_$DATE.db
sudo rm -rf $BACKUP_DIR/data_$DATE $BACKUP_DIR/gitea_$DATE.db

将脚本保存为/opt/backups/backup_gitea.sh并添加执行权限,然后通过cron设置每日自动执行,例如0 2 * * * /opt/backups/backup_gitea.sh

相关问答FAQs

  1. 如何限制用户创建仓库的数量?
    在Gitea管理后台的“管理”-“配置”-“仓库”中,找到“每用户最大仓库数”选项,设置允许用户创建的仓库上限,若需针对特定用户调整,可在用户管理页面单独修改。

  2. 如何配置Git服务器支持SSH协议?
    安装Gitea时默认启用SSH服务,确保服务器的22端口开放,在Gitea的“配置”-“SSH”中设置SSH端口(默认为22)和密钥存放路径,用户可通过git clone ssh://git@服务器IP:端口/用户名/仓库名.git克隆仓库。

分享:
扫描分享到社交APP
上一篇
下一篇