DevOps-Gitness

Gitness 是 Harness 旗下的一款开源产品。可以说是 Drone 的替代品,Drone开源一段时间后就被 Harness 收购。介绍就免了直接上安装教程。

安装步骤

根据个人的想法决定安装哪些组件,目前我这里配置了SSL,所以需要一个 Nginx 进行反向代理。以下是我的docker-compose.yml配置。

version: "2.3"
services:
  gitness:
    image: harness/gitness
    container_name: gitness
    restart: always
    privileged: true
    ports:
      - "8080:8080"
    extra_hosts:
      - host.docker.internal:host-gateway
    environment:
      - GITNESS_DATABASE_DRIVER=sqlite3
      - GITNESS_USER_SIGNUP_ENABLED=true
      - GITNESS_HTTP_PORT=8080
      - GITNESS_URL_BASE=https://example.com
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/conf.d/:/etc/nginx/conf.d/:ro
      - ./nginx/certs/:/etc/nginx/certs/:ro

上面还配置了nginx相关的配置项,这里的nginx.conf我使用的是默认的配置,所以这个文件我是不挂载的,可根据需要自行调整。以下是example.com.conf的相关配置

server {
    listen 80;
    server_name example.com 1.1.1.1; #这里写的是服务器的IP

    location / {
        # 重定向 HTTP 到 HTTPS
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/certs/example.com.crt;
    ssl_certificate_key /etc/nginx/certs/example.com.key;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-Port $server_port;

    location / {
        # 针对其他 URL 的服务
        proxy_pass http://gitness:8080;
        # 可以添加其他代理相关配置,如代理头、缓存等
    }

}

这里还有一种想法,就是将nginx代理也一并交由 Gitness 托管,作为 Gitness 中的一个项目仓库来维护,这样就可以通过动态的调整来进行配置。

效果就不给大家展示了,SSL续约可以参考开源项目-SSL自动续约脚本!


DevOps-Gitness
https://blog.cikaros.top/doc/b35f7c70.html
作者
Cikaros
发布于
2024年2月6日
许可协议