对比

https://docs.gitea.io/zh-cn/comparison/

gitea

https://docs.gitea.io/zh-cn/install-with-docker/

常见问题

SMTP无法使用

由于默认先使用25端口进行连接,但很多云服务商已经禁用25端口,所以会出现授权超时情形。
修改方式:链接
或直接使用镜像:

docker pull jnan77/zc-gitea:1.14.2.r1

使用docker-compose部署

  1. gitea:
  2. image: gitea/gitea:1.14.2
  3. container_name: gitea
  4. environment:
  5. - RUN_MODE=prod
  6. - USER_UID=1000
  7. - USER_GID=1000
  8. #- ROOT_URL=
  9. - DB_TYPE=mysql
  10. - DB_HOST=mysql
  11. - DB_NAME=gitea
  12. - DB_USER=zc
  13. - DB_PASSWD=Mydb2018
  14. - SECRET_KEY=11232323232dsfsfdsfdsfsd
  15. - INSTALL_LOCK=false
  16. #- DISABLE_REGISTRATION=
  17. restart: always
  18. networks:
  19. - custom_net1
  20. volumes:
  21. - ./gitea/data:/data
  22. ports:
  23. - "3000:3000"
  24. - "222:22"
  25. depends_on:
  26. - mysql

配置参数

(默认值以粗体显示)

  • APP_NAME:“Gitea: Git with a cup of tea”:应用程序名称,在页面标题中使用。
  • RUN_MODE:prod:应用程序运行模式,会影响性能和调试。“dev”,“prod”或”test”。
  • DOMAIN:localhost:此服务器的域名,用于 Gitea UI 中显示的 http 克隆 URL。
  • SSH_DOMAIN:localhost:该服务器的域名,用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安装页面,则 SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
  • SSH_PORT:22:克隆 URL 中显示的 SSH 端口。
  • SSH_LISTEN_PORT:%(SSH_PORT)s:内置 SSH 服务器的端口。
  • DISABLE_SSH:false:如果不可用,请禁用 SSH 功能。如果要禁用 SSH 功能,则在安装 Gitea 时应将 SSH 端口设置为 0。
  • HTTP_PORT:3000:HTTP 监听端口。
  • ROOT_URL:“”:覆盖自动生成的公共 URL。如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
  • LFS_START_SERVER:false:启用 git-lfs 支持。
  • DB_TYPE:sqlite3:正在使用的数据库类型[mysql,postgres,mssql,sqlite3]。
  • DB_HOST:localhost:3306:数据库主机地址和端口。
  • DB_NAME:gitea:数据库名称。
  • DB_USER:root:数据库用户名。
  • DB_PASSWD: :数据库用户密码。如果您在密码中使用特殊字符,请使用“您的密码”进行引用。
  • INSTALL_LOCK:false:禁止访问安装页面。
  • SECRET_KEY:“” :全局密钥。这应该更改。如果它具有一个值并且 INSTALL_LOCK 为空,则 INSTALL_LOCK 将自动设置为 true。
  • DISABLE_REGISTRATION:false:禁用注册,之后只有管理员才能为用户创建帐户。
  • REQUIRE_SIGNIN_VIEW:false:启用此选项可强制用户登录以查看任何页面。
  • USER_UID:1000:在容器内运行 Gitea 的用户的 UID(Unix 用户 ID)。如果使用主机卷,则将其与 /data 卷的所有者的 UID 匹配(对于命名卷,则不需要这样做)。
  • USER_GID:1000:在容器内运行 Gitea 的用户的 GID(Unix 组 ID)。如果使用主机卷,则将其与 /data 卷的所有者的 GID 匹配(对于命名卷,则不需要这样做)

    配置ssh

    https://docs.gitea.io/zh-cn/install-with-docker/
    注意:

  • LOCAL_ROOT_URL 不能修改,即默认使用3000端口 ```bash

    创建git用户,并删除密码,可通过/etc/passwd 查看

    groupadd git && useradd git && useradd git -g git && passwd -d git

    clone 项目出现 unrecognized command 则需要 usermod -s /bin/bash git

    挂载本地git用户的ssh到容器

    volumes:

    • /home/git/.ssh/:/data/git/.ssh

      在主机上创建 SSH 密钥对。该密钥对将用于向主机验证主机上的 git 用户

      sudo -u git ssh-keygen -t rsa -b 4096 -C “Gitea Host Key” echo “$(cat /home/git/.ssh/id_rsa.pub)” >> /home/git/.ssh/authorized_keys

创建命令

mkdir -p /app/gitea/ && touch /app/gitea/gitea && chmod +x /app/gitea/gitea 写入内容:ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 “SSH_ORIGINAL_COMMAND=\”$SSH_ORIGINAL_COMMAND\” $0 $@”

暴露端口(与命令中端口保持一致)

ports:

[…]

  • “127.0.0.1:2222:22”
  1. <a name="WCg9M"></a>
  2. ## gogs
  3. [https://gogs.io/](https://gogs.io/)
  4. <a name="wppDR"></a>
  5. ### 使用docker-compose部署
  6. ```bash
  7. image: gogs/gogs
  8. ports:
  9. - "3000:3000"
  10. - "3022:22"
  11. volumes:
  12. - "./gogs/config:/data/gogs/conf" #app.ini
  13. - "./gogs/logs:/app/gogs/log"
  14. - "./gogs/data:/app/gogs/data"

app.ini

  1. BRAND_NAME = 我的Git
  2. RUN_USER = git
  3. RUN_MODE = prod
  4. [database]
  5. TYPE = mysql
  6. HOST = 10.0.2.69:3306
  7. NAME = gogs
  8. USER = zc
  9. PASSWORD = pass
  10. SSL_MODE = disable
  11. PATH = /app/gogs/data/gogs.db
  12. [repository]
  13. ROOT = /app/gogs/data/repositories
  14. [server]
  15. DOMAIN = localhost
  16. HTTP_PORT = 3000
  17. EXTERNAL_URL = http://localhost:3000/
  18. DISABLE_SSH = false
  19. SSH_PORT = 22
  20. START_SSH_SERVER = false
  21. OFFLINE_MODE = false
  22. [mailer]
  23. ENABLED = false
  24. [auth]
  25. REQUIRE_EMAIL_CONFIRMATION = false
  26. DISABLE_REGISTRATION = true
  27. ENABLE_REGISTRATION_CAPTCHA = false
  28. REQUIRE_SIGNIN_VIEW = true
  29. [user]
  30. ENABLE_EMAIL_NOTIFICATION = false
  31. [picture]
  32. DISABLE_GRAVATAR = false
  33. ENABLE_FEDERATED_AVATAR = true
  34. [session]
  35. PROVIDER = file
  36. [log]
  37. MODE = file
  38. LEVEL = Info
  39. ROOT_PATH = /app/gogs/log
  40. [security]
  41. INSTALL_LOCK = true
  42. SECRET_KEY = 0LGvlry