Gitea 安装和配置

诗林  金牌会员 | 2025-3-15 18:00:31 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 698|帖子 698|积分 2094

Gitea 安装和配置: http://coffeelatte.cpolar.cn/post/software/applications/gitea/gitea_安装和配置/


  
1. 简介

Gitea 是一个雷同于 GitHub 的功能强大的代码托管平台,利用 Go 语言开发,只需要一个可执行程序文件即可部署,非常简朴易用,且功能丰富。具有版本管理、组织管理、Issues讨论、版本发布等功能。内置维基百科和 SSH 子系统。
2. Gitea 安装

下载 Gitea 后直接运行,浏览器输入127.0.0.1:3000 来举行初始配置(需要先安装好数据库软件)。
3. 配置文件

Gitea 的配置文件为 <Gitea可执行程序路径>/custom/conf 目录下的 app.ini 文件。全部配置均可通过修改该文件来实现。修改完配置后,需要重启 Gitea 服务才能生效。
3.1. 发送测试邮件

以管理员账户登录 Gitea,点击右上角菜单进入“管理后台->应用配置”,下拉到“Mailer 配置->发送测试邮件”,输入吸收邮箱地址后点击“发送”按钮即可发送测试邮件。
4. 创建/删除 Gitea 服务

4.1. Windows 服务

利用 SC 下令创建 Gitea 服务,并自动运行:
  1. sc create Gitea start= auto binPath= ""<绝对路径>\gitea.exe" web --config "<绝对路径>\custom\conf\app.ini""
复制代码
创建完服务后进入 Windows Services 找到 Gitea 而且点击运行。
如不再需要,同样利用 SC 下令删除服务,删除服务前需先停止该服务。
  1. sc delete Gitea
复制代码
4.2. Linux 服务

systemd 服务的开启过程如下,首先创建 gitea.service 文件:
  1. sudo vim /etc/systemd/system/gitea.service
复制代码
并参照以下模板添补该文件:
  1. [Unit]
  2. Description=Gitea (Git with a cup of tea)
  3. After=syslog.target
  4. After=network.target
  5. #After=mysqld.service
  6. #After=postgresql.service
  7. #After=memcached.service
  8. #After=redis.service
  9. [Service]
  10. # Modify these two values and uncomment them if you have
  11. # repos with lots of files and get an HTTP error 500 because
  12. # of that
  13. ###
  14. #LimitMEMLOCK=infinity
  15. #LimitNOFILE=65535
  16. RestartSec=2s
  17. Type=simple
  18. User=git
  19. Group=git
  20. WorkingDirectory=/var/lib/gitea/
  21. ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
  22. Restart=always
  23. #Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
  24. # If you want to bind Gitea to a port below 1024 uncomment
  25. # the two values below
  26. ###
  27. #CapabilityBoundingSet=CAP_NET_BIND_SERVICE
  28. #AmbientCapabilities=CAP_NET_BIND_SERVICE
  29. [Install]
  30. WantedBy=multi-user.target
复制代码
利用如下下令使能并启动 gitea 服务:
  1. sudo systemctl enable gitea
  2. sudo systemctl start gitea
复制代码
利用如下下令停止 gitea 服务:
  1. sudo systemctl stop gitea
复制代码
5. 利用 HTTPS 服务

可以利用 Gitea 内嵌的 HTTPS 服务。内嵌 HTTPS 服务利用自认证证书,生成 10 年期限自认证证书下令如下:
  1. gitea cert --host <HOST0,HOST1,...> --ca --duration 87600h
复制代码
参数说明:
ArgumentDescription–host <value>Comma seperated hostnames and ips which this certificate is valid for. Wildcards are supported. Required.–duration <value>Duration which the certificate is valid for. Optional. (default: 8760h0m0s)–caIf provided, this cert generates it’s own certificate authority. Optional. 编辑 app.ini 文件如下:
  1. [server]
  2. PROTOCOL=https
  3. ROOT_URL = https://git.example.com:3000/
  4. HTTP_PORT = 3000
  5. CERT_FILE = <绝对路径>/custom/https/cert.pem
  6. KEY_FILE = <绝对路径>/custom/https/key.pem
复制代码
注意,上面 CERT_FILE 和 KEY_FILE 必须利用绝对路径,否则无法正常启动 Gitea 服务。之后重启 Gitea 服务。通过浏览器访问 HTTPS 版本的 Gitea 服务,需要添加浏览器例外才能正常访问。另外客户端利用 git clone 需要关闭 git 的 ssl 认证功能。下令如下:
  1. git config --global http.sslVerify false
复制代码
另外 Gitea 还可以利用 Let’s Encrypt 提供的证书,这是 CA 认证证书,有用期为 90 天。Let’s Encrypt 的利用方法见官方手册。
6. 利用内置 SSH

Gitea 有内置 SSH 服务,支持 SSH 格式的 git clone,使能方式为修改 app.ini 文件中的下列内容:
  1. [server]
  2. SSH_DOMAIN       = 127.0.0.1
  3. DISABLE_SSH      = false
  4. START_SSH_SERVER = true
  5. SSH_PORT         = 3022
  6. SSH_LISTEN_PORT  = 3022
复制代码
7. 邮箱配置

Gitea 可以通过预先配置好的电子邮件发送服务器发送服务邮件如:通知、消息、注册确认等信息。邮件发送服务器为 smtp 服务器,需要同时提供服务器端口,用户名和密码。
  1. ; Mail server
  2. ; Gmail: smtp.gmail.com:587
  3. ; QQ: smtp.qq.com:465
  4. ; 163: smtp.163.com:465
  5. ; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
  6. [mailer]
  7. ENABLED = true
  8. ; PROTOCOL: empty: One of "smtp", "smtps", "smtp+starttls", "smtp+unix", "sendmail", "dummy".
  9. PROTOCOL    = smtp
  10. SMTP_ADDR   = smtp.sina.com
  11. ; SMTP_PORT: empty: Mail server port. If no protocol is specified, it will be inferred by this setting. Common ports are
  12. ;   * 25: insecure SMTP
  13. ;   * 465: SMTP Secure
  14. ;   * 587: StartTLS
  15. ; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format
  16. FROM    = user_name@sina.com
  17. ; Mailer user name and password
  18. USER    = user_name@sina.com
  19. ; Use PASSWD = `your password` for quoting if you use special characters in the password. 该字段也可用于指定“设备授权码”
  20. PASSWD  = user_password
复制代码
启用邮件系统后,可以开启邮件通知功能。该功能在有提示需要发送时,Gitea 会通过以上配置的邮件系统向用户发送邮件通知,如有 Issue 分派给了某个用户,则该用户会收到邮件提示。
  1. [service]
  2. ; Mail notification
  3. ENABLE_NOTIFY_MAIL                = true
复制代码
8. 答应通过邮箱举行外部注册

开启邮件系统后,可以开启邮件注册功能。用户可以本身注册账号,并收到注册确认邮件。通过点击注册确认邮件中的毗连,激活新账号。
  1. [service]
  2. ; Whether a new user needs to confirm their email when registering.
  3. REGISTER_EMAIL_CONFIRM            = true
  4. ; Disallow registration, only allow admins to create accounts.
  5. DISABLE_REGISTRATION              = false
  6. ; Allow registration only using third part services, it works only when DISABLE_REGISTRATION is false
  7. ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
  8. ; Enable captcha validation for registration
  9. ENABLE_CAPTCHA                    = true
复制代码
此中,校验码为可选功能,建议开启。
9. 配置文件示例

  1. APP_NAME = Gitea: Git with a cup of tea
  2. RUN_USER = Administrator
  3. RUN_MODE = prod
  4. [security]
  5. INTERNAL_TOKEN = <TOKEN>
  6. INSTALL_LOCK   = true
  7. SECRET_KEY     = <KEY>
  8. [database]
  9. DB_TYPE  = sqlite3
  10. HOST     = 127.0.0.1:3306
  11. NAME     = gitea
  12. USER     = gitea
  13. PASSWD   =
  14. SSL_MODE = disable
  15. PATH     = <绝对路径>/data/gitea.db
  16. [repository]
  17. ROOT             = <绝对路径>/gitea-repositories
  18. DISABLE_HTTP_GIT = true
  19. [repository.upload]
  20. ENABLED          = true
  21. FILE_MAX_SIZE    = 1024
  22. MAX_FILES        = 1000
  23. [server]
  24. PROTOCOL         = https
  25. SSH_DOMAIN       = 127.0.0.1
  26. DOMAIN           = 127.0.0.1
  27. HTTP_PORT        = 3000
  28. ROOT_URL         = %(PROTOCOL)s://127.0.0.1:3000/
  29. CERT_FILE        = <绝对路径>/Path/cert.pem
  30. KEY_FILE         = <绝对路径>/Path/key.pem
  31. DISABLE_SSH      = false
  32. START_SSH_SERVER = true
  33. SSH_PORT         = 3022
  34. SSH_LISTEN_PORT  = 3022
  35. LFS_START_SERVER = true
  36. LFS_CONTENT_PATH = <绝对路径>/Path/data/lfs
  37. LFS_JWT_SECRET   = <SECRET>
  38. OFFLINE_MODE     = false
  39. [mailer]
  40. ENABLED = true
  41. HOST    = smtp.sina.com:465
  42. FROM    = user_name@sina.com
  43. USER    = user_name@sina.com
  44. PASSWD  = user_password
  45. [service]
  46. REGISTER_EMAIL_CONFIRM            = true
  47. ENABLE_NOTIFY_MAIL                = true
  48. DISABLE_REGISTRATION              = false
  49. ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
  50. ENABLE_CAPTCHA                    = true
  51. REQUIRE_SIGNIN_VIEW               = true
  52. DEFAULT_KEEP_EMAIL_PRIVATE        = false
  53. DEFAULT_ALLOW_CREATE_ORGANIZATION = false
  54. DEFAULT_ENABLE_TIMETRACKING       = true
  55. NO_REPLY_ADDRESS                  = noreply.example.org
  56. [picture]
  57. DISABLE_GRAVATAR        = true
  58. ENABLE_FEDERATED_AVATAR = false
  59. [openid]
  60. ENABLE_OPENID_SIGNIN = false
  61. ENABLE_OPENID_SIGNUP = false
  62. [session]
  63. PROVIDER = file
  64. [attachment]
  65. ENABLED       = true
  66. PATH          = <绝对路径>/Path/data/attachments
  67. ALLOWED_TYPES = image/jpeg|image/png|application/zip|application/gzip
  68. MAX_SIZE      = 4
  69. MAX_FILES     = 5
  70. [log]
  71. MODE      = file
  72. LEVEL     = Info
  73. ROOT_PATH = <绝对路径>/Path/log
  74. [other]
  75. SHOW_FOOTER_TEMPLATE_LOAD_TIME = false
复制代码
10. 主题配置

主题文件主要是 CSS 文件,需要添加到:
  1. ${CUSTOM_PATH}/public/assets
  2. /css/
复制代码
theme-<theme-name>.css 格式定名。一样平常主题堆栈下的 CSS 文件已经按指定格式定名好了,直接下载到 CSS 目录即可。
有的主题还附加了图片等文件,也都放置在:
  1. ${CUSTOM_PATH}/public/assets
复制代码
${CUSTOM_PATH} 可通过 -w 或 -C 参数指定,也可在 app.ini 文件中指定:
  1. WORK_PATH = /Path/to/Gitea/Work/Dir
复制代码
之以是指定 ${WORK_PATH},是因为默认情况下 ${CUSTOM_PATH} 等于 ${WORK_PATH}/custom。
添加好的主题可在个人 设置->表面 中举行选择。主题与 Gitea 版本密切相干,很多第三方主题由于没有及时更新,大概和最新版本之间存在兼容问题,导致显示异常。因此定制主题后需要举行充分验证。
如果添加的主题没有出现在 设置->表面 中,或主题显示异常,大概是 app.ini 配置异常。app.ini 中的相干配置在 UI (ui) 配置下,主要是 DEFAULT_THEME 和 THEMES:


  • DEFAULT_THEME:gitea-auto: Set the default theme for the Gitea installation, custom themes could be provided by ${CustomPath}/public/assets/css/theme-<theme-name>.css.
  • THEMES:empty: All available themes by ${CustomPath}/public/assets/css/theme-<theme-name>.css. Allow users select personalized themes.
11. Linux 下利用代理实现堆栈迁徙和镜像

经常利用 Gitea 来迁徙或备份 Github 上的堆栈,若不利用代理则经常迁徙失败。因此需要为堆栈迁徙功能配置代理,实际上就是为 Gitea 配置代理。
我们知道,Linux 下可以利用:
  1. export https_proxy=127.0.0.1:7890 http_proxy=127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
复制代码
来为下令行程序设置代理。
但是当 Gitea 作为 Systemd 服务启动时这个代剖析失效。办理办法是通过 Systemd 的 Environment 来配置。例如 Gitea 的服务文件为 gitea.service,修改 Environment 如下:
  1. [Unit]
  2. Description=Gitea (Git with a cup of tea)
  3. [Service]
  4. ExecStart=/Path/to/gitea
  5. Environment=https_proxy="127.0.0.1:7890" http_proxy="127.0.0.1:7890" all_proxy="socks5://127.0.0.1:7891"
复制代码
然后执行下列下令使配置生效:
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart gitea
复制代码
12. 备份与恢复

12.1. 备份

Gitea 已经实现了 dump 下令可以用来备份全部需要的文件到一个zip压缩文件。该压缩文件可以被用来举行数据恢复。
先转到 git 用户的权限: su git. 再 Gitea 目录运行 ./gitea dump。一样平常会显示雷同如下的输出:
  1. 2016/12/27 22:32:09 Creating tmp work dir: /tmp/gitea-dump-417443001
  2. 2016/12/27 22:32:09 Dumping local repositories.../home/git/gitea-repositories
  3. 2016/12/27 22:32:22 Dumping database...
  4. 2016/12/27 22:32:22 Packing dump files...
  5. 2016/12/27 22:32:34 Removing tmp work dir: /tmp/gitea-dump-417443001
  6. 2016/12/27 22:32:34 Finish dumping in file gitea-dump-1482906742.zip
复制代码
最后生成的 gitea-dump-1482906742.zip 文件将会包罗如下内容:


  • custom - 全部生存在 custom/ 目录下的配置和自定义的文件。
  • data - 数据目录下的全部内容不包罗利用文件session的文件。该目录包罗 attachments, avatars, lfs, indexers, 如果利用sqlite 还会包罗 sqlite 数据库文件。
  • gitea-db.sql - 数据库dump出来的 SQL。
  • gitea-repo.zip - Git堆栈压缩文件。
  • log/ - Logs文件,如果用作迁徙不是必须的。
中央备份文件将会在临时目录举行创建,如果您要重新指定临时目录,可以用 --tempdir 参数,或者用 TMPDIR 环境变量。
12.2. 恢复

当前还没有恢复下令,恢复需要人工举行。主要是把文件和数据库举行恢复。
例如:
  1. unzip gitea-dump-1610949662.zip
  2. cd gitea-dump-1610949662
  3. mv data/conf/app.ini /etc/gitea/conf/app.ini
  4. mv data/* /var/lib/gitea/data/
  5. mv log/* /var/lib/gitea/log/
  6. mv repos/* /var/lib/gitea/repositories/
  7. chown -R gitea:gitea /etc/gitea/conf/app.ini /var/lib/gitea
  8. # mysql
  9. mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE <gitea-db.sql
  10. # sqlite3
  11. sqlite3 $DATABASE_PATH <gitea-db.sql
  12. # postgres
  13. psql -U $USER -d $DATABASE < gitea-db.sql
  14. service gitea restart
复制代码
13. 外部参考资料


  • 官方网站
  • 下载毗连

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表