git服务器搭建,gitea服务搭建,使用systemclt管理服务
文章目录
- 页面展示
- 使用二进制文件安装git服务
- 下载
- 选择架构
- 使用wget下载安装
- 验证 GPG 签名
- 服务器设置
- 准备环境
- 创建systemctl文件
- 备份与恢复
- 备份命令 (dump)
- 恢复命令 (restore)
页面展示
使用二进制文件安装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
相关文章:

git服务器搭建,gitea服务搭建,使用systemclt管理服务
文章目录 页面展示使用二进制文件安装git服务下载选择架构使用wget下载安装 验证 GPG 签名服务器设置准备环境创建systemctl文件 备份与恢复备份命令 (dump)恢复命令 (restore) 页面展示 使用二进制文件安装git服务 所有打包的二进制程序均包含 SQLite,MySQL 和 Po…...

Pdf手册阅读(1)--数字签名篇
原文阅读摘要 PDF支持的数字签名, 不仅仅是公私钥签名,还可以是指纹、手写、虹膜等生物识别签名。PDF签名的计算方式,可以基于字节范围进行计算,也可以基于Pdf 对象(pdf object)进行计算。 PDF文件可能包…...

嵌入式WebRTC压缩至670K,目标将so动态库压缩至500K,.a静态库还可以更小
最近把EasyRTC的效果发布出去给各大IPC厂商体验了一下,直接就用EasyRTC与各个厂商的负责人进行的通话,在通话中,用户就反馈效果确实不错! 这两天有用户要在海思hi3516cv610上使用EasyRTC,工具链是:gcc-2024…...

百度高德地图坐标转换
百度地图和高德地图的侧重点不太一样。同样一个地名,在百度地图网站上搜索到的地点可能是商业网点,在高德地图网站上搜索到的地点可能是自然行政地点。 高德地图api 在高德地图中,搜索地名,如“乱石头川”,该地名会出…...
ES 索引结构
ES 既不像 MySQL 这样有严格的 Schema,也不像 MongoDB 那样完全无 Schema,而是介于两者之间。 1️⃣ ES 的 Schema 模式 ES 默认是 Schema-less(无模式) 的,允许动态添加字段。 但 ES 也支持 Schema(映射 …...

HPM_SDK应用本地化——基于6750evkmini
文章目录 前言一、准备工作1、下载官方的SDK2、解压SDK 二、实操1、新建目标工程文件夹2、回到SDK中将相关文件复制1、Borad文件夹2、hello_world文件夹 三、实验现象总结 前言 为什么要对sdk进行应用本地化?在嵌入式开发中我们一般将官方提供的SDK作为参考&#x…...

【deepseek-r1本地部署】
首先需要安装ollama,之前已经安装过了,这里不展示细节 在cmd中输入官网安装命令:ollama run deepseek-r1:32b,开始下载 出现success后,下载完成 接下来就可以使用了,不过是用cmd来运行使用 可以安装UI可视化界面&a…...

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串
您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串: <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…...

堆排序
目录 堆排序(不稳定): 代码实现: 思路分析: 总结: 堆排序(不稳定): 如果想要一段数据从小到大进行排序,则要先建立大根堆,因为这样每次堆顶上都能…...

【MySQL】我在广州学Mysql 系列—— 数据备份与还原
ℹ️大家好,我是练小杰,今天周一,过两天就是元宵节了,今年元宵节各位又要怎么过呢!! 本文主要对Mysql数据库中的数据备份与还原内容进行讨论!! 回顾:👉【MySQ…...
【LeetCode Hot100 双指针】移动零、盛最多水的容器、三数之和、接雨水
双指针 1. 移动零题目描述解题思路关键思路:步骤:时间复杂度:空间复杂度: 代码实现 2. 盛最多水的容器题目解析解题思路代码实现 3. 三数之和问题描述:解题思路:算法步骤:代码实现: …...
HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息
在新能源汽车快速发展的今天,充电桩的分布和可用性成为了影响用户体验的关键因素之一。比亚迪作为全球领先的新能源汽车制造商,不仅在车辆制造方面取得了卓越成就,也在充电基础设施建设上投入了大量资源。为了帮助用户更方便地找到比亚迪充电桩的位置,本篇文章,我们将探究…...
Android车机DIY开发之软件篇(十二) AOSP12下载编译
Android车机DIY开发之软件篇(十二) AOSP12下载编译 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib gmultilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev ccache libgl1-mesa-…...

Jenkins+gitee 搭建自动化部署
Jenkinsgitee 搭建自动化部署 环境说明: 软件版本备注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好选稳定版本,不然安装插件有点麻烦 一、安装Jenkins程序 1、到官网下载相应的版本war或者直接使用yum安装 Jenkins官网下载 直接…...

【文本处理】如何在批量WORD和txt文本提取手机号码,固话号码,提取邮箱,删除中文,删除英文,提取车牌号等等一些文本提取固定格式的操作,基于WPF的解决方案
企业的应用场景 数据清洗:在进行数据导入或分析之前,往往需要对大量文本数据进行预处理,比如去除文本中的无关字符(中文、英文),只保留需要的联系信息(手机号码、固话号码、邮箱)。…...

Linux系统引导与服务管理
目录 一、Linux引导过程 1、引导过程概述 1.1、BIOS开机自检 1.2、MBR读取 1.3、加载引导加载程序(GRUB) 1.4、内核加载 1.5、初始化进程(init) 二、服务 2.1、服务类型 2.2、服务管理工具 三、运行级别 四、systemd …...

网络工程师 (30)以太网技术
一、起源与发展 以太网技术起源于20世纪70年代,最初由Xerox公司的帕洛阿尔托研究中心(PARC)开发。最初的以太网采用同轴电缆作为传输介质,数据传输速率为2.94Mbps(后发展为10Mbps),主要用于解决…...
react项目引入tailwindcss不生效解决方案
根据tailwindcss官网的操作步骤下来,样式未生效,且未报错,看了挺多的资料,还是并未解决。 后面在另一个项目尝试时,报了下面的问题: Error: PostCSS plugin tailwindcss requires PostCSS 8 根据这个链接…...
【C#】条件运算符
1.逻辑与(&&) Console.WriteLine(true && true);//true Console.WriteLine(true && false);//false Console.WriteLine(false && false);//false2.逻辑或(||) Console.WriteLine(true || true);//true Console.WriteLine(true || false);//t…...

Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程
系统版本:Windows 11 依赖环境:Anaconda3 运行软件:PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...