安装 gitea

本贴最后更新于 441 天前,其中的信息可能已经天翻地覆

一、二进制安装

1、新建 gitea 文件夹(路径随便选)

mkdir /usr/local/gitea

2、去 https://dl.gitea.io/gitea 下查看最新版本 gitea

① 执行命令
cd /usr/local/gitea
wget -O gitea https://dl.gitea.io/gitea/1.18.3/gitea-1.18.3-linux-amd64 #选择最新版本
chmod +x gitea #给gitea执行权限
② 测试运行(后续正常跑需要配置 service)

注意:这个测试不能由 root 执行,需要新建用户

useradd gitea 新建一个 gitea 用户

chown -R gitea:gitea gitea> 将 gitea 安装包所有者改为 gitea(注意是叫 gitea 的那个包)

su gitea 登录 gitea

./gitea web 执行测试

二、配置 systemd 方式运行

1、创建.service 文件

sudo vim /etc/systemd/system/gitea.service

2、拷贝下面代码

[Unit]
Description=Gitea
After=syslog.target
After=network.target

[Service]
RestartSec=2s
Type=simple
User=gitea
Group=gitea
ExecStart=/usr/local/gitea/gitea web -p 3300 --config /usr/local/gitea/custom/conf/app.ini ###-p为端口号,可以不设置,默认3000,--config设置gitea配置文件地址
Restart=always

[Install]
WantedBy=multi-user.target

3、执行 service 文件,并设为开机启动

sudo systemctl enable gitea
sudo systemctl start gitea

4、访问【http://172.16.2.253:端口号】查看是否安装成功

三、页面配置

注意点:

①gitea 的用户一定要设置 gitea,不可以是 root

② 页面的最下方有设置管理员的配置,如果不设置,默认第一个注册人为管理员

四、nginx 配置

1、首先下载安装 nginx,参考 https://www.yuque.com/zhaoyj/grnr9f/npc46i

2、配置 nginx 反向代理,配置文件如下

server {
    listen 3300; #监听端口,公网访问端口
    server_name 172.16.2.253; #主机地址,可以是ip地址,也可以配域名

    location / {
        proxy_pass http://127.0.0.1:3000; #本机服务所在端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3、退出配置文件,重启 nginx

五、LFS 配置

**注意: **需要先进入 gitea 页面配置,地址就是主机地址 + 之前配的端口,配置好后一些关键配置才会写入 app.ini 配置文件

1、服务器配置

进入 gitea 安装目录,到 custom/conf 下执行

vim app.ini

修改配置文件

[server]
LOCAL_ROOT_URL   = http://localhost:3000/ #gitea运行地址
SSH_DOMAIN       = 124.71.190.15
DOMAIN           = 124.71.190.15
HTTP_PORT        = 3300
ROOT_URL         = http://124.71.190.15:3300/  #gitea外部访问地址,可用nginx代理配置
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true  #开启lfs,正常gitea页面配置完成之后,这个参数就会写入,注意检查一下
LFS_JWT_SECRET   = PNRffovy5XfpfJvtibNaSBgwHSM5UEZJWh8mWkPYV2Y  # LFS 认证密钥(官方解释),秘钥为页面配置lfs开启后自动生成
OFFLINE_MODE     = false

[lfs]
PATH = /usr/local/gitea/data/lfs #可以配置lfs文件存储地址

2、本地新建项目配置(以下所有配置,全部针对单个项目,并非全局配置)(只需创建时配置一次就可以)(LFS 的开启配置保存在.git 文件中

------前言**:所有项目,无论是 Java 项目还是 JS 项目,或者其他什么语言的项目,只需要按照下面 ①②③ 配置,就可以开启 lfs**
① 初始化

第一次使用前需要运行下 git lfs install,只要运行一次,以后都不需要了

配置对应文件 lfs 上传方法

输入 git lfs track *.png,配置 png 格式的文件 lfs 上传,成功之后会生成**.gitattribute**文件,这个文件注意也要上传到 git 仓库。

如果需要配置文件夹,则输入 git lfs track package-name/** 就可以使得根目录下的叫 package-name 下面的所有文件开启 lfs。

配置结束后

配置结束之后,就可以使用正常命令上传文件了,当有配置过后缀的文件上传时,会自动对这个文件开启 lfs 上传,之后正常用 git 命令就可以

六、开启代码查询功能

1、服务器配置

进入 gitea 安装目录,到 custom/conf 下执行

vim app.ini

修改配置文件,增加如下

[indexer]
REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH    = indexers/repos.bleve
UPDATE_BUFFER_LEN    = 20
MAX_FILE_SIZE        = 1048576
REPO_INDEXER_INCLUDE =
REPO_INDEXER_EXCLUDE = 

**REPO_INDEXER_INCLUDE 的参数说明(以 C 语言为例,摘自网络)

REPO_INDEXER_INCLUDE**(默认值:空)是要包含在索引中的逗号分隔的 glob 模式列表。空列表表示“ 包括所有文件 ”。 (默认值:空)是要从索引中****排除 REPO_INDEXER_EXCLUDE的 glob 模式的逗号分隔列表。与此列表匹配的文件将不会被索引。优先于。**REPO_INDEXER_EXCLUDEREPO_INDEXER_INCLUDE

模式匹配的工作原理如下:

  • 要匹配具有.txt 扩展名的所有文件,无论目录是什么,请使用****.txt.**
  • 要仅在存储库的根级别匹配所有具有**.txt 扩展名的文件,请使用**.*.txt
  • 要匹配内部 resources/bin 和下面的所有文件,请使用 resources/bin/**.
  • 要立即匹配 内部的所有文件 resources/bin,请使用 resources/bin/*.
  • 要匹配所有名为 的文件 Makefile**,请使用****Makefile**.**
  • 匹配一个目录没有效果;该模式 resources/bin不会包含/排除该目录中的文件;**resources/bin/****将要。
  • 所有文件和模式都标准化为小写,因此****Makefilemakefile**是MAKEFILE 等效的。

******REPO_INDEXER_EXCLUDE 的作用就是排除上述配置

2、重启服务

sudo systemctl restart gitea

七、GOGS 代码迁移

https://docs.gitea.io/zh-cn/upgrade-from-gogs/

  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 1 关注
1 操作
tenxll 在 2023-02-04 12:50:55 更新了该帖

相关帖子

1 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • tenxll
    作者

    哈罗