Gitea 安装和配置
Gitea 安装和配置: http://coffeelatte.vip.cpolar.top/post/software/applications/gitea/gitea_安装和配置/
文章目录
- Gitea 安装和配置: <http://coffeelatte.vip.cpolar.top/post/software/applications/gitea/gitea_%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/>
- 1. 简介
- 2. Gitea 安装
- 3. 配置文件
- 3.1. 发送测试邮件
- 4. 创建/删除 Gitea 服务
- 4.1. Windows 服务
- 4.2. Linux 服务
- 5. 使用 HTTPS 服务
- 6. 使用内置 SSH
- 7. 邮箱配置
- 8. 允许通过邮箱进行外部注册
- 9. 配置文件示例
- 10. 外部参考资料
1. 简介
Gitea 是一个类似于 GitHub 的功能强大的代码托管平台,使用 Go 语言开发,只需要一个可执行程序文件即可部署,非常简单易用,且功能丰富。具有版本管理、组织管理、Issues讨论、版本发布等功能。内置维基百科和 SSH 子系统。
2. Gitea 安装
下载 Gitea 后直接运行,浏览器输入127.0.0.1:3000 来进行初始配置(需要先安装好数据库软件)。
3. 配置文件
Gitea 的配置文件为 <Gitea可执行程序路径>/custom/conf 目录下的 app.ini 文件。全部配置均可通过修改该文件来实现。修改完配置后,需要重启 Gitea 服务才能生效。
3.1. 发送测试邮件
以管理员账户登录 Gitea,点击右上角菜单进入“管理后台->应用配置”,下拉到“Mailer 配置->发送测试邮件”,输入接收邮箱地址后点击“发送”按钮即可发送测试邮件。
4. 创建/删除 Gitea 服务
4.1. Windows 服务
使用 SC 命令创建 Gitea 服务,并自动运行:
sc create Gitea start= auto binPath= ""<绝对路径>\gitea.exe" web --config "<绝对路径>\custom\conf\app.ini""
创建完服务后进入 Windows Services 找到 Gitea 并且点击运行。
如不再需要,同样使用 SC 命令删除服务,删除服务前需先停止该服务。
sc delete Gitea
4.2. Linux 服务
systemd 服务的开启过程如下,首先创建 gitea.service 文件:
sudo vim /etc/systemd/system/gitea.service
并参照以下模板填充该文件:
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=redis.service[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
#Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE[Install]
WantedBy=multi-user.target
使用如下命令使能并启动 gitea 服务:
sudo systemctl enable gitea
sudo systemctl start gitea
使用如下命令停止 gitea 服务:
sudo systemctl stop gitea
5. 使用 HTTPS 服务
可以使用 Gitea 内嵌的 HTTPS 服务。内嵌 HTTPS 服务使用自认证证书,生成 10 年期限自认证证书命令如下:
gitea cert --host <HOST0,HOST1,...> --ca --duration 87600h
参数说明:
| Argument | Description |
|---|---|
| –host <value> | Comma seperated hostnames and ips which this certificate is valid for. Wildcards are supported. Required. |
| –duration <value> | Duration which the certificate is valid for. Optional. (default: 8760h0m0s) |
| –ca | If provided, this cert generates it’s own certificate authority. Optional. |
编辑 app.ini 文件如下:
[server]
PROTOCOL=https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = <绝对路径>/custom/https/cert.pem
KEY_FILE = <绝对路径>/custom/https/key.pem
注意,上面 CERT_FILE 和 KEY_FILE 必须使用绝对路径,否则无法正常启动 Gitea 服务。之后重启 Gitea 服务。通过浏览器访问 HTTPS 版本的 Gitea 服务,需要添加浏览器例外才能正常访问。另外客户端使用 git clone 需要关闭 git 的 ssl 认证功能。命令如下:
git config --global http.sslVerify false
另外 Gitea 还可以使用 Let’s Encrypt 提供的证书,这是 CA 认证证书,有效期为 90 天。Let’s Encrypt 的使用方法见官方手册。
6. 使用内置 SSH
Gitea 有内置 SSH 服务,支持 SSH 格式的 git clone,使能方式为修改 app.ini 文件中的下列内容:
[server]
SSH_DOMAIN = 127.0.0.1
DISABLE_SSH = false
START_SSH_SERVER = true
SSH_PORT = 3022
SSH_LISTEN_PORT = 3022
7. 邮箱配置
Gitea 可以通过预先配置好的电子邮件发送服务器发送服务邮件如:通知、消息、注册确认等信息。邮件发送服务器为 smtp 服务器,需要同时提供服务器端口,用户名和密码。
; Mail server
; Gmail: smtp.gmail.com:587
; QQ: smtp.qq.com:465
; 163: smtp.163.com:465
; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
[mailer]
ENABLED = true
; PROTOCOL: empty: One of "smtp", "smtps", "smtp+starttls", "smtp+unix", "sendmail", "dummy".
PROTOCOL = smtp
SMTP_ADDR = smtp.sina.com
; SMTP_PORT: empty: Mail server port. If no protocol is specified, it will be inferred by this setting. Common ports are
; * 25: insecure SMTP
; * 465: SMTP Secure
; * 587: StartTLS; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format
FROM = user_name@sina.com
; Mailer user name and password
USER = user_name@sina.com
; Use PASSWD = `your password` for quoting if you use special characters in the password. 该字段也可用于指定“设备授权码”
PASSWD = user_password
启用邮件系统后,可以开启邮件通知功能。该功能在有提醒需要发送时,Gitea 会通过以上配置的邮件系统向用户发送邮件通知,如有 Issue 分派给了某个用户,则该用户会收到邮件提醒。
[service]
; Mail notification
ENABLE_NOTIFY_MAIL = true
8. 允许通过邮箱进行外部注册
开启邮件系统后,可以开启邮件注册功能。用户可以自己注册账号,并收到注册确认邮件。通过点击注册确认邮件中的连接,激活新账号。
[service]
; Whether a new user needs to confirm their email when registering.
REGISTER_EMAIL_CONFIRM = true
; Disallow registration, only allow admins to create accounts.
DISABLE_REGISTRATION = false
; Allow registration only using third part services, it works only when DISABLE_REGISTRATION is false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
; Enable captcha validation for registration
ENABLE_CAPTCHA = true
其中,校验码为可选功能,建议开启。
9. 配置文件示例
APP_NAME = Gitea: Git with a cup of tea
RUN_USER = Administrator
RUN_MODE = prod[security]
INTERNAL_TOKEN = <TOKEN>
INSTALL_LOCK = true
SECRET_KEY = <KEY>[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD =
SSL_MODE = disable
PATH = <绝对路径>/data/gitea.db[repository]
ROOT = <绝对路径>/gitea-repositories
DISABLE_HTTP_GIT = true[repository.upload]
ENABLED = true
FILE_MAX_SIZE = 1024
MAX_FILES = 1000[server]
PROTOCOL = https
SSH_DOMAIN = 127.0.0.1
DOMAIN = 127.0.0.1
HTTP_PORT = 3000
ROOT_URL = %(PROTOCOL)s://127.0.0.1:3000/
CERT_FILE = <绝对路径>/Path/cert.pem
KEY_FILE = <绝对路径>/Path/key.pem
DISABLE_SSH = false
START_SSH_SERVER = true
SSH_PORT = 3022
SSH_LISTEN_PORT = 3022
LFS_START_SERVER = true
LFS_CONTENT_PATH = <绝对路径>/Path/data/lfs
LFS_JWT_SECRET = <SECRET>
OFFLINE_MODE = false[mailer]
ENABLED = true
HOST = smtp.sina.com:465
FROM = user_name@sina.com
USER = user_name@sina.com
PASSWD = user_password[service]
REGISTER_EMAIL_CONFIRM = true
ENABLE_NOTIFY_MAIL = true
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = true
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.example.org[picture]
DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = false[openid]
ENABLE_OPENID_SIGNIN = false
ENABLE_OPENID_SIGNUP = false[session]
PROVIDER = file[attachment]
ENABLED = true
PATH = <绝对路径>/Path/data/attachments
ALLOWED_TYPES = image/jpeg|image/png|application/zip|application/gzip
MAX_SIZE = 4
MAX_FILES = 5[log]
MODE = file
LEVEL = Info
ROOT_PATH = <绝对路径>/Path/log[other]
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false
10. 外部参考资料
- 官方网站
- 下载连接
相关文章:
Gitea 安装和配置
Gitea 安装和配置: http://coffeelatte.vip.cpolar.top/post/software/applications/gitea/gitea_安装和配置/ 文章目录 Gitea 安装和配置: <http://coffeelatte.vip.cpolar.top/post/software/applications/gitea/gitea_%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/>…...
CEF JS与c++能够交互的原理 以及 JS 调用C++的流程分析
相关章节:CEF 之 Render进程 与 Browser进程通信 目录 一、JS与c++能够交互的原理 二、JS调用C++ 流程梳理...
关于比特币的AI对话
【ChatGPT】 比特币源码开源吗? 是的,比特币的源码是开源的。比特币项目是在MIT许可证下发布的,这意味着任何人都可以查看、修改、贡献和分发代码。比特币的源码托管在GitHub上,可以通过下面的链接进行访问: https://g…...
Linux查看磁盘命令df-h详解
df -h 是一个常用的 Linux 命令,用于查看文件系统的磁盘使用情况并以易于阅读的方式显示。以下是 df -h 命令的详细解释: -h:以人类可读的格式显示磁盘空间大小。例如,使用 GB、MB、KB 等单位代替字节。 执行 df -h 命令后&…...
nginx-排查一次大文件无法正常下载问题
目录 问题现象&报错信息 问题现象以及分析 nginx报错信息 问题解决 方法1:配置proxy_max_temp_file_size 方法2:关闭proxy_buffering 参考文档 问题现象&报错信息 问题现象以及分析 文件正常从后端服务器直接下载时,一切正常…...
基于yolov5的草莓成熟度检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】
功能演示: 基于yolov5的草莓成熟度检测系统,系统既能够实现图像检测,也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili (一)简介 基于yolov5的草莓成熟度系统是在pytorch框架下实现的,这是一个完整的项目…...
Kubesphere 保姆级分析
应用场景 KubeSphere 适用于多种场景,为企业提供容器化的环境,借助完善的管理和运维功能,让企业在数字化转型过程中从容应对各种挑战和各类业务场景,如多云多集群管理、敏捷软件开发、自动化运维、微服务治理、流量管理以及 DevO…...
力扣hot100:240.搜索二维矩阵II(脑子)
吉大21级算法分析与设计的一道大题,由于每一行都是排好序的直接逐行二分 可以达到:O(mlogn)。但是这里追求更广的思路可以使用其他方法。 矩阵四分: 在矩阵中用中心点比较,如果target大于中心点的值,则由于升序排列&am…...
Apache Hive(三)
一、Apache Hive 1、ETL数据清洗 数据问题 问题1:当前数据中,有一些数据的字段为空,不是合法数据 解决:where 过滤 问题2:需求中,需要统计每天、每个小时的消息量,但是数据中没有天和小时字段…...
ORM(对象关系映射)的概念,并说明在Python中如何使用
ORM(对象关系映射)的概念,并说明在Python中如何使用 ORM(对象关系映射)是一种编程技术,它实现了将关系型数据库中的数据映射到程序中的对象模型,使得开发者能够使用面向对象的方式来操作数据…...
Br 算法
基于google的brotli开源,实现Br算法。 #include <brotli/encode.h> #include <brotli/decode.h>namespace br {/*compress unsigned char* content,if ok return non empty unsigned char * */std::string compress_string(const std::string& c…...
GPT实战系列-一种构建LangChain自定义Tool工具的简单方法
GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 LLM大模型: GPT实战系列-探究GPT等大模型的文本生成 GPT实战系列-Baichuan2等大模型的计算精度与量化 GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF …...
【Docker】Memcached 容器化部署
Memcached环境标准软件基于Bitnami Memcached 构建。当前版本为1.6.24 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platf…...
Langchain-Chatchat本地搭建ChatGLM3模型和提取PDF内容
文章目录 1、软件要求2、安装CUDA2.1、安装gcc2.2、安装CUDA 3、安装Anaconda33.1、下载Anaconda33.2、创建python虚拟环境 4、部署系统4.1、下载源码4.2、安装依赖4.3、下载模型4.4、初始化配置和知识库4.4.1、初始化配置4.4.2、初始化知识库 4.5、运行4.6、运行4.6.1、启动4.…...
案例分析篇03:一篇文章搞定软考设计模式考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)
专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…...
套接字的地址结构,IP地址转换函数,网络编程的接口
目录 一、套接字的地址结构 1.1 通用socket地址结构 1.2 专用socket地址结构 1.2.1 tcp协议族 1.2.3 IP协议族 二、IP地址转换函数 三、网络编程接口 3.1 socket() 3.2 bind() 3.3 listen() 3.4 accept() 3.5 connect() 3.6 close() 3.7 recv()、send() 3.8 recv…...
Java回顾总结--RandomAccessFile和NIO
目录 一、RandomAccessFile1.1 为什么要有RandomAccessFile?1.2 常用方法简介1.3 RandomAccessFile 特点和优势1.3.1 既可以读也可以写1.3.2 可以指定位置读写 1.4 示例 二、NIONIO使用示例 一、RandomAccessFile 1.1 为什么要有RandomAccessFile? Ran…...
2024年3月第15届蓝桥杯青少组STEMA考试C++中高级真题试卷
第15届蓝桥杯青少组STEMA考试C中高级真题试卷(2024年3月) 题目总数:11 总分数:400 选择题 第 1 题 单选题 (110010)2(c3)16的结果是( )。 A. (240)10 B. (11110101)2 C. (366)8 D. (f6)16 第 2 题 单选题 …...
Hyperf AOP 和 注解
注解 (hyperf.wiki) AOP 面向切面编程 (hyperf.wiki) 切面 定义切面(Aspect) 根据官方教程定义一个切面。可以指定类、方法、参数和注解上生效。 <?php namespace App\Aspect;use App\Service\SomeClass; use App\Annotation\SomeAnnotation; use Hyperf\Di\Annotatio…...
【C++】string类(介绍、常用接口)
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 string类的常用接口说明 string类对象的常见构造 编辑 string字符串的遍历(迭代器…...
git restore --source 提交id 和 git reset --hard 提交id 有什么区别
这两个命令长得像、都能“回到过去”,但核心逻辑、操作范围、安全性天差地别,一句话先点破: ✅ git restore --source 提交id:文件级操作,只恢复文件内容,不删提交历史、不改动分支,安全无风险 …...
ITG3200陀螺仪驱动开发:寄存器配置、多量程切换与FreeRTOS集成
1. ITG3200陀螺仪驱动库技术解析与工程实践ITG3200是InvenSense公司于2009年前后推出的单芯片三轴数字陀螺仪传感器,采用MEMS工艺制造,集成16位ADC、数字温度传感器、可编程低通滤波器及IC/SPI双接口。尽管该器件已停产多年,但在工业控制、无…...
什么是引线键合(WireBonding)
引线键合(WireBonding)引线键合是一种使用细金属线,利用热、压力、超声波能量为使金属引线与基板焊盘紧密焊合,实现芯片与基板间的电气互连和芯片间的信息互通。在理想控制条件下,引线和基板间会发生电子共享或原子的相…...
告别格式烦恼:如何用Chrome扩展一键转换网页图片格式?
告别格式烦恼:如何用Chrome扩展一键转换网页图片格式? 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirror…...
为什么你的file_get_contents总崩溃?揭秘PHP 8.3+大文件I/O底层机制与3种替代架构
第一章:为什么你的file_get_contents总崩溃?揭秘PHP 8.3大文件I/O底层机制与3种替代架构当处理超过100MB的文件时,file_get_contents() 在 PHP 8.3 中频繁触发内存溢出(Fatal error: Allowed memory size exhausted)&a…...
单片机时序图解析与调试实战指南
1. 时序图基础认知第一次接触单片机编程时,看到芯片手册里那些密密麻麻的时序图,我的反应和大多数新手一样——完全看不懂那些高低起伏的波形到底在表达什么。直到有一次调试I2C通信失败,花了整整三天时间才意识到是时序不匹配导致的问题&…...
Flutter 动画控制器:打造流畅的动画体验
Flutter 动画控制器:打造流畅的动画体验掌握 Flutter 动画控制器的高级技巧,创造流畅而优雅的动画效果。一、动画控制器概述 作为一名把代码当散文写的 UI 匠人,我对 Flutter 动画控制器有着独特的见解。动画控制器是 Flutter 动画系统的核心…...
3大技术突破重新定义多模态交互:AudioCLIP的跨模态语义对齐解决方案
3大技术突破重新定义多模态交互:AudioCLIP的跨模态语义对齐解决方案 【免费下载链接】AudioCLIP Source code for models described in the paper "AudioCLIP: Extending CLIP to Image, Text and Audio" (https://arxiv.org/abs/2106.13043) 项目地址:…...
革命性Java包管理神器JitPack.io:10分钟快速上手指南
革命性Java包管理神器JitPack.io:10分钟快速上手指南 【免费下载链接】jitpack.io Documentation and issues of https://jitpack.io 项目地址: https://gitcode.com/gh_mirrors/ji/jitpack.io JitPack.io是一款革命性的Java包管理工具,它彻底改变…...
基于 InHand ER815 ER2000 的企业分支 SD-WAN 组网方案实践
一、项目背景随着连锁门店、企业分支数量不断增加,传统专线或宽带方案逐渐暴露出以下问题:网络成本高(专线费用昂贵)部署周期长(跨区域开通困难)运维复杂(缺乏统一管理能力)与此同时…...
