学习笔记-Gitea - 软件环境部署
nanshan 2025-01-18 22:51 10 浏览 0 评论
前言
好吧,我承认我这篇文档是把简单问题复杂化,其实一行 Docker 运行命令就能解决问题
不过,为了学习,尽量详尽的分解步骤,搞清楚每一个步骤,是很重要的
本文设计了多个知识点
更新 官方源 没有的 软件
创建 用户
为文件目录及子目录 赋予权限
查看 软件 运行日志
为 软件 创建 系统服务文件
Docker Compose 脚本编写
配置文件编写
前期准备
# 官方网站
https://about.gitea.cn/
# 官方网站 帮助文档
https://docs.gitea.cn/installation/install-from-binary
# 官方网址 Gitea 下载页面
https://dl.gitea.com/gitea/
# 下载 新版 Gitea
https://dl.gitea.com/gitea/1.21/gitea-1.21-linux-amd64
环境准备
安装Wget
# 如使用 Shell 环境直接下载 Gitea 二进制文件则需要安装 Wget,如用其他方法下载则不需要
# 安装 Wget
sudo yum install -y wget
安装新版 Git
# 之前版本的 Gitea 需要2.0以上版本的Git才能正常运行,因此在CentOS7.9.2207环境下, 需要安装更新版本的Git
# 该问题在最新版貌似改过来了,不过升级总没有坏处,所以先升级了
# 配置 IUS 源
# 此处,可以将 IUS 源换成清华大学的镜像源
sudo yum install -y https://mirrors.tuna.tsinghua.edu.cn/ius/ius-release-el7.rpm
or
sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
# 查看 IUS 源 中的 Git版本
sudo yum search git|grep -E "^git2"
# 如果反应太慢也可以直接登录网站查看
https://mirrors.tuna.tsinghua.edu.cn/ius/7/x86_64/packages/g/
or
https://repo.ius.io/7/x86_64/packages/g/
# 安装 Git 2.36 版
sudo yum install -y git236
# 查询 当前 git 版本
git version
# 此处,Git 进作为服务器的一个功能使用,所以不需要做初始化设置
创建 gitea 用户
# 目前版本的 Gitea 不允许在 root 用户下运行,因此需要单独创建一个 gitea 可以运行的用户账户
# 创建一个名为 gitea 的系统用户、并为其创建家目录、指定Shell、并添加用户备注
sudo useradd \
-r \
-m \
-s /bin/bash \
-c 'Gitea User' \
gitea
创建 Gitea 运行及数据 目录
# 创建 Gitea 运行及数据 目录
mkdir -p /data/gitea/data
# 进入 Gitea 运行及数据 目录
cd /data/gitea
# 赋予 /data/gitea/ 及其子目录 读写进入权限
sudo chmod -R ugo+rwx /data/gitea
基本安装
使用二进制包部署
下载 Gitea 二进制安装包
# 下载 最新版本 Gitea 二进制安装包,并改名为gitea
wget -O gitea https://dl.gitea.com/gitea/1.21/gitea-1.21-linux-amd64
# 赋予 gitea 二进制文件 运行权限
sudo chmod +x gitea
# 运行 gitea (一定会报错)
./gitea web
# 验证 Gitea 运行 (查看运行日志)
nohup ./gitea web > gitea.log 2>&1 &
创建 Gitea 系统服务运行文件
# 使用命令 直接创建 Gitea 系统服务运行文件
sudo cat <<EOF > /etc/systemd/system/gitea.service
#!/bin/bash
[Unit]
Description=gitea
[Service]
User=gitea
ExecStart=/data/gitea/gitea web
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
# 重新加载服务配置文件
sudo systemctl daemon-reload
# 启动 Gitea 服务
sudo systemctl start gitea.service
# 设置 Gitea 服务 为开机自启动
sudo systemctl enable gitea.service
# 检查 Gitea 服务 运行状态
sudo systemctl status gitea.service
# 查看Gitea 服务 进程运行信息
ps -ef | grep gitea
防火墙放行 Gitea 服务
# 防火墙放行 Gitea 网页 服务
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
# 防火墙放行 Gitea SSH 服务
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
# 生效 防火墙策略
firewall-cmd --reload
使用 Docker Compose 方式部署 (SQLite版)
# 使用命令 直接创建 Gitea Docker Compose 脚本文件
sudo cat <<EOF > docker-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.21
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- /data/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2201:22"
EOF
# 运行 Docker Compose 脚本
sudo docker compose up -d
sudo docker-compose up -d
# 查看 容器 运行情况
sudo docker compose logs
sudo docker-compose logs
# 终止 当前 容器
sudo docker compose down
sudo docker-compose down
使用 Docker Compose 方式部署 (MySQL版)
# 创建 MySQL 运行及数据 目录
mkdir -p /data/mysql
# 使用命令 直接创建 Gitea Docker Compose 脚本文件
sudo cat <<EOF > docker-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.21
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
+ - GITEA__database__DB_TYPE=mysql
+ - GITEA__database__HOST=db:3306
+ - GITEA__database__NAME=gitea
+ - GITEA__database__USER=gitea
+ - GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- /data/gitea:/data/
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2201:22"
depends_on:
- db
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- /data/mysql:/var/lib/mysql
EOF
# 运行 Docker Compose 脚本
sudo docker compose up -d
sudo docker-compose up -d
# 查看 容器 运行情况
sudo docker compose logs
sudo docker-compose logs
# 终止 当前 容器
sudo docker compose down
sudo docker-compose down
Gitea 初始化设置
网页初始化
# 数据库类型:SQLite3
# 数据库文件路径:{默认}
# 站点名称:{根据需求修改}
# 仓库根目录:{默认}
# LFS根目录:{默认}
# 以用户名运行:{默认}
# 服务器域名:{根据需求修改}
# SSH服务端口:{默认} (就算用Docker 改为别的端口,内部也是默认的22)
# HTTP 服务端口:{默认} (可以修改,如使用Docker 改为别的端口,则需要修改Dokcer 脚本,并重新运行 Docker)
# 基础 URL: {默认}
# 日志路径:{默认}
初次登录 Gitea 站点
# Gitea 站点 URL
http://Server_IP3000
创建首个账号
# 由于初始化配置时没有配置管理员,因此第一个用户会自动变成管理员
用户登录 Gitea
修改 配置文件
# Gitea 配置文件路径
/data/gitea/custom/conf/app.ini
# Gitea 配置文件 官方教程
https://docs.gitea.cn/administration/config-cheat-sheet
# 修改完 配置文件后,需要重启 Gitea
# 重新启动 Gitea 服务
sudo systemctl restart gitea.service
Gitea 完整 配置文件内容
; Gitea 站点名称
APP_NAME = FourLeaf Git Server
; Gitea 运行用户
RUN_USER = gitea
; Gitea 运行目录
WORK_PATH = /data/gitea
RUN_MODE = prod
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD =
SCHEMA =
SSL_MODE = disable
PATH = /data/gitea/data/gitea.db
LOG_SQL = false
[repository]
ROOT = /data/gitea/data/gitea-repositories
[server]
SSH_DOMAIN = 172.16.28.125
DOMAIN = 172.16.28.125
HTTP_PORT = 3000
ROOT_URL = http://172.16.28.125:3000/
APP_DATA_PATH = /data/gitea/data
DISABLE_SSH = false
SSH_PORT = 22
; 启用 git-lfs 支持。true 或 false,默认为 false
LFS_START_SERVER = true
LFS_JWT_SECRET = zBwh1huixV55w0FpHA7oLMlpd_Y9B-r2aaMfPkGeFrk
OFFLINE_MODE = false
[lfs]
; 存放 LFS 文件的路径,默认为 data/lfs
PATH = /data/gitea/data/lfs
[mailer]
; Gitea 使用 sendmail 作为邮件传输代理
; 开启或关闭 邮件功能 true / false
ENABLED = false
; FROM = {电子邮件地址}
; MAILER_TYPE = sendmail
; SENDMAIL_PATH = /usr/sbin/sendmail
; 大多数 "sendmail" 程序都接受选项,使用 "--" 将防止电子邮件地址被解释为选项
; SENDMAIL_ARGS = "--"
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true
[cron.update_checker]
ENABLED = false
[session]
PROVIDER = file
[log]
MODE = console
LEVEL = info
ROOT_PATH = /data/gitea/log
[repository.pull-request]
DEFAULT_MERGE_STYLE = merge
[repository.signing]
DEFAULT_TRUST_MODEL = committer
[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3MDA2MTg5NjB9.YKxX1kUW5N_yjFOspKuNe-qWbH1x4zdAyJo2M4vc1oM
PASSWORD_HASH_ALGO = pbkdf2
[oauth2]
JWT_SECRET = VeHg4gCAvWYE7Fz7f2vWsVzwtYlC12omCWZQxBxqdig
允许上传文件限制 设置
[attachment]
; 是否允许用户上传附件
ENABLED = true
; 允许上传所有文件类型
ALLOWED_TYPES = */*
; 附件的最大限制(MB)
MAX_SIZE = 10240
; 一次最多上传的附件数量
MAX_FILES = 5
; 可选配置
; 附件存储类型,local 将存储到本地文件夹, minio 将存储到 s3 兼容的对象存储服务中
STORAGE_TYPE = local
; 附件存储路径,仅当 STORAGE_TYPE 为 local 时有效
PATH = data/attachments
; Minio URL,仅当 STORAGE_TYPE 是 minio 时有效。
MINIO_ENDPOINT = localhost:9000:
; Minio accessKeyID,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_ACCESS_KEY_ID = {Minio accessKeyID}
; Minio secretAccessKey,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_SECRET_ACCESS_KEY = {Minio secretAccessKey}
; Minio bucket to store the attachments,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_BUCKET = gitea
; Minio location to create bucket,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_LOCATION = us-east-1:
; Minio base path on the bucket,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_BASE_PATH = attachments/
; Minio enabled ssl,仅当 STORAGE_TYPE 是 minio 时有效
MINIO_USE_SSL = false
# 允许类型列表
ALLOWED_TYPES = .csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip: 允许的文件扩展名(.zip)、mime 类型(text/plain)或通配符类型(image/*、audio/*、video/*)的逗号分隔列表。空值或 */* 允许所有类型
电子邮件 设置
[mailer]
ENABLED = true
FROM = {电子邮件地址}
MAILER_TYPE = smtp
SMTP_ADDR = {SMTP服务器地址}
SMTP_PORT = 587
IS_TLS_ENABLED = true
USER = {电子邮件用户名}
PASSWD = `{电子邮件密码}`
LFS 大文件存储 设置
# LFS 功能 需要 Git 版本大于 2.1.2
[server]
; 启用 git-lfs 支持。true 或 false,默认为 false。
LFS_START_SERVER = true
[lfs]
; 存放 LFS 文件的路径,默认为 data/lfs。
PATH = /home/gitea/data/lfs
HTTPS 设置
[server]
PROTOCOL = https
ROOT_URL = https://{GiteaURL}:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
仓库索引器 设置
[indexer]
; ...
; 将排除供应商文件不包含在索引中
REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = indexers/repos.bleve
; 选项将使索引器跳过所有大于指定值的文件
MAX_FILE_SIZE = 1048576
; 以逗号分隔的列表,用来表示需要索引的文件,为空表示所有文件
REPO_INDEXER_INCLUDE =
; 以逗号分隔的列表,用来表示需要排除的文件,优先级高于“REPO_INDEXER_INCLUDE”
REPO_INDEXER_EXCLUDE = resources/bin/**
相关推荐
- 教你一个解决手机卡顿的方法(10秒解决手机卡顿问题)
-
我们的手机天天刷头条,看视频,用了一阶段时间以后,就时不时的发生卡顿现象。昨天我的手机就发现了这个问题。友友们,你们遇到过这样的问题吗?你们都是怎样解决的?我看了一眼我的粉丝情况,头条君给我分析的很精...
- 手机视频缓存清理,3步彻底清空,告别卡顿
-
在我们使用手机观看视频的过程中,经常会产生大量的缓存垃圾,这些垃圾文件不仅占用了手机的存储空间,还可能导致手机卡顿和运行缓慢。然而,你知道如何彻底清空手机的视频缓存,让手机恢复流畅的使用体验吗?在本文...
- 关手机这个开关,轻松提升流畅度!
-
关闭手机这个开关,跟新买的一样流畅。手机不要再清理垃圾了,只要关闭这个开关,手机就会和新买的差不多,丝滑流畅不卡顿。其实抖音里就隐藏着一个小开关,每天刷过的视频都会保存在手机里,如果一直不清理,手机就...
- 如何清理今日头条和西瓜视频的内存,让手机流畅不卡顿?
-
对于老年人而言,今日头条和西瓜视频能带来丰富的资讯与娱乐。然而,随着使用时间的增加,这些应用会占用大量手机内存,致使手机运行卡顿。那该如何解决呢?接下来,我将用最简单易懂的方式教老年人清理今日头条和西...
- 视频在线如何转换格式?好用不卡顿的三种转换办法
-
转换视频格式目前来说已经是很熟练的操作了,但是还有些用户可能还是不知道,小编今天就特意给大家带来一些小众才知道的转换教程,让新手也能快速的上手去转换视频格式,以后获取到视频就不怕内容丢失了,视频的格式...
- 如何把视频慢放处理?这几个慢放方法记得收藏
-
如何把视频慢放处理?如果你想让视频慢放,可能是因为你想放慢一些精彩的瞬间,或者你想制作一个慢动作视频。在这篇文章中,我们将介绍一些调速方法,这些方法可以有效地调整视频速度,一起来学习一下吧。方法一:使...
- 如何清理看过的视频,释放垃圾,让手机更流畅?
-
现在谁的手机上没几个短视频平台,无聊时就会刷别人的视频。可您知道吗?我们看过的内容都会被自动保存在手机里,而且很耗内存。如果长时间不释放,手机就会出现各种问题,其中最突出的就是反应慢。相信很多老年人的...
- 手机掉帧是怎么回事?刷视频的时候经常掉帧卡顿
-
手机掉帧是指在运行应用或视频时,画面出现卡顿、不流畅的现象,通常由硬件性能不足、软件优化不佳、内存占用过高、网络问题或设备过热等因素引起。尤其是在刷视频时,掉帧问题可能更为明显,以下是具体原因及解决方...
- 拍视频画面卡顿不流畅,原来是相机设置错误 #短视频拍摄
-
拍摄视频时,应该选择哪种快门速度?许多新手朋友可能会认为,快门速度越高,画面就越清晰,实则不然。因为拍摄视频时,需要考虑一个问题,即动态模糊。例如,如果设置为24帧/秒,那么每秒钟会拍摄24张图片。如...
- 手机卡顿最大原因#视频太卡怎么变流畅
-
抖音这几个开关是手机卡顿的最大原因。你是不是也会经常遇到刷视频的时候,打开一个视频之后老半天还在那转着圈圈,总觉得手机没有之前流畅了。这就说明你的手机占用的内存太多了,导致手机卡顿,使用不流畅。使用手...
- 为啥你家的玩游戏和刷视频经常性的会卡,那是你不懂这些小妙招
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:暴走的黄小猪说到网速有不少的值友都有一个共同点,那就是“卡”,那是你根本没体验过啥叫真正的网速啊,全屋零四条网络报表也花不了几个钱你们的方法...
- 电脑看视频卡顿有什么解决方法?(电脑看视频画面卡顿是什么原因)
-
电脑看视频卡顿的原因可能多种多样,包括硬件性能不足、网络问题、软件设置不当等。以下是一些常见的解决方法,帮助你改善视频播放的流畅度:一、硬件方面1.检查硬件性能:如果电脑配置较低,尤其是CPU、内存或...
- 手机Wi-Fi满格但视频卡顿,你需要这样解决
-
累了一天的打工人回家拿出手机准备玩玩游戏,看看电影时,发现网络异常卡顿,但手机又显示Wi-Fi信号满格,当咱们遇到此类问题时,这些动作能让网络恢复正常,方法如下。一、重启路由器和光猫很多家庭在安装好路...
- 视频越刷越卡?原来是路由器开启了这个功能,关闭方法来了
-
应该很多小伙伴都有过类似的经历,就是在家里长时间刷视频或者看剧的时候,网速好像会越来越慢,视频总是要加载。手机本身可能是一部分原因,但路由器也会影响,你知道吗?当我们在刷视频的,路由器会悄悄地开启大量...
- 一招解决视频卡顿的问题,改变发布渠道后,结果香了
-
最近一段时间拍了很多美景视频,编辑发布到头条后,有时一直显示在缓冲,播放不了,有时打开断断续续的,老是卡顿。导致的后果是:要么展现量很低,要么阅读量寥寥无几,这让我非常苦恼。所以再发布作品时,我只好文...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)