【解决方案】个人如何搭建Git私服 开源代码管理工具Gitea私有化部署教程

在现代软件开发中,Git 已经成为最流行的版本控制系统之一。虽然 GitHub、Gitee、GitLab 等公共服务提供了方便的托管平台,但有时候由于安全性、隐私或其他定制化需求,我们需要搭建一个自己的 Git 服务器。

一、Gitea简介

Gitea是一个开源、轻量级的自托管Git服务,它为用户提供了一个类似于GitHub或GitLab的代码托管平台。Gitea采用Go语言开发,具有高效的性能和跨平台特性,适用于个人开发者、小型团队以及企业用户。
在这里插入图片描述

  1. 内网私有化部署:能够在内网部署 Gitea 使其可以更好地控制数据流向和安全性。
  2. 开源优势:Gitea的开源特性是其重要的特性之一。它基于 MIT 许可证,意味着可以自由使用、修改和分发软件,完全不受限制
  3. 成本效益:Gitea的免费开源模式Gitea对硬件资源的要求较低,能够在低成本的服务器或 VPS 上轻松运行。其轻量化的特性使得运维成本大幅减少,可以灵活地选择基础设施来部署。
  4. 多用户权限管理:Gitea提供了细粒度的权限控制,适合企业对不同团队、项目的管理需求。管理员可以为不同的用户或团队分配特定权限,确保代码安全

二、准备工作

在开始搭建之前,需要的条件和配置如下:

  1. 硬件要求:具有root权限的一台联网的服务器(至少要连内网),硬件方面,小型团队/项目2 个 CPU 内核和 1GB 内存通常就足够,多个大项目或有高并发需求,至少要8 个 CPU 内核和 16GB 内存。
  2. 操作系统: Linux 发行版(如 Ubuntu、CentOS),Windows或者MacOS。

三、私有化部署步骤

3.1、安装git

3.1.1、切换 root 账户

在操作之前先切换至 root 账户

su root

如果不切换账户,请在下列指令前添加 sudo 提权。在这里插入代码片之后视服务器本身的系统,安装Git:
1️⃣、在 Ubuntu 安装 Git

apt update
apt install git

2️⃣、在 CentOS 安装 Git

yum update
yum install git

3️⃣、在 Windows 安装 Git

  1. 前往Git for Windows(https://gitforwindows.org/)官网下载安装包。
  2. 运行安装程序,按照向导进行安装。
  3. 安装完成后,可以使用 Git Bash 进行 Git 操作。

3.1.2、查看安装版本

安装成功后,可以看一下自己安装的版本:

git --version

在这里插入图片描述

3.2、准备数据库(MySQL)

3.2.1、安装MySQL

在服务器安装MySQL数据库服务。安装建议:尽量用压缩包安装,对日后的卸载更为方便

3.2.2、创建数据库

使用root用户或者root权限,输入mysql -u root -p并输入密码登录数据库:
[图片]
然后创建一个将被 Gitea 使用的数据库用户,并使用密码进行身份验证。以下示例中使用了 ‘gitea’ 作为密码。

SET old_passwords=0;
CREATE USER 'gitea' IDENTIFIED BY 'gitea';

然后使用 UTF-8 字符集和大小写敏感的排序规则创建数据库。

utf8mb4_bin 是 MySQL/MariaDB 的通用排序规则。 Gitea 启动后会尝试把数据库修改为更合适的字符集 (utf8mb4_0900_as_cs 或者 uca1400_as_cs) 并在可能的情况下更改数据库。 如果你想指定自己的字符集规则,可以在 app.ini 中设置 [database].CHARSET_COLLATION

CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';

最后,将数据库上的所有权限授予上述创建的数据库用户。

GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
FLUSH PRIVILEGES;

之后输入exit退出mysql,然后测试是否能够连接,输入密码后,成功进入mysql则成功!

mysql -u gitea -p giteadb

在这里插入图片描述

2.3、安装gitea

Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好 的自建 Git 服务。

Gitea采用Go作为后端语言,只需生成一个可执行程序即可。 支持 Linux, macOS 和 Windows等多平台, 支持主流的x86,amd64、 ARM 和 PowerPC等架构。

2.3.1、使用二进制文件安装

直接在下载页面:https://dl.gitea.com/gitea/ 选择对应平台的二进制文件。

  • 对于 Linux,linux-amd64 适用于 64-bit 的 Intel/AMD 平台。更多架构包含 arm64 (Raspberry PI 4),386 (32-bit),arm-5 以及 arm-6。
  • 对于 Windows,windows-4.0-amd64 适用于 64-bit 的 Intel/AMD 平台,386 适用于 32-bit 的 Intel/AMD 平台。
  • 对于 macOS,darwin-arm64 适用于 Apple Silicon 架构,darwin-amd64 适用于 Intel 架构.

然后验证 GPG 签名:

gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.23.6-linux-amd64.asc gitea-1.23.6-linux-amd64

校验正确时的信息为 Good signature from “Teabot teabot@gitea.io”。 校验错误时的信息为 This key is not certified with a trusted signature!。

然后依次运行以下命令:

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
export GITEA_WORK_DIR=/var/lib/gitea/
cp gitea /usr/local/bin/gitea

完成以上步骤后,就可以使用 systemctl restart gitea 安全地启动和重启程序了。

2.3.2、Docker安装(最方便)

创建 docker-compose.yml,使用下面的模板创建 docker-compose.yml,这里使用到的镜像是 gitea/gitea:1.17.2-rootless。

version: "3"

services:
  server:
    image: gitea/gitea:1.17.2-rootless
    container_name: gitea
    restart: always
    volumes:
      - ./data:/var/lib/gitea
      - ./config:/etc/gitea
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "2222:2222"

其中,关键配置包括数据挂载和端口映射。./data:/data挂载数据目录,./config:/etc/gitea挂载配置文件,并同步时区信息确保时间准确。端口映射中,3000:3000提供Web访问,2222:2222用于SSH操作(避免与系统22端口冲突)。这些配置既保证数据持久化,又提供灵活的部署选项。

然后使用docker compose up -d启动镜像。

2.3.3、源码安装

通过源码方式安装gitea其实是最方便的,不过在源码安装前,需要安装一些前提环境,在安装gitea之前,确认已经安装了git且git版本在2.0以上:
在这里插入图片描述

然后还需要安装go、npm以及node:

  • Go环境安装(版本要求大于1.16,一定要设置GOPATH 环境变量,并将其bin目录添加到$PATH中)
  • Node.JS环境安装(版本要求大于等于12.17,用于构建js和css文件,建议安装最新版本)
  • 数据库环境安装,建议MySQL

首先,我们需要获取源码:git clone https://github.com/go-gitea/gitea,然后使用make build进行构建,构建完成后使用./gitea web进行启动。这里由于构建过程时间比较长,不展开讨论,后续有需要可以在评论区留言,可以考虑单出一篇。

首次安装 Gitea 后,在浏览器中输入 http://localhost:3000/ 访问初始化页面,按需设置服务器信息。第一个注册的用户账号为管理账号。

💡最后

🎉 支持我:点赞👍+收藏⭐️+留言📝

另外,我们已经建立了🏤采苓研学社群,如果你还有其他疑问,可以私信我加入社群。

📝 加入社群 抱团学习:中杯可乐多加冰-采苓AI研习社

### 使用 AutoGPTQ 库量化 Transformer 模型 为了使用 `AutoGPTQ` 对 Transformer 模型进行量化,可以遵循如下方法: 安装所需的依赖包是必要的操作。通过 pip 安装 `auto-gptq` 可以获取最新版本的库。 ```bash pip install auto-gptq ``` 加载预训练模型并应用 GPTQ (General-Purpose Tensor Quantization) 技术来减少模型大小和加速推理过程是一个常见的流程。下面展示了如何利用 `AutoGPTQForCausalLM` 类来进行这一工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM model_name_or_path = "facebook/opt-350m" quantized_model_dir = "./quantized_model" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 加载已经量化的模型或者创建一个新的量化器对象用于量化未压缩过的模型 gptq_model = AutoGPTQForCausalLM.from_pretrained(quantized_model_dir, model=model, tokenizer=tokenizer) ``` 对于那些希望进一步优化其部署环境中的模型性能的人来说,`AutoGPTQ` 提供了多种配置选项来自定义量化参数,比如位宽(bit-width),这有助于平衡精度损失与运行效率之间的关系。 #### 注意事项 当处理特定硬件平台上的部署时,建议查阅官方文档以获得最佳实践指导和支持信息。此外,在实际应用场景之前应该充分测试经过量化的模型以确保满足预期的质量标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中杯可乐多加冰

请我喝杯可乐吧,我会多加冰!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值