Gitea 简介

Gitea 是一个自己托管的Git服务程序。他和GitHub, BitbucketGitlab等比较类似,他从 Gogs 发展而来。

Gitea 安装

使用指定平台的二进制文件安装

1、先更新系统包并安装git

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install git

2、前往 Github 下载适用于自身系统和平台的二进制文件:https://github.com/go-gitea/gitea/releases/latest

下载完成后将文件重命名为gitea并移动到/usr/local/bin/,并添加执行权限sudo chmod +x /usr/local/bin/gitea

添加 gitea 用户用于执行程序:sudo adduser --home /var/lib/gitea --shell /bin/bash --disabled-password gitea

创建所需目录:sudo -u gitea mkdir -p /var/lib/gitea/{custom,data,log}

设置目录权限:sudo chmod -R 750 /var/lib/gitea/

3、在 Ubuntu 18.04 LTS 中以 service 方式运行

使用 systemd

在 terminal 中执行以下命令:

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

接着拷贝示例代码 gitea.service 并取消对任何需要运行在主机上的服务部分的注释,比如使用 MySQL 作为数据库,编辑 gitea.service 文件,将#Requires=mysql.service行的 # 删除即可。

修改 userhome 目录以及其他必须的初始化参数,如果使用自定义端口,则需修改 PORT 参数,反之如果使用默认端口则需删除 -p 标记。

激活 gitea 并将它作为系统自启动服务:

sudo systemctl enable gitea
sudo systemctl start gitea

4、Nginx 反向代理

使用 Nginx 等前端 Web 服务器反向代理 Gitea, 我主要为了隐藏端口

以下是一个 Nginx 示例配置:

location / {
    client_max_body_size 0;
    proxy_pass http://localhost:3000;
}

5、自定义 Gitea 配置

Gitea 引用 custom 目录中的自定义配置文件来覆盖配置、模板等默认配置。

如果从二进制部署 Gitea ,则所有默认路径都将相对于该 gitea 二进制文件;如果从发行版安装,则可能会将这些路径修改为Linux文件系统标准。Gitea 将会自动创建包括 custom/ 在内的必要应用目录,应用本身的配置存放在 custom/conf/app.ini 当中。

注: 必须完全重启 Gitea 以使配置生效。

  • 使用自定义 /robots.txt

将 想要展示的内容 存放在 custom 目录中的 robots.txt 文件来让 Gitea 使用自定义的/robots.txt (默认:空 404)。

  • 使用自定义的公共文件

将自定义的公共文件(比如页面和图片)作为 webroot 放在 custom/public/ 中来让 Gitea 提供这些自定义内容(符号链接将被追踪)。public文件夹可以下载GiteaGitHub库中的public文件夹进行修改。

举例说明:image.png 存放在 custom/public/中,那么它可以通过链接 http://gitea.domain.tld/image.png 访问。

  • 修改默认头像

替换以下目录中的 png 图片: custom/public/img/avatar\_default.png

  • 自定义 Gitea 页面

可以改变 Gitea custom/templates 的每个单页面。您可以在 Gitea 源码的 templates 目录中找到用于覆盖的模板文件,应用将根据 custom/templates 目录下的路径结构进行匹配和覆盖。可以下载GiteaGitHub库中的templates

包含在 {{}} 中的任何语句都是 Gitea 的模板语法,如果不理解这些组件,不建议修改。

  • 自定义 gitignoreslabelslicenseslocales 以及 readmes

将自定义文件放在 custom/options 下相应子的文件夹中即可。可以下载GiteaGitHub库中的。

通过Docker快速部署

以下是Gitea中文文档里的内容

docker pull gitea/gitea:latest  # 拉取镜像
sudo mkdir -p /var/lib/gitea    # 创建目录来存储数据,将git和其它数据持久化
docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest

然后 容器已经运行成功,在浏览器中访问 http://hostname:10080 就可以看到界面了。你可以尝试在上面创建项目,clone操作 git clone ssh://git@hostname:10022/username/repo.git

注意:目前端口改为非3000时,需要修改配置文件 LOCAL_ROOT_URL = http://localhost:3000/

很明显这里假定了使用者会用docker,所以缺少了配置MySQL数据库和卷的步骤,但英文文档就很全。就是docker-compose.yml文件的编写部分:

docker-compose.yml:

version: "2"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - /var/lib/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "22:22"
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - /var/lib/mysql:/var/lib/mysql

Gitea 使用

咕咕咕

参考链接
Gitea中文文档
Gitea Docs
GitHub

Last modification:March 12th, 2020 at 12:42 am
如果觉得我的文章对你有用,请随意赞赏