惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
O
OpenAI News
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
罗磊的独立博客
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
雷峰网
雷峰网
V
Visual Studio Blog
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
博客园 - 【当耐特】
G
Google Developers Blog
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
Martin Fowler
Martin Fowler
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
AI
AI
Google Online Security Blog
Google Online Security Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
Webroot Blog
Webroot Blog
PCI Perspectives
PCI Perspectives
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org

一个博客站点,记录各种事情

配置NAS,安装OMV tiddlywiki服务器版本安装与配置 在xslt中,xpath配置命名空间 尝试使用cgroups限制程序资源占用 apparmor强制访问控制系统配置 为emacs配置特殊快捷键,方便移动端使用 gpg使用介绍与配置说明 aur用户软件仓库和PKGBUILD脚本的一些记录 关于ssh密钥登陆遇到的一些问题,以及其解决方法 hugo配置commento评论服务。 生日快乐!对近期的回顾以及对未来的畅想 记一次tt-rss搭建 阿莱桑公寓的一些补充信息? 阿莱桑公寓-顺序整理 再见,2019,你好,2020——元旦快乐 irc服务端安装,unrealircd安装和配置,和配置说明 hello world,第一篇博客,原因和目标。
搭建、配置gitea代码自托管平台
crimsonote · 2020-07-11 · via 一个博客站点,记录各种事情

文章目录

开始

git自托管平台,可以在自己在服务器上存留一个副本,以保存仓库,自定义能力强,同时还可以在一定程度上规避可能存在的风险?

比较知名的git自托管程序有gitlab(CE/EE)gogs以及gitea

虽然gitlab的功能很多,但是其运行所占用的的资源占很高,正如gitlab的安装介绍页所述: 4GB RAM is the required minimum memory size.,gitlab的运行需要不少4G内存,这是很难达到的配置,成本太高了。所以,gitlab排除

然后,因为gogs并不支持org文件,所以,gogs排除。

于是,最终决定,选择搭建gitea。

首先,创建一个用于运行gitea的用户。

执行 sudo useradd -m git -s /bin/bash 命令创建一个名为“git”的用户,这个用户将在后续用于配置中用到。

切换到刚刚下载gitea的用户,并根据文档下载可执行二进制文件

1
2
3
4
5
sudo su -l git
mkdir gitea;cd gitea
wget https://dl.gitea.io/gitea/1.12.1/gitea-1.12.1-linux-amd64
mv gitea-1.12.1-linux-amd64 gitea;chmod +x gitea
#此处的范例链接是1.12.1版linux操作系统arm架构的二进制文件,如并非此条件,请自行更改为其他文件

配置postgreSQL数据库

上一篇博客有简单说明postgreSQL的安装,这里不再累述,此处仅仅记录一下数据库创建。

1
2
createdb gitea -U [数据库用户名] -h [数据库所在服务器(本机则localhost)] -p [端口(默认为5432)] #创建一个名为“gitea”的数据库
pypl -d gitea -U [user] -h [host] -p [port] #测试创建是否成功

通过安装页面配置gitea

在该步骤完成后,执行 ./gitea web 这默认将会在3000端口打开一个web服务(可以通过命令行输出的内容查看具体端口)。

使用浏览器访问http(s)://[服务器IP/指向该ip的域名]:[端口],如 http://localhost:3000

一切正常的话,将会进入到gitea的web安装页面(如上图)。将需要在该面板进行初始配置

这里对gitea安装设置页的一些重要选项做简要说明

数据库设置

gitea支持MySQL、PostgreSQL、MSSQL、SQLite3等数据库。

  • 数据库类型 : 设置gitea使用的数据库类型。可选MySQL、PostgreSQL、MSSQL、SQLite3中的一种,此处选择上面已经配置完成的postgreSQL
  • 数据库主机 : 这里填写数据库的链接路径,如 127.0.0.1:5432 。SQLite3无此设置
  • 用户名 : 访问数据库的用户名。SQLite3无此设置
  • 数据库用户密码 : 上述数据库用户对应的密码。SQLite3无此设置
  • 数据库名称 : 数据库服务配置的数据库名称。SQLite3无此设置
  • Schema : 留空则数据库中默认值为(“public”)。仅PostgreSQL有此设置
  • ssl : 链接数据库时是否使用ssl(默认不使用)。仅PostgreSQL有此设置
  • 字符集 : 设置数据库字符集。仅MySQL有此设置
  • 数据库文件路径 : 仅SQLite3有此设置。这也是SQLite3的唯一设置,设置SQLite3数据库的文件路径。

一般设置

这里的设置选项能够配置站点的一些描述信息和一些常规配置。

  • 站点名称 : 站点的名称,比如说公司名?
  • 仓库根目录 : 用于保存git存储库数据的路径
  • LFS根目录 : 配置git-LFS的文件的保存路径,留空则禁用
  • 以用户名运行 : 以什么用户运行gitea,填写用户名
  • SSH 服务域名 : 用于 SSH 克隆的域名或主机地址。
  • SSH服务端口 : ssh服务的端口号,留空则禁用,如果使用的是gitea提供的内置ssh服务器的话。
  • HTTP 服务端口 : Gitea web服务器将监控的端口号。默认3000
  • Gitea 基本 URL : 用于 HTTP (S) 克隆和电子邮件通知的基本地址
  • 日志路径 : 设置gitea运行时日志信息保存的路径

可选-电子邮箱设置

这一设置是可选的,需要有一个支持SMTP的邮箱服务器,以及一个对应的邮箱帐号,此处以yandex为例。

  • SMTP主机 : 邮箱发件服务器主机(包括域名),如果使用yandex的邮箱账户,这里则填写 smtp.yandex.com:587
  • 电子邮件发件人 : 设置邮件的署名
  • SMTP用户名 : 设置登陆SMTP服务的用户名,填写要设置的邮箱
  • SMTP密码 : 上述账户对应的密码,需要注意是,密码是明文保存在配置文件之中,因此请小心配置文件泄露。
  • 需要发电子邮件确认注册 : 新用户注册时是否需要通过电子邮件验证
  • 启用邮件通知提醒 : 是否启用邮件通知提醒

可选-服务器和第三方服务设置

这一设置也是可选的,不过相对较杂,此处只选较重要的做简要说明。

  • 启用本地模式 : 禁用第三方CDN并在本地服务所有资源。如果访问gitea服务器的计算机不希望从互联网获取资源文件,则勾选。
  • 禁止用户自助注册 : 启用后将仅允许管理员注册
  • 启用验证码 : 要求在用户注册时输入预验证码,gitea-1.12.1存在bug,如果配置反向代理和子路径则无法正常工作。
  • 启用页面访问限制 : 只有登录用户的才有页面访问权限。游客只会看到 “登录” 和注册页面

需要注意的是,gitea的验证码的路径存在bug,其不使用ROOT_URL配置的路径,如果设置反向代理和ROOT_URL设置了子路径,则注册时的验证码将无法正常显示。

可选-管理员帐号设置

创建管理员帐户同样是可选的。第一个注册用户将自动成为管理员。不过建议在安装页面还是注册一个管理员账户比较好。

通过nginx反向代理gitea,配置子路径

在nginx配置文件中加上以下代码

1
2
3
4
5
6
7
8
server {
    listen 80;
    server_name [域名];

    location /[子路径名]/ { # Note: Trailing slash
	proxy_pass http://localhost:[端口]/; # Note: Trailing slash
    }
}

并在编辑gitea的配置文件,在其中加上

1
[server] ROOT_URL = http://[域名]/子路径名/

最后,重启gitea。

需要注意的是,截止至gitea-1.12.1版本,注册验证码存在bug,所以如果想要允许外部注册并且希望为gitea配置子路径的话,请确保ENABLE_CAPTCHA的值为false。保持验证码关闭

一些后续配置

此处记载着一些后续配置。

修改配置文件

二进制安装的配置文件默认在 [二进制可执行文件所在文件夹]/custom/conf/app.ini

比如,下载gitea的可执行二进制文件保存在 /home/git/gitea/gitea ,那么,其配置文件就保存在 /home/git/gtea//custom/conf/app.ini ,如要编辑配置文件,则可以使用文本编辑器编辑配置文件。并重启gitea。

禁用密码复杂度检验

gitea默认配置会启用密码复杂度校验。要求密码复杂度达到一定强度,否则,不允许注册/更新密码。(如下图)

而默认的复杂度要求过高。要求同时存在大写字母、小写字母、数字、部分符号。非常不方便注册账户和记忆密码。所以决定关闭这一验证。

gitea中控制密码复杂度的配置是 PASSWORD_COMPLEXITY ,其有5个可选的值,这5个值分别为

  • lower : 密码中必须含有小写字母
  • upper : 密码中必须含有大写字母
  • digit : 密码中必须含有数字
  • spec :密码中必须含有符号
  • off : 关闭密码校验

如果需要启用多个密码复杂度强制验证要求,则每个值之间使用’,‘逗号隔开。如 PASSWORD_COMPLEXITY = lower,upper,digit,spec 将会同时启用小写检查、大写检查、数字检查、符号检查。

要禁用此密码复杂度校验,则需在配置文件内加入 PASSWORD_COMPLEXITY = off 即可关闭此复杂度校验。

强制使用ssh://链接格式

因为使用ssh是非默认端口,但是,scp样式的 user@host:path/ 不支持设置ssh端口,所以需要使用 ssh://user@host:port/path/ 这种ssh链接格式来克隆

在配置文件中,可以将 USE_COMPAT_SSH_URI 的值设置为true,可以强制gitea使用ssh://样式来显示克隆url

1
USE_COMPAT_SSH_URI = true

就像这样

一些资料

此处记载着一些配置过程中查找到的部分资料。供由参考

gitea官方文档 从二进制安装
https://docs.gitea.io/zh-cn/install-from-binary/
gitea官方下载页面(截止至2020年7月11日)
https://dl.gitea.io/gitea
gitea官方文档 反向代理
https://docs.gitea.io/zh-cn/reverse-proxies/
gitea官方文档 自定义gitea配置
https://docs.gitea.io/zh-cn/customizing-gitea/
gitea官方文档 配置说明
https://docs.gitea.io/zh-cn/config-cheat-sheet/
gitea配置文件模板[en]
https://github.com/go-gitea/gitea/blob/master/custom/conf/app.example.ini

文章作者 crimsonote

上次更新 2020-07-11