Gogs安装
一个私有的 git 仓库
-
安装 mysql(非必须。可以使用 sqllite)
参考 mysql 教程 -
安装 git(必须的)
参考 git 教程 -
裸机安装 gogs
sudo -smkdir /opt/softwarecd /opt/softwareuseradd -s /bin/bash -m git #创建用户echo 'git ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers #添加免密登陆su gitwget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gztar zxvf gogs_0.13.0_linux_amd64.tar.gzcd gogsBRAND_NAME = GogsRUN_USER = gitRUN_MODE = prod
[database]TYPE = mysqlHOST = 127.0.0.1:3307NAME = gogsSCHEMA = publicUSER = rootPASSWORD = exampleSSL_MODE = disablePATH = /opt/software/gogs/data/gogs.db
[repository]ROOT = /opt/software/gogs/gogs-repositoriesDEFAULT_BRANCH = master
[server]PROTOCOL = https #开启httpsDOMAIN = gogs.wsl.sxyxy.topHTTP_PORT = 3000EXTERNAL_URL = https://gogs.wsl.sxyxy.top:3000/DISABLE_SSH = falseSSH_PORT = 22SSH_ROOT_PATH = /home/git/.ssh #ssh地址REWRITE_AUTHORIZED_KEYS_AT_START = trueSTART_SSH_SERVER = false #不建议开启,使用系统的服务即可OFFLINE_MODE = falseUSE_CERTIFICATE = trueCERT_FILE = custom/https/cert.crtKEY_FILE = custom/https/key.key
[email]ENABLED = trueHOST = smtp.163.com:456FROM = example@163.comUSER = example@163.comPASSWD = ***
[auth]REQUIRE_EMAIL_CONFIRMATION = trueDISABLE_REGISTRATION = falseENABLE_REGISTRATION_CAPTCHA = trueREQUIRE_SIGNIN_VIEW = true
[user]ENABLE_EMAIL_NOTIFICATION = true
[picture]DISABLE_GRAVATAR = falseENABLE_FEDERATED_AVATAR = false
[session]PROVIDER = file
[log]MODE = fileLEVEL = InfoROOT_PATH = /opt/software/gogs/log
[security]INSTALL_LOCK = trueSECRET_KEY = L9S3NQi7yhtdy9CLOCAL_NETWORK_ALLOWLIST = "jenkins.example.com" #允许网络,woobhook推送到本地是可能需要注意 github 上的配置文件分支
4. 配置开机自启动
Section titled “4. 配置开机自启动”[Unit]Description=GogsAfter=syslog.targetAfter=network.targetAfter=mariadb.service mysql.service mysqld.service postgresql.service memcached.service redis.service
[Service]# Modify these two values and uncomment them if you have# repos with lots of files and get an HTTP error 500 because# of that####LimitMEMLOCK = infinity#LimitNOFILE = 65535Type=simpleUser=gitGroup=gitWorkingDirectory=/opt/software/gogsExecStart=/opt/software/gogs/gogs webRestart=alwaysEnvironment=USER=git HOME=/opt/software/gogs
# Some distributions may not support these hardening directives. If you cannot start the service due# to an unknown option, comment out the ones not supported by your version of systemd.ProtectSystem=fullPrivateDevices=yesPrivateTmp=yesNoNewPrivileges=true
[Install]WantedBy=multi-user.target5. 管理服务
Section titled “5. 管理服务”systemctl daemon-reload #重启 systemd 服务systemctl restart gogssystemctl status gogssystemctl stop gogs6. 开启 ssh 服务
Section titled “6. 开启 ssh 服务”- 安装
sudo -sapt install openssh-server- 配置
Port = 23- 服务
systemctl start sshsystemctl status sshsystemctl stop ssh- 切换 ssh 默认用户
# 创建用户useradd -s /bin/bash -m gogs#修改源文件权限chown -R gogs:gogs /opt/gogs# service文件User=gitGroup=gitEnvironment=USER=git HOME=/opt/software/gogs# 配置文件#/opt/software/gogs/custom/conf/app.iniRUN_USER = git
[server]SSH_ROOT_PATH = /home/git/.ssh #ssh地址# 重启服务systemctl restart gogs
# 测试服务git -T gogsssh -T gogs@exampel.com- 配置 webhook
https://jenkins.exampl.com/gogs-webhook/?job=testjob 对应的 query 参数需要 jenkins 的 job 配置保持一致,如果存在目录则 dir/test
7. 拓展信息
Section titled “7. 拓展信息”7.1. 出现邮件配置无效
Section titled “7.1. 出现邮件配置无效”参考指定配置文件版本进行配置,不同的配置文件配置参数可能不一致
7.2. 配置 ssl 无效
Section titled “7.2. 配置 ssl 无效”- 注意 PROTOCOL 参数使用设置为 https
7.3. 出现 crsf 非法
Section titled “7.3. 出现 crsf 非法”清除 cookie 之后重试