Gitea CLI工具:命令行操作指南
概述
Gitea作为一款轻量级的自托管Git服务,提供了丰富的命令行工具(CLI)来帮助管理员和开发者高效管理代码仓库、用户权限、系统维护等任务。本文将深入介绍Gitea CLI工具的核心功能和使用方法,帮助您充分利用命令行提升工作效率。
CLI工具架构
Gitea的CLI工具采用模块化设计,主要分为以下几类命令:
核心命令详解
1. Web服务器命令
web - 启动Web服务
# 启动Gitea Web服务器
./gitea web
# 指定配置文件启动
./gitea web -c /path/to/app.ini
# 指定工作目录和自定义路径
./gitea web -w /opt/gitea -C /opt/gitea/custom
# 启用调试模式
./gitea web --debug
主要参数:
-c, --config: 指定配置文件路径-w, --work-path: 设置工作目录-C, --custom-path: 设置自定义文件路径--debug: 启用调试模式--quiet: 静默模式
serv - Git协议服务
# 启动Git协议服务
./gitea serv --config=/path/to/app.ini
2. 管理命令
admin - 用户和系统管理
# 创建新用户
./gitea admin user create --username=johndoe --password=secret --email=john@example.com
# 修改用户密码
./gitea admin user change-password --username=johndoe --password=newsecret
# 生成访问令牌
./gitea admin user generate-access-token --username=johndoe --token-name=cli-token
# 列出所有用户
./gitea admin user list
# 删除用户
./gitea admin user delete --username=johndoe
# 认证管理
./gitea admin auth list
./gitea admin auth smtp --name=smtp-auth --host=smtp.example.com
manager - 系统管理
# 查看系统状态
./gitea manager status
# 日志管理
./gitea manager logging --level=debug
3. 数据操作命令
dump - 数据备份
# 完整备份
./gitea dump -c /path/to/app.ini
# 指定输出文件
./gitea dump -c /path/to/app.ini -o backup.zip
# 仅备份数据库
./gitea dump -c /path/to/app.ini --database-only
# 排除附件文件
./gitea dump -c /path/to/app.ini --exclude-repos --exclude-attachments
restore - 数据恢复
# 从备份文件恢复
./gitea restore --from=backup.zip -c /path/to/app.ini
# 交互式恢复
./gitea restore --interactive --from=backup.zip
migrate - 数据迁移
# 迁移存储
./gitea migrate storage --type=local-minio
# 仓库迁移
./gitea migrate --clone-addrs=https://github.com/user/repo.git
4. 系统维护命令
doctor - 系统诊断和修复
# 运行所有检查
./gitea doctor --run
# 检查特定项目
./gitea doctor --check=all
./gitea doctor --check=database
./gitea doctor --check=repositories
# 自动修复问题
./gitea doctor --fix
检查项目包括:
- 数据库一致性
- 仓库完整性
- 文件权限
- 配置验证
- 索引状态
hook - Git钩子管理
# 管理Git钩子
./gitea hook --repo=username/reponame
5. 辅助工具命令
docs - 文档生成
# 生成Markdown文档
./gitea docs
# 生成man page
./gitea docs --man
# 输出到文件
./gitea docs --output=cli-documentation.md
cert - 证书管理
# 生成自签名证书
./gitea cert --host=example.com
# 指定证书输出路径
./gitea cert --host=example.com --cert=server.crt --key=server.key
高级用法和技巧
批量用户管理
# 批量创建用户(结合脚本)
#!/bin/bash
while IFS=, read -r username email password; do
./gitea admin user create --username="$username" --email="$email" --password="$password"
done < users.csv
自动化备份脚本
#!/bin/bash
# 自动化备份脚本
BACKUP_DIR="/backup/gitea"
DATE=$(date +%Y%m%d_%H%M%S)
./gitea dump -c /etc/gitea/app.ini -o "$BACKUP_DIR/gitea-dump-$DATE.zip"
# 保留最近7天的备份
find "$BACKUP_DIR" -name "gitea-dump-*.zip" -mtime +7 -delete
系统监控集成
# 检查系统健康状态(用于监控)
if ./gitea doctor --check=database --quiet; then
echo "Database health: OK"
else
echo "Database health: ERROR"
exit 1
fi
配置管理
全局配置选项
所有需要配置文件的命令都支持以下全局选项:
| 选项 | 说明 | 默认值 |
|---|---|---|
-c, --config | 配置文件路径 | {WorkPath}/custom/conf/app.ini |
-w, --work-path | 工作目录 | Gitea二进制文件所在目录 |
-C, --custom-path | 自定义文件路径 | {WorkPath}/custom |
环境变量配置
# 通过环境变量设置配置
export GITEA_WORK_PATH=/opt/gitea
export GITEA_CUSTOM_PATH=/opt/gitea/custom
export GITEA_CONFIG=/etc/gitea/app.ini
./gitea web
故障排除和调试
常见问题解决
- 权限问题
# 检查文件权限
./gitea doctor --check=permissions
# 修复权限
chown -R git:git /path/to/gitea
chmod -R 750 /path/to/gitea
- 数据库连接问题
# 测试数据库连接
./gitea doctor --check=database
- 配置文件验证
# 验证配置文件
./gitea web --check-config
调试模式
# 启用详细日志
./gitea --debug web
./gitea --verbose admin user list
# 查看命令帮助
./gitea help
./gitea admin help
./gitea admin user create --help
最佳实践
安全实践
# 使用强密码
./gitea admin user create --username=user --password=$(openssl rand -base64 16)
# 定期轮换访问令牌
./gitea admin user generate-access-token --username=user --token-name=$(date +%Y%m%d)
性能优化
# 定期运行维护任务
./gitea doctor --run
./gitea manager logging --level=info
# 清理旧数据
./gitea admin regenerate hooks
自动化部署
#!/bin/bash
# 自动化部署脚本
set -e
# 停止服务
systemctl stop gitea
# 备份当前版本
./gitea dump -o backup-$(date +%Y%m%d).zip
# 更新二进制文件
cp new-gitea-binary ./gitea
chmod +x ./gitea
# 运行数据库迁移
./gitea migrate
# 启动服务
systemctl start gitea
# 验证部署
./gitea doctor --check=all
命令参考表
| 命令类别 | 主要命令 | 功能描述 | 常用参数 |
|---|---|---|---|
| Web服务 | web | 启动Web服务器 | -c, --debug, --quiet |
serv | Git协议服务 | --config | |
| 用户管理 | admin user | 用户管理 | create, list, delete |
admin auth | 认证管理 | smtp, oauth, ldap | |
| 数据操作 | dump | 数据备份 | -o, --database-only |
restore | 数据恢复 | --from, --interactive | |
migrate | 数据迁移 | storage, --clone-addrs | |
| 系统维护 | doctor | 系统诊断 | --run, --check, --fix |
manager | 系统管理 | status, logging | |
| 辅助工具 | docs | 文档生成 | --man, --output |
cert | 证书管理 | --host, --cert, --key |
总结
Gitea CLI工具提供了完整的管理功能,从基本的Web服务启动到复杂的系统维护任务。通过熟练掌握这些命令行工具,您可以:
- ✅ 实现自动化部署和维护
- ✅ 高效管理用户和权限
- ✅ 确保数据安全和完整性
- ✅ 快速诊断和解决问题
- ✅ 集成到现有的DevOps流程中
建议定期查阅官方文档更新,并利用./gitea docs命令生成本地文档参考。通过结合Shell脚本和定时任务,您可以构建强大的自动化管理解决方案。
记住:熟练掌握CLI工具是高效管理Gitea实例的关键,它不仅能提升工作效率,还能帮助您更好地理解系统内部工作机制。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



