git服务器搭建,gitea服务搭建,使用systemclt管理服务

ops/2025/2/13 2:58:07/

文章目录

  • 页面展示
  • 使用二进制文件安装git服务
  • 下载
    • 选择架构
    • 使用wget下载安装
  • 验证 GPG 签名
  • 服务器设置
    • 准备环境
    • 创建systemctl文件
  • 备份与恢复
    • 备份命令 (dump)
    • 恢复命令 (restore)

页面展示

在这里插入图片描述

git_4">使用二进制文件安装git服务

所有打包的二进制程序均包含 SQLite,MySQL 和 PostgreSQL 的数据库连接支持,同时网站的静态资源均已嵌入到可执行程序中

下载

你可以从 下载页面 选择对应平台的二进制文件。

选择架构

  • 对于 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 平台。(提示:gogit-windows 版本内建了 gogit 可能缓解在旧的 Windows 平台上 Go 程序调用 git 子程序时面临的 性能问题)

  • 对于 macOS,darwin-arm64 适用于 Apple Silicon 架构,darwin-amd64 适用于 Intel 架构.

  • 对于 FreeBSD,freebsd12-amd64 适用于 64-bit 的 Intel/AMD 平台。

使用wget下载安装

使用以下命令下载适用于 64-bit Linux 平台的二进制文件。

wget -O gitea https://dl.gitea.com/gitea/1.23.3/gitea-1.23.3-linux-amd64
chmod +x gitea

验证 GPG 签名

Gitea 对打包的二进制文件使用 GPG密钥 签名以防止篡改。 请根据对应文件名 .asc 中包含的校验码检验文件的一致性。

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

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


服务器设置

准备环境

检查是否安装 Git。要求 Git 版本 >= 2.0。

git --version

创建用户

# On Ubuntu/Debian:
adduser \--system \--shell /bin/bash \--gecos 'Git Version Control' \--group \--disabled-password \--home /home/git \git# On Fedora/RHEL/CentOS:
groupadd --system git
adduser \--system \--shell /bin/bash \--comment 'Git Version Control' \--gid git \--home-dir /home/git \--create-home \git

创建工作路径

mkdir /opt/gitea
chown git:git /opt/gitea

复制二进制文件到全局位置

cp gitea /usr/local/bin/gitea

创建systemctl文件

Centos:vim /usr/lib/systemd/system/gitea.service
Ubuntu:vim /etc/systemd/system/gitea.service

[Unit]
Description=gitea
Description=https://gitea.com[Service]
Environment=GITEA_WORK_DIR=/opt/gitea/
Restart=on-failure
ExecStart=/usr/local/bin/gitea web -c /opt/gitea/app.ini
User=git
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target

启动服务

systemctl start gitea.service
systemctl enable gitea.service

打开服务器IP地址192.168.2.36:3000
这里为了简单使用了SQLite
全部修改前面的地址/opt/gitea

完整vim /etc/gitea/app.ini配置文件

APP_NAME = Git服务
RUN_USER = git
WORK_PATH = /opt/gitea/
RUN_MODE = prod[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD = 
SCHEMA = 
SSL_MODE = disable
PATH = /opt/gitea/data/gitea.db
LOG_SQL = false[repository]
ROOT = /opt/gitea/data/gitea-repositories[server]
SSH_DOMAIN = https://git.eace.com
DOMAIN = https://git.eace.com
HTTP_PORT = 3000
ROOT_URL = https://git.eace.com
APP_DATA_PATH = /opt/gitea/data
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_JWT_SECRET = oh_5vB_iYiccBthoLtNSazdFkCTt9DjmSb0EU5v-0
OFFLINE_MODE = true[lfs]
PATH = /opt/gitea/data/lfs[mailer]
ENABLED = true
SMTP_ADDR = smtp.exmail.qq.com
SMTP_PORT = 465
FROM = 123@qq.com
USER = 123@qq.com
PASSWD = JVomgYJk8J5kQb[service]
REGISTER_EMAIL_CONFIRM = true
ENABLE_NOTIFY_MAIL = true
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost[openid]
ENABLE_OPENID_SIGNIN = false
ENABLE_OPENID_SIGNUP = false[cron.update_checker]
ENABLED = false[session]
PROVIDER = file[log]
MODE = console
LEVEL = info
ROOT_PATH = /opt/gitea/log[repository.pull-request]
DEFAULT_MERGE_STYLE = merge[repository.signing]
DEFAULT_TRUST_MODEL = committer[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiE3MzkxNzgxNjJ9.ZUmhJLaG5PP7GlqQcQwO7F3MwSDr38k0_sZ4d_YF4dM
PASSWORD_HASH_ALGO = pbkdf2[oauth2]
JWT_SECRET = fZ5NpBsA1wTPAQxNawqr1_hR5fDOWioyaDfa6Hs

备份与恢复

Gitea 已经实现了 dump 命令可以用来备份所有需要的文件到一个zip压缩文件。该压缩文件可以被用来进行数据恢复。
为了确保 Gitea 实例的一致性,在备份期间必须关闭它。

备份命令 (dump)

先转到git用户的权限: su git. 再Gitea目录运行 ./gitea dump。一般会显示类似如下的输出:

2016/12/27 22:32:09 Creating tmp work dir: /tmp/gitea-dump-417443001
2016/12/27 22:32:09 Dumping local repositories.../home/git/gitea-repositories
2016/12/27 22:32:22 Dumping database...
2016/12/27 22:32:22 Packing dump files...
2016/12/27 22:32:34 Removing tmp work dir: /tmp/gitea-dump-417443001
2016/12/27 22:32:34 Finish dumping in file gitea-dump-1482906742.zip

备份命令

su git
gitea dump --config /opt/gitea/app.ini 

最后生成的 gitea-dump-1482906742.zip 文件将会包含如下内容:

  • app.ini - 如果原先存储在默认的 custom/ 目录之外,则是配置文件的可选副本
  • custom/ - 所有保存在 custom/ 目录下的配置和自定义的文件。
  • data/ - 数据目录(APP_DATA_PATH),如果使用文件会话,则不包括会话。该目录包括 attachments、avatars、lfs、indexers、如果使用 SQLite 则包括 SQLite 文件。
  • repos/ - 仓库目录的完整副本。
  • gitea-db.sql - 数据库dump出来的 SQL。
  • log/ - Logs文件,如果用作迁移不是必须的。
    中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 --tempdir 参数,或者用 TMPDIR 环境变量。

恢复命令 (restore)

当前还没有恢复命令,恢复需要人工进行。主要是把文件和数据库进行恢复。
例如:

unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
mv app.ini /opt/gitea/app.ini
mv data/* /opt/gitea/data/
mv log/* /opt/gitea/log/
mv repos/* /opt/gitea/data/gitea-repositories/
chown -R git:git /opt/gitea/app.ini /opt/gitea# mysql
mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE <gitea-db.sql
# sqlite3
sqlite3 $DATABASE_PATH <gitea-db.sql
# postgres
psql -U $USER -d $DATABASE < gitea-db.sqlsystemctl restart gitea

http://www.ppmy.cn/ops/157938.html

相关文章

vi 是 Unix 和 Linux 系统中常用的文本编辑器

vi是 Unix 和 Linux 系统中常用的文本编辑器&#xff0c;它有几种不同的模式&#xff0c;其中最常用的是命令模式和插入模式。光标控制主要在命令模式下进行&#xff0c;以下是一些常用的vi命令来控制光标位置&#xff1a; • h,j,k,l&#xff1a;分别用于将光标向左、向下、向…

Mybatis源码02 - 初始化基本过程(引导层部分)

初始化基本过程&#xff08;引导层部分&#xff09; 文章目录 初始化基本过程&#xff08;引导层部分&#xff09;一&#xff1a;初始化的方式及引入二&#xff1a;初始化方式-XML配置文件1&#xff1a;MyBatis初始化基本过程2&#xff1a;创建Configuration对象的过程2.1&…

论文笔记-COLING2025-LLMTreeRec

论文笔记-COLING2025-LLMTreeRec: Unleashing the Power of Large Language Models for Cold-Start Recommendations LLMTreeRec: 释放大语言模型在冷启动推荐中的力量摘要1.引言2.框架2.1项目树构建2.2以LLM为中心的基于树的推荐2.2.1推荐链策略2.2.2检索策略 3.实验3.1实验设…

MacBook Pro M2安装deepseek

序 本文主要展示一下如何在MacBook Pro M2安装deepseek mac配置 芯片Apple M2&#xff0c;8核(物理)&#xff0c;内存16G&#xff0c;os版本Ventura&#xff0c;磁盘500G 步骤 下载ollama 去https://ollama.com/下载mac版本 或者使用go来编译 git clone --depth 1 http…

音视频协议

1. 多媒体信息 1.1 多媒体信息的两个主要特点&#xff1a; 信息量很大 标准语音&#xff1a;64Kbits(8KHz采样&#xff0c;8位编码)高质量音频&#xff1a;3Mbps(100KHz采样&#xff0c;12位编码) 在传输多媒体数据时&#xff0c;对时延和时延抖动均有较高要求 1.2 处理时延…

NO.14十六届蓝桥杯备战|switch语句|break|default|2道练习(C++)

switch语句 除了 if 语句外&#xff0c;C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if…else 结构&#xff0c;⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。 switch (expression) { case value1: stat…

如何在 React 中使用 CSS Modules?

在 React 中使用 CSS Modules 是一种模块化 CSS 的方式,可以避免类名冲突,并为每个组件提供独立的样式。以下是如何在 React 项目中使用 CSS Modules 的步骤: 1. 创建 React 应用 如果你还没有创建一个 React 应用,可以使用 Create React App: npx create-react-app my…

基于FPGA的智能垃圾分类装置(论文+源码)

2.1总体目标 本文设计一种基于FPGA的智能垃圾分类装置&#xff0c;在控制器上采用了Altera的FPGA芯片EP4C6E6F17&#xff0c;并结合LU-ASR01语音识别、继电器、红外传感器、蜂鸣器等构成整个系统&#xff0c;在功能上&#xff0c;当用户通过语音的方式说出想要扔的垃圾时&…