环境定义
假设gitea的访问链接:
gitea的登录用户(要设置为管理员)为: giteadminuser
假设woodpecker的外网访问链接:
内网监听端口为:3086
假设woodpecker使用mysql数据库,连接信息为:
用户名:admintest
密码:pwd123
IP地址: 127.0.0.1
端口: 3316
woodpecker数据库为: woodpecker
caddy配置:
# gitea git仓库管理系统,用于woodpecker的用户认证
https://m1.mydomain.com:3083 {
handle_path /* {
reverse_proxy * http://localhost:3082 {
header_down -'proxy-connection'
flush_interval 300ms
transport http {
dial_timeout 10s
keepalive 10m
}
}
}
}# woodpecker发布CI/CD平台
https://m1.mydomain.com:3088 {
handle_path /* {
reverse_proxy * http://localhost:3086 {
header_down -'proxy-connection'
flush_interval 300ms
transport http {
dial_timeout 10s
keepalive 10m
}
}
}
}
gitea配置
gitea的文件权限及linux新用户git创建
adduser --system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group --disabled-password \
--home /home/git \
git
gitea启动脚本
#!/bin/bash
# 文件名: run-gitea.sh
# 【gitea运行在后台】的启动脚本
nohup ./gitea web \
--port 3082 \
--work-path /appdata/gitea/data \
--config /appdata/gitea/data/app.ini 1>out.log 2>err.log &
gitea中配置woodpecker的应用
在gitea中点击右上角的菜单,依次点击【设置】,左边栏的【应用】,【创建新的 OAuth2 应用程序】
填写【应用名称】。例:Woodpecker
填写【重定向 URI。每行一个 URI】,例: https://m1.mydomain.com:3088/authorize
重定向URI一定要在HOST后面添加:/authorize
创建好以后,界面上会显示【客户端ID】和【客户端密钥】拷下来,备用。假设:
客户端ID为: abc
客户端密钥为: efg
woodpecker配置
woodpecker.env配置
# 文件名:woodpecker.env
# Woodpecker 服务配置。
WOODPECKER_HOST="https://m1.mydomain.com:3088"
WOODPECKER_SERVER_ADDR=":3086"
# 不常用,随意设置一个
WOODPECKER_GRPC_ADDR=":3089"
WOODPECKER_OPEN=true
WOODPECKER_ADMIN=giteadminuser# Gitea OAuth 配置
WOODPECKER_GITEA=true
WOODPECKER_GITEA_URL="https://m1.mydomain.com:3083"
WOODPECKER_GITEA_CLIENT=abc
WOODPECKER_GITEA_SECRET=efg# MySQL 数据库配置
WOODPECKER_DATABASE_DRIVER=mysql
WOODPECKER_DATABASE_DATASOURCE="admintest:pwd123@tcp(127.0.0.1:3316)/woodpecker?parseTime=true"# 可选:日志路径
WOODPECKER_LOG_FILE=./biz-info.log
woodpecker启动脚本:run-woodpecker.sh 配置
#!/bin/bash
# 文件名: run-woodpecker.sh
# woodpecker的服务启动脚本
set -a
source ./woodpecker.env
set +a
nohup ./woodpecker-server server 1>out.log 2>err.log &
printf "=====================\n woodpecker访问链接为:"echo $WOODPECKER_HOST
# end