1. Gitea简介与版本说明
Gitea是一个轻量级的Git服务,使用Go语言编写,具有安装简单、资源占用少、功能完整等特点。它是Gogs的社区分支,适合中小团队使用。更多学习教程www.fgedu.net.cn
Gitea最新版本:
Gitea 1.22.6(最新稳定版)- 发布于2025年,提供增强的安全性和新特性
Gitea 1.22.3 – 长期支持版本,适合生产环境
Gitea 1.22.0 – 旧版稳定版本,维护支持中
Gitea 1.21.11 – 传统稳定版本
Gitea主要特性:
轻量级:单个二进制文件,资源占用少
跨平台:支持Linux、Windows、macOS
功能完整:Issue管理、Pull Request、Wiki、代码审查
多种数据库:支持SQLite、MySQL、PostgreSQL
集成CI/CD:支持Gitea Actions
2. Gitea下载方式
Gitea提供二进制文件、Docker镜像和包管理器三种下载方式。学习交流加群风哥微信: itpux-com
方式一:下载二进制文件(推荐)
# cd /fgedudb/gitea
# wget https://dl.gitea.com/gitea/1.22.6/gitea-1.22.6-linux-amd64
# 下载输出案例如下:
–2026-04-04 19:00:15– https://dl.gitea.com/gitea/1.22.6/gitea-1.22.6-linux-amd64
Resolving dl.gitea.com… 52.84.125.19
Connecting to dl.gitea.com|52.84.125.19|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 123456789 (118M) [application/octet-stream]
Saving to: ‘gitea-1.22.6-linux-amd64’
gitea-1.22.6-linux-amd64 100%[===============================================>] 117.78M 15.6MB/s in 8s
2026-04-04 19:00:23 URL:https://dl.gitea.com/gitea/1.22.6/gitea-1.22.6-linux-amd64 [123456789/123456789] -> “gitea-1.22.6-linux-amd64” [1]
# 验证下载文件
# ls -lh gitea-1.22.6-linux-amd64
-rw-r–r– 1 root root 118M Apr 4 19:00 gitea-1.22.6-linux-amd64
# 验证SHA256校验和
# sha256sum gitea-1.22.6-linux-amd64
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2 gitea-1.22.6-linux-amd64
# 下载校验和文件验证
# wget https://dl.gitea.com/gitea/1.22.6/gitea-1.22.6-linux-amd64.sha256
# sha256sum -c gitea-1.22.6-linux-amd64.sha256
gitea-1.22.6-linux-amd64: OK
# 添加执行权限
# chmod +x gitea-1.22.6-linux-amd64
# 移动到系统目录
# mv gitea-1.22.6-linux-amd64 /usr/local/bin/gitea
# 验证版本
# gitea –version
Gitea version 1.22.6 built with GNU Make 4.4.1, go1.23.4 : bindata, timetzdata, sqlite, sqlite_unlock_notify
方式二:Docker镜像下载
# docker pull gitea/gitea:latest
# 下载输出案例如下:
latest: Pulling from gitea/gitea
Digest: sha256:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2
Status: Downloaded newer image for gitea/gitea:latest
docker.io/gitea/gitea:latest
# 拉取指定版本
# docker pull gitea/gitea:1.22.6
# docker pull gitea/gitea:1-rootless
# 查看镜像
# docker images gitea/gitea
REPOSITORY TAG IMAGE ID CREATED SIZE
gitea/gitea latest a1b2c3d4e5f6 2 days ago 156MB
gitea/gitea 1.22.6 a1b2c3d4e5f6 2 days ago 156MB
gitea/gitea 1-rootless b2c3d4e5f6g7 1 week ago 145MB
# 创建数据目录
# mkdir -p /var/lib/gitea/{data,log,custom}
# 运行Gitea容器
# docker run -d –name=gitea \
-p 10022:22 -p 3000:3000 \
-v /var/lib/gitea:/data \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
–restart always \
gitea/gitea:latest
# 查看容器状态
# docker ps | grep gitea
a1b2c3d4e5f6 gitea/gitea:latest “/usr/bin/entrypoint” 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp, 0.0.0.0:10022->22/tcp gitea
方式三:包管理器安装
# yum install -y gitea
# Ubuntu/Debian
# apt install -y gitea
# Arch Linux
# pacman -S gitea
# 查看安装版本
# gitea –version
Gitea version 1.22.6 built with GNU Make 4.4.1, go1.23.4
3. 系统环境准备
Gitea依赖Git和数据库,需要提前安装配置。学习交流加群风哥QQ113257174
步骤1:安装Git
# yum install -y git
# 验证Git版本
# git –version
git version 2.43.0
# 创建Git用户
# useradd -r -s /bin/bash -d /home/git -m git
# 创建Gitea目录
# mkdir -p /var/lib/gitea/{custom,data,log}
# chown -R git:git /var/lib/gitea
# chmod -R 750 /var/lib/gitea
# 创建配置目录
# mkdir -p /etc/gitea
# chown root:git /etc/gitea
# chmod 770 /etc/gitea
步骤2:安装数据库
# yum install -y mariadb-server mariadb
# 启动MariaDB服务
# systemctl start mariadb
# systemctl enable mariadb
# 安全配置
# mysql_secure_installation
# 创建Gitea数据库
# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE gitea CHARACTER SET ‘utf8mb4’ COLLATE ‘utf8mb4_unicode_ci’;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> CREATE USER ‘gitea’@’localhost’ IDENTIFIED BY ‘gitea_password_2026’;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO ‘gitea’@’localhost’;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> exit
Bye
# 或使用SQLite(轻量级部署)
# yum install -y sqlite
4. Gitea安装实战
完成环境准备后,配置并启动Gitea服务。更多学习教程公众号风哥教程itpux_com
步骤1:创建systemd服务
# vi /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service
[Service]
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
[Install]
WantedBy=multi-user.target
# 重载systemd
# systemctl daemon-reload
# 启动Gitea服务
# systemctl start gitea
# systemctl enable gitea
# 查看服务状态
# systemctl status gitea
● gitea.service – Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2026-04-04 19:10:00 CST; 30s ago
Main PID: 55123 (gitea)
Tasks: 8
Memory: 156M
CGroup: /system.slice/gitea.service
└─55123 /usr/local/bin/gitea web -c /etc/gitea/app.ini
Apr 04 19:10:00 fgedu.net.cn systemd[1]: Started Gitea (Git with a cup of tea).
Apr 04 19:10:00 fgedu.net.cn gitea[55123]: 2026/04/04 19:10:00 cmd/web.go:111:runWeb() [I] Starting Gitea on PID: 55123
Apr 04 19:10:00 fgedu.net.cn gitea[55123]: 2026/04/04 19:10:00 cmd/web.go:172:runWeb() [I] Global init
步骤2:Web界面安装配置
# http://192.168.1.51:3000
# 首次访问会显示安装页面,配置以下信息:
数据库设置:
– 数据库类型:MySQL
– 主机:127.0.0.1:3306
– 用户名:gitea
– 密码:gitea_password_2026
– 数据库名称:gitea
应用基本设置:
– 站点标题: Git
– 仓库根目录:/var/lib/gitea/data/repositories
– LFS根目录:/var/lib/gitea/data/lfs
– 以用户名运行:git
– 服务器域名:gitea.fgedu.net.cn
– SSH服务端口:22
– HTTP端口:3000
– 基础URL:http://gitea.fgedu.net.cn:3000/
管理员账号设置:
– 管理员用户名:admin
– 密码:fgedu_gitea_password_2026
– 邮箱:admin@fgedu.net.cn
# 点击”立即安装”按钮
# 输出案例如下:
安装成功!正在跳转到首页…
步骤3:验证安装
# cat /etc/gitea/app.ini
# 输出案例如下:
[server]
APP_DATA_PATH = /var/lib/gitea/data
DOMAIN = gitea.fgedu.net.cn
HTTP_PORT = 3000
ROOT_URL = http://gitea.fgedu.net.cn:3000/
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /var/lib/gitea/data/lfs
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD = gitea_password_2026
SCHEMA =
SSL_MODE = disable
[repository]
ROOT = /var/lib/gitea/data/repositories
# 验证端口监听
# netstat -tlnp | grep gitea
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 55123/gitea
5. Gitea配置实战
完成安装后,进行基础配置和安全加固。from:www.itpux.com
步骤1:配置邮件服务
# vi /etc/gitea/app.ini
[mailer]
ENABLED = true
FROM = gitea@fgedu.net.cn
PROTOCOL = smtp+starttls
SMTP_ADDR = smtp.fgedu.net.cn
SMTP_PORT = 587
USER = gitea@fgedu.net.cn
PASSWD = smtp_password
# 重启Gitea
# systemctl restart gitea
# 测试邮件发送
# 导航到 站点管理 -> 配置管理 -> 邮件配置
# 点击 “发送测试邮件”
步骤2:配置LDAP认证
认证类型:LDAP (via BindDN)
认证名称:-LDAP
主机:192.168.1.100
端口:389
绑定DN:cn=admin,dc=fgedu,dc=net,dc=cn
绑定密码:ldap_password
用户搜索基准:ou=users,dc=fgedu,dc=net,dc=cn
用户过滤规则:(&(objectClass=inetOrgPerson)(uid=%s))
用户名属性:uid
姓名属性:cn
邮箱属性:mail
# 点击 “添加认证源” 按钮
# 输出案例如下:
认证源添加成功!
步骤3:配置HTTPS
# mkdir -p /var/lib/gitea/custom/https
# 复制证书文件
# cp /etc/pki/tls/certs/gitea.crt /var/lib/gitea/custom/https/
# cp /etc/pki/tls/private/gitea.key /var/lib/gitea/custom/https/
# 编辑配置文件
# vi /etc/gitea/app.ini
[server]
PROTOCOL = https
CERT_FILE = /var/lib/gitea/custom/https/gitea.crt
KEY_FILE = /var/lib/gitea/custom/https/gitea.key
ROOT_URL = https://gitea.fgedu.net.cn:3000/
# 重启Gitea
# systemctl restart gitea
# 验证HTTPS访问
# curl -k https://gitea.fgedu.net.cn:3000
6. Gitea使用实战
Gitea提供完整的Git仓库管理功能。
步骤1:创建仓库和推送代码
# 导航到 + -> 新建仓库
# 仓库名称:fgedu-java-project
# 描述: Java项目
# 可见性:私有
# 配置Git客户端
# git config –global user.name “admin”
# git config –global user.email “admin@fgedu.net.cn”
# 克隆仓库
# git clone http://gitea.fgedu.net.cn:3000/admin/fgedu-java-project.git
Cloning into ‘fgedu-java-project’…
warning: You appear to have cloned an empty repository.
# 创建示例文件
# cd fgedu-java-project
# echo “# Java Project” > README.md
# mkdir -p src/main/java
# echo “public class App { public static void main(String[] args) { System.out.println(\”Hello World\”); } }” > src/main/java/App.java
# 提交并推送
# git add .
# git commit -m “Initial commit”
[master (root-commit) a1b2c3d] Initial commit
2 files changed, 2 insertions(+)
create mode 100644 README.md
create mode 100644 src/main/java/App.java
# git push -u origin master
Username for ‘http://gitea.fgedu.net.cn:3000’: admin
Password for ‘http://admin@gitea.fgedu.net.cn:3000’:
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 312 bytes | 312.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
To http://gitea.fgedu.net.cn:3000/admin/fgedu-java-project.git
* [new branch] master -> master
Branch ‘master’ set up to track remote branch ‘master’ from ‘origin’.
步骤2:配置Gitea Actions
# vi /etc/gitea/app.ini
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://github.com
# 重启Gitea
# systemctl restart gitea
# 创建.gitea/workflows目录
# mkdir -p .gitea/workflows
# 创建CI配置文件
# vi .gitea/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v4
– name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: ’17’
distribution: ‘temurin’
– name: Build with Maven
run: mvn clean package -DskipTests
– name: Run tests
run: mvn test
# 提交并推送
# git add .gitea/workflows/ci.yml
# git commit -m “Add CI workflow”
# git push
7. 生产环境最佳实践
在生产环境中部署Gitea需要考虑性能优化、备份恢复和安全加固。
性能优化配置
# vi /etc/gitea/app.ini
[server]
LANDING_PAGE = explore
LFS_START_SERVER = true
[repository]
ENABLE_PUSH_CREATE_USER = true
DEFAULT_BRANCH = main
[repository.upload]
ENABLED = true
FILE_MAX_SIZE = 50
MAX_FILES = 10
[ui]
THEME_COLOR_META_TAG = “#6cc644”
[ui.meta]
AUTHOR = Git
DESCRIPTION = Git Repository
[indexer]
ISSUE_INDEXER_TYPE = bleve
ISSUE_INDEXER_PATH = /var/lib/gitea/data/indexers/issues.bleve
[cache]
ENABLED = true
ADAPTER = redis
HOST = network=tcp,addr=127.0.0.1:6379,password=,db=0
[session]
PROVIDER = redis
PROVIDER_CONFIG = network=tcp,addr=127.0.0.1:6379,password=,db=1
# 重启Gitea
# systemctl restart gitea
备份与恢复
# gitea dump -c /etc/gitea/app.ini –work-path /var/lib/gitea
# 输出案例如下:
2026/04/04 19:30:00 …s/setting/setting.go:54:NewContext() [I] NewContext: 2026-04-04 19:30:00
2026/04/04 19:30:00 …s/setting/setting.go:54:NewContext() [I] NewContext: 2026-04-04 19:30:00
2026/04/04 19:30:00 cmd/dump.go:263:runDump() [I] Dumping database…
2026/04/04 19:30:00 cmd/dump.go:273:runDump() [I] Dumping repositories…
2026/04/04 19:30:15 cmd/dump.go:283:runDump() [I] Dumping LFS objects…
2026/04/04 19:30:20 cmd/dump.go:293:runDump() [I] Dumping custom files…
2026/04/04 19:30:20 cmd/dump.go:303:runDump() [I] Dumping log files…
2026/04/04 19:30:20 cmd/dump.go:313:runDump() [I] Dumping data files…
2026/04/04 19:30:25 cmd/dump.go:323:runDump() [I] Creating archive…
2026/04/04 19:30:45 cmd/dump.go:333:runDump() [I] Backup saved to gitea-dump-1712236200.zip
# 查看备份文件
# ls -lh gitea-dump-*.zip
-rw-r–r– 1 root root 1.2G Apr 4 19:30 gitea-dump-1712236200.zip
# 恢复备份
# unzip gitea-dump-1712236200.zip
# mv data/* /var/lib/gitea/data/
# mv custom/* /var/lib/gitea/custom/
# mv log/* /var/lib/gitea/log/
# chown -R git:git /var/lib/gitea
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
