# gitea ### 安装 下载 [Releases · go-gitea/gitea](https://github.com/go-gitea/gitea/releases) 安装的前提必须要 `PATH` 里面有 git > Check that Git is installed on the server. If it is not, install it first. #### 二进制安装 ```bash cd /data01/devops/gitea wget -O gitea https://dl.gitea.io/gitea/1.12.2/gitea-1.12.2-linux-amd64 https://github.com/go-gitea/gitea/releases/download/v1.12.2/gitea-1.12.2-linux-amd64.xz xz -d gitea-1.12.2-linux-amd64.xz mv gitea-1.12.2-linux-amd64 gitea ./gitea web nohup ./gitea web > log.file 2>&1& 第一次打开页面的时候会配置数据库登信息 第一个注册的用户为管理员 管理员账户为:root(admin被系统保留,无法使用) 点击【立即安装】后会开始在数据库建表,时间有点长,一共74张表 ``` **官网还有更正规的安装方式**,英文的详细一些 [从二进制安装 - Docs](https://docs.gitea.io/zh-cn/install-from-binary/) [Installation from binary - Docs](https://docs.gitea.io/en-us/install-from-binary/) ### docker 安装 [使用 Docker 安装 - Docs](https://docs.gitea.io/zh-cn/install-with-docker/) [Installation with Docker - Docs](https://docs.gitea.io/en-us/install-with-docker/) 简单命令 docker安装 ```bash gitea gitea@123 root gitea@123 flyaway Xxw!123 docker pull gitea/gitea:1.14.2 docker pull gitea/gitea:1.14.3 # DB_HOST 等参数好像实际没什么用,还是得安装页面配置 SSH_PORT 也没用 # 还是在运行起来后修改配置文件 docker run --name gitea -p 3010:3010 -v /mnt/user/appdata/gitea:/data \ -e "RUN_MODE=prod" \ -e "DOMAIN=192.168.66.254" \ -e "HTTP_PORT=3010" \ -e "ROOT_URL=http://192.168.66.254:3010" \ -e "DB_TYPE=mysql" \ -e "DB_HOST=192.168.66.254" \ -e "DB_NAME=gitea" \ -e "DB_USER=gitea" \ -e "DB_PASSWD=gitea@123" \ -e "USER_UID=1000" \ -e "USER_GID=100" \ --env=TZ=Asia/Shanghai \ -d gitea/gitea:1.14.2 ``` ### 组织和团队有啥区别 #1912 [组织和团队有啥区别 · Issue #1912 · gogs/gogs](https://github.com/gogs/gogs/issues/1912) > organization => company > team => department or small unit [Organization / teams structure - Support - Gitea](https://discourse.gitea.io/t/organization-teams-structure/2766) ### Gitea is running slow The most common culprit for this is loading federated avatars. This can be turned off by setting `ENABLE_FEDERATED_AVATAR `to `false` in your app.ini Another option that may need to be changed is setting `DISABLE_GRAVATAR `to true in your `app.ini` ```ini [picture] DISABLE_GRAVATAR = true ENABLE_FEDERATED_AVATAR = false ``` ### Gitea avatar 修改 cdn ```ini GRAVATAR_SOURCE=https://gravatar.cat.net/avatar/ # 感觉不靠谱 ``` ```shell # 升级后 好像这个文件会丢失 /data01/devops/gitea/data/avatars 上传 asia_ico_20210610201425-25.jpg 改名 asia_ico_20210610201425 mv asia_ico_20210610201425-25.jpg asia_ico_20210610201425 ``` ### gitea webhook i/o timeout webhook 超时报错问题 [Re: Webhook i/o timeout failure - Shopify Community](https://community.shopify.com/c/Shopify-APIs-SDKs/Webhook-i-o-timeout-failure/m-p/825409)
[Webhooks randomly fail with 408 timeout · Issue #5470 · go-gitea/gitea](https://github.com/go-gitea/gitea/issues/5470) [Internal server Error · Issue #10246 · go-gitea/gitea](https://github.com/go-gitea/gitea/issues/10246) 很可能是`.drone.yml `文件名错了 > ok. I have solved this problem. > my gitea repository's webhook is Drone URL. and the point is that CI `repository - setting - Main - Configuration` specified yaml file named `.drone.yml`, and my git repository's file named `drone.yml`!! > that's worker after modified file name... :) > 或者是版本库有问题 > Update: I deleted the repository and pushed again and that worked fine. > ### Gitea webhook push 消息不对的问题,是因为配置文件中`html_url` 是 `localhost` ,导致 push的消息不对 导致 `jenkins` 无法正常自动触发 日志 `/data01/docker_appdata/jenkins/logs/jenkins.branch.MultiBranchProject.log` 中就会出现 `Matched 0 错误` 的问题,正常应该是 `Matched 1` 或其他。 ```ini SSH_DOMAIN = cqaivm.860001.xyz DOMAIN = cqaivm.860001.xyz ROOT_URL = http://cqaivm.860001.xyz:12239/ ``` ### gitea 关闭用户注册 注意是 service 不是 server https://docs.gitea.io/en-us/config-cheat-sheet/ `custom/conf/app.ini ` ```ini [service] DISABLE_REGISTRATION = true ``` ### gitea 登录才能浏览 ```ini [service] REQUIRE_SIGNIN_VIEW = true ``` ### Gitea 在 Jenkins 上返回的仓库数目不对的问题 gitea 的 api 限制 ```ini [api] MAX_RESPONSE_ITEMS = 200 DEFAULT_PAGING_NUM = 100 # 注意好像可能有配置的顺序问题,或者大小限制 ``` - 官方代码仓库里面 `custom/conf/app.example.ini` 有示例 - [[JENKINS-63048] gitea API added general pagination in 1.12.x (potentially affecting repo listings) - Jenkins Jira](https://issues.jenkins.io/browse/JENKINS-63048) - [[JENKINS-64059] Scan Gitea Organization limited to 30 repositories - Jenkins Jira](https://issues.jenkins.io/browse/JENKINS-64059) google `jenkins gitea Repository limit` ### Gitea API [https://try.gitea.io/api/swagger](https://try.gitea.io/api/swagger) ### 其他工具 Awesome Gitea [gitea/awesome-gitea: A curated list of awesome projects related to Gitea - README.md at master - awesome-gitea - Gitea: Git with a cup of tea](https://gitea.com/gitea/awesome-gitea/src/branch/master/README.md#user-content-devops) [Awesome Gitea](https://gitea.com/gitea/awesome-gitea/src/branch/master/README.md) # 更新 升级 gitea [[2022-02-16]] 注意升级后可能头像文件asiainfo丢失 gitea-1.15.6-linux-amd64.xz 改成 gitea-1.16.1-linux-amd64.xz [[2022-03-10]] gitea-1.16.3-linux-amd64.xz [[2022-05-03]] gitea-1.16.7-linux-amd64.xz ```shell cd /data01/devops/gitea vi custom/conf/app.ini [service] REQUIRE_SIGNIN_VIEW = true # 注意停止旧的进程 # ps -ef|grep gitea pid1=`ps -ef|grep gitea|grep -v grep|grep -v bash|awk '{print $2}'` kill -9 ${pid1} mv gitea bak_gitea_1.15.6 xz -d gitea-1.16.3-linux-amd64.xz mv gitea-1.16.3-linux-amd64 gitea chmod u+x gitea nohup ./gitea web > log.file 2>&1& ``` ## 1.16 Webhook ```shell webhook can only call allowed HTTP servers (check your webhook.ALLOWED_HOST_LIST setting), deny 'cqaivm.860001.xyz(127.0.0.1:12250)' ``` 新版要设置 webhook `ALLOWED_HOST_LIST`: **external**: Since 1.15.7. Default to `*` for 1.15.x, `external` for 1.16 and later. Webhook can only call allowed hosts for security reasons. Comma separated list. - Built-in networks: - `loopback`: 127.0.0.0/8 for IPv4 and ::1/128 for IPv6, localhost is included. - `private`: RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and RFC 4193 (FC00::/7). Also called LAN/Intranet. - `external`: A valid non-private unicast IP, you can access all hosts on public internet. - `*`: All hosts are allowed. - CIDR list: `1.2.3.0/8` for IPv4 and `2001:db8::/32` for IPv6 - Wildcard hosts: `*.mydomain.com`, `192.168.100.*` ```ini [webhook] ALLOWED_HOST_LIST = * ```