参考文献:
https://www.yeboyzq.com/linux/ruanjiananzhuangweihu/1012.html
https://www.jianshu.com/p/d92fd42bb391
一、拉取镜像:
docker pull gogs/gogs
可以对gogs镜像进行二次编辑,Dockerfile如下:
FROM gogs/gogs
RUN echo 'root:admin123' | chpasswd \
&& echo 'git:321#@!' | chpasswd
View Code
二、需要映射的目录:
/data 和 /app/gogs
docker-compose.yaml文件
version: "3"
services:
gogs:
image: gogs/gogs
container_name: gogs
ports:
- "22:22"
- "3000:3000"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data
- ./gogs:/app/gogs
restart: always
external_links:
- mysql
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
- mynet
networks:
mynet:
external: true
View Code
三、使用compose文件启动容器
四、在配置gogs前,需要有一个数据库,并新建数据库gogs,配置用户名密码
登录gogs:http://ip:3000,并填写配置信息
以上信息填写正确后,点击立即安装,即可安装完成。
五、配置调整
任何修改都是发生在 custom/conf/app.ini
自定义配置文件中
概览
名称 | 描述 |
| 应用名称,可以改成您的组织或公司名称 |
| 运行应用的用户名称,我们建议您使用 |
| 鉴于性能和其它考虑,建议在部署环境下修改为 |
服务器 (server
)
名称 | 描述 |
|
|
| 服务器域名 |
| 公开的完整 URL 路径 |
| 应用 HTTP 监听地址 |
| 应用 HTTP 监听端口号 |
| Unix 套接字文件的权限 |
| 用于 Gogs 工作进程(如:SSH)回访应用的本地(DMZ)URL,一般情况下请保持默认值,除非您的 SSH 服务器节点与 HTTP 并不是同一个节点入口 |
| 当 SSH 功能不可用时可以禁用 |
| 启用该选项来启动内置 SSH 服务器 |
| 允许公用网络访问 SSH 的域名 |
| SSH 端口号,如果不为 |
| 内置 SSH 服务器监听的地址 |
| 内置 SSH 服务器监听的端口 |
| SSH 根目录,一般为 |
| 激活该选项以在应用启动时自动重写 |
| 用于测试 SSH 公钥的临时目录 |
|
|
| 指定不同类型的公钥的最小密钥大小 |
| 激活该选项来禁止从 CDN 获取静态资源,同时 Gravatar 服务也将被自动禁用 |
| 激活该选项来禁止打印路由日志 |
| HTTPS 授权文件路径 |
| HTTPS 的密钥文件路径 |
| 模板文件和静态文件的上级目录,默认为应用二进制所在的位置 |
| 应用内部数据的存放目录 |
| 激活该选项来启用应用级别 GZIP 支持 |
| 未登录用户的默认首页,可以是 |
仓库 (repository
)
名称 | 描述 |
| 用户仓库存储根目录,必须为绝对路径,默认为 |
| 系统脚本类型,一般情况下均为 |
| 当遇到无法识别的字符集时使用的默认字符集 |
| 强制要求所有新建的仓库都是私有的 |
| 全局默认的每个用户可创建创建仓库上限, |
| 建议用户首选的授权类型 |
| 激活该选项来禁止用户通过 HTTP 对 Git 仓库进行交互操作,即用户只能通过 SSH 操作 |
| 激活该选项来启用本地路径迁移仓库功能。启动后默认只有管理员可以使用,普通用户必须经由管理员授权 |
仓库 - 编辑器 (repository.editor
)
名称 | 描述 |
| 需要显示为行包装的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如: |
仓库 - 文件上传 (repository.upload
)
名称 | 描述 |
| 激活该选项来启用仓库文件上传功能 |
| 文件上传的临时存放目录 |
| 允许上传的文件类型(例如:”image/jpeg|image/png”),留空表示允许上传任意类型的文件 |
| 单个上传的文件的最大体积,以 MB 为单位 |
| 单次同时上传的最多文件个数 |
版本发布 - 附件 (release.attachment
)
名称 | 描述 |
| 激活该选项来启用版本发布附件功能 |
| 存放附件的路径 |
| 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 |
| 最大允许上传的附件体积,单位为 MB,例如 |
| 最大允许一次性上传的附件个数,例如 |
Markdown (markdown
)
名称 | 描述 |
| 指示是否启用硬性换行扩展 |
| 允许被解析为链接的自定义 URL 方案,例如 |
| 需要被渲染为 Markdown 格式的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如: |
Smartypants (smartypants
)
名称 | 描述 |
| 指示是否启用 Smartypants 扩展 |
HTTP (http
)
名称 | 描述 |
| 头信息 |
数据库 (database
)
名称 | 描述 |
| 数据库类型,可以是 |
| 数据库主机地址与端口 |
| 数据库名称 |
| 数据库用户名 |
| 数据库用户密码 |
| 仅限 PostgreSQL 使用 |
| 仅限 SQLite3 使用,数据库文件路径 |
应用管理 (admin
)
名称 | 描述 |
| 激活该选项来禁止普通用户(非管理员)创建组织 |
安全 (security
)
名称 | 描述 |
| 用于指示是否允许访问安装页面(该页面可以设置管理员帐号,因此该选项非常重要) |
| 全局的加密密钥,务必修改该值以确保您的服务器安全(会在每次安装时自动生成随机字符串) |
| 记住登录的天数 |
| 记录用户名的 Cookie 名称 |
| 记录用户自动登录信息的 Cookie 名称 |
| 反向代理认证用户的 Header 字段名 |
服务 (service
)
名称 | 描述 |
| 激活码的有效期,单位为分钟 |
| 重置密码的有效期,单位为分钟 |
| 激活该选项来要求注册用户必须验证邮箱,要求已启用 |
| 激活该选项来禁止用户注册功能,只能由管理员创建帐号 |
| 用于指示是否显示注册按钮 |
| 激活该选项来要求用户必须登录才能浏览任何页面 |
| 激活该选项来缓存 Gravatar 的头像 |
| 激活该选项来发送通知邮件给关注者,例如创建 issue 时,要求已启用 |
| 激活该选项来开启反向代理用户认证,请从 #165 了解更多信息 |
| 激活该选项来开启反向代理用户认证的自动注册功能 |
| 激活该选项来禁止检查响应类型的密钥最小长度 |
| 激活该选项以在用户注册时要求输入验证码 |
Web 钩子 (webhook
)
名称 | 描述 |
| 启动的 Web 钩子类型,可以是 |
| 发送通知的超时时间,以秒为单位 |
| 指示是否允许向具有非信任证书的地址发送通知 |
| Web 钩子历史页面每页显示记录条数 |
邮件 (mailer
)
名称 | 描述 |
| 启用该选项以激活邮件服务 |
| 邮件标题的前缀 |
| SMTP 主机地址与端口 |
| 禁用 HELO 操作 |
| HELO 操作的自定义主机名 |
| 不验证自签发证书的有效性 |
| 邮箱的来自地址,遵循 RFC 5322规范,可以是一个单纯的邮箱地址或者 |
| 邮箱用户名 |
| 邮箱密码 |
| 使用 |
备注:Gogs 仅支持使用 STARTTLS 的 SMTP 协议
缓存 (cache
)
名称 | 描述 |
| 缓存引擎适配器,可以为 |
| 仅限内存缓存使用,GC 周期,单位为秒 |
| 仅限 redis 和 memcache 使用,主机地址和端口号 |
- | Redis: |
- | Memache: |
会话 (session
)
名称 | 描述 |
| Session 引擎提供者,可以是 |
| 如果提供者为 file,则为文件根目录;如果为其它提供者,则为主机地址和端口号 |
| 激活该选项以要求所有 session 操作均通过 HTTPS |
| GC 周期,单位为秒 |
图片 (picture
)
名称 | 描述 |
| 存放用户上传头像的目录 |
| 可以是 |
| 激活该选项来仅使用本地头像 |
| 激活该选项来启用 Federated 头像服务(http://www.libravatar.org),当 Gravatar 被禁用时此选项无法生效 |
附件 (attachment
)
名称 | 描述 |
| 激活该选项以允许用户上传附件 |
| 存放附件的路径 |
| 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 |
| 最大允许上传的附件体积,单位为 MB,例如 |
| 最大允许一次性上传的附件个数,例如 |
时间 (time
)
名称 | 描述 |
| 指定日期的输出格式,默认为 RFC1123,其它可选的格式为 ANSIC、UnixDate、RubyDate、RFC822、RFC822Z、RFC850、RFC1123、RFC1123Z、RFC3339、RFC3339Nano、Kitchen、Stamp、StampMilli、StampMicro 和 StampNano。访问 http://golang.org/pkg/time/#pkg-constants 查看详情 |
日志 (log
)
名称 | 描述 |
| 日志文件的根目录 |
| 日志记录模式,默认为 |
| 基本日志级别,默认为 |
日志 - 控制台 (log.console
)
名称 | 描述 |
| 控制台日志级别,留空则继承父值 |
日志 - 文件 (log.file
)
名称 | 描述 |
| 控制台日志级别,留空则继承父值 |
| 激活该选项以启用日志文件自转 |
| 激活该选项以进行日常自转 |
| 自转需要达到的最大文件体积,使用位左移,默认为 28 即 1 << 28,表示 256MB |
| 自转需要达到的最大文件行数,默认为 |
| 保留自转文件的最长期限,默认为 |
日志 - Slack (log.slack
)
名称 | 描述 |
| 控制台日志级别,留空则继承父值 |
| Slack Web 钩子 URL |
Cron (cron
)
名称 | 描述 |
| 激活该选项以允许周期性运行 Cron 任务 |
| 激活该选项以允许在启动时执行 Cron 任务 |
Cron - 更新镜像 (cron.update_mirrors
)
名称 | 描述 |
| 定时更新仓库镜像的 Cron 语法,例如: |
Cron - 仓库健康检查 (cron.repo_health_check
)
名称 | 描述 |
| 定时进行仓库健康检查的 Cron 语法,例如: |
| 仓库健康检查超时的定义语法,例如: |
|
|
Cron - 仓库统计检查 (cron.check_repo_stats
)
名称 | 描述 |
| 激活该选项以在启动时执行仓库统计检查 |
| 定时进行仓库统计检查的 Cron 语法,例如: |
Cron - 仓库归档清理 (cron.repo_archive_cleanup
)
名称 | 描述 |
| 激活该选项以在启动时执行仓库归档清理 |
| 定时进行仓库归档清理的 Cron 语法,例如: |
| 仓库归档的文件有效期,过期的归档将被清理,例如: |
Git (git
)
名称 | 描述 |
| 激活该选项以禁用行内差异高亮 |
| 差异对比页面单个文件显示的最大行数 |
| 差异对比页面单行显示的最大字符数 |
| 差异对比页面文件显示的最多个数 |
|
|
Git - 超时 (git.timeout
)
名称 | 描述 |
| 仓库迁移操作超时,默认为 |
| 仓库镜像同步操作超时,默认为 |
| 仓库克隆操作超时,默认为 |
| 仓库拉取操作超时,默认为 |
| 仓库垃圾回收操作超时,默认为 |
UI (ui
)
名称 | 描述 |
| 探索页面每页显示仓库的数量 |
| 每页显示工单(Issue)的数量(应用到所有以列表形式显示工单的页面) |
| 一条最新活动中显示代码提交(Commit)的最大数量 |
| 被用于 Android >= 5.0 版本 “theme-color” 标记的值,无效的值将被忽略并使用默认值(查看详情) |
| 显示到页面的最大文件体积(Byte) |
UI - Admin (ui.admin
)
名称 | 描述 |
| 用户管理页面每页显示记录条数 |
| 仓库管理页面每页显示记录条数 |
| 系统提示管理页面每页显示记录条数 |
| 组织管理页面每页显示记录条数 |
其他 (other
)
名称 | 描述 |
| 激活该选项以在页脚显示 Gogs 推广信息 |
| 激活该选项以在页脚显示 Gogs 版本信息 |
| 激活该选项以在页脚显示 Gogs 模板加载时间 |
PS:以下文件为本人的app.ini,可提供参考
APP_NAME = Gogs
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = mysql:3306
NAME = gogs
USER = gogs
PASSWD = gogs
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /data/git/gogs-repositories
[server]
DOMAIN = 193.168.1.126
HTTP_PORT = 3000
ROOT_URL = http://193.168.1.126:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
SSH_ROOT_PATH = /home/git/.ssh
[mailer]
ENABLED = true
HOST = smtp.exmail.qq.com:465
FROM = codemanagement@***dom-bj.com
USER = codemanagement@***dom-bj.com
PASSWD = 3**1L****
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /app/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = iJvZe19kYcSbxYd
[repository.upload]
ALLOWED_TYPES =
FILE_MAX_SIZE = 900
MAX_FILES = 99999
[release.attachment]
MAX_SIZE = 900
MAX_FILES = 9999
View Code