23

如何用 docker 部署 gitea 并开启两步认证 - IO10|PangJian's Blog

 4 years ago
source link: https://www.pangjian.me/2020/02/17/how-to-deploy-gitea-with-docker/?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

GiteaGogs 的 fork 版本,是一个可以自行搭建的 git 服务器。两者均是开源的,托管在 github 上。有了 Gogs 为什么又会有 Gitea 呢, 是由于社区认为 Gogs 的管理模式不利于社区发展, 于是自立门户, 他们之间的恩怨情仇我们不去讨论, 有兴趣的可以看这个,传送门。我为什么选择 Gitea 呢?是因为 Gogs 已经大半年没更新过版本了,Gitea 维护非常积极。但是,说到底 Gitea 和 Gogs 差异不大,部署流程也是大同小异。

我打算部署在我的 vps 上,是购买的 Vultr 的。如果你也有 Vps 需求,可以使用 我的链接 注册,这样你我都会有 $10 奖励。
操作系统:Ubuntu 18.04
我使用了 DaoCloud 管理了我的 VPS 上所有的 Docker 镜像,我所有的应用都已经 Docker 化了,并且设置了自动部署,后续可能会写篇文章做一下介绍。

我的 Docker 清单

"我的 Docker 清单"

安装 Gitea

配置 DaoCloud 的步骤这里省略了。本文基于你已经配置好 VPS 和 DaoCloud 服务了。
因为 Git 服务器需要存储数据,是存储在容器外的,所以我们先在 VPS 上创建一个文件夹用来存储数据。

BASH
mkdir /gitea

在 Daocloud 的发现镜像菜单可以直接搜索 docker hub 内容,可以搜索到 gitea 的官方镜像 gitea/gitea。

搜索镜像

"搜索镜像"

在镜像出点击“部署”

部署

在容器配置页面配置上对应的参数, 分别是端口映射和数据存储路径

设置

容器的 3000 端口对应的是 web 服务的端口,这里我们按照官方习惯映射为 10080。22 为 ssh 端口,我们映射为 10022。容器的数据路径 /var/lib/gitea 映射为我们刚才创建的 /gitea。最后点击立即部署,等待部署完成,就可以通过http:// 你的 ip 或域名:10080 访问 gitea 了。

gitea

"gitea"

接着设置一下管理员账号和一些初始化参数, 就可以正常使用了。

Gitea 最基础只有用户名和密码来保护你的账户,这样还是不太放心,可以利用支持的两步认证功能来加强账户安全,更好的保护托管在上面的代码。这样每次登录都需要输入一个 6 位动态验证码,这样即使密码泄露,也无法登录账户。

设置两步认证

Gitea 和 Gogs 其实都是支持的。
首先登录账号,然后在设置 - 安全里面可以看见两步认证的选项,有一个大大的二维码。添加两步认证非常简单,使用两步认证器 App 扫描二维码就可以。市面上有很多的两步认证验证器。我测试可以的有下面这几个。

  • Step Two:界面美观,可惜只有 iOS 版本。下载链接
  • 宁盾令牌: iOS 和 Android 都支持。下载链接
    Otp

    "Otp"

同步代码的设置

因为开启了两步认证,我们无法在通过 basic 认证同步代码。那怎么办呢?答案是我们可以使用 access token。access token 类似 Gitea 给你生成了一个非常长的密码,你可以使用用户名 +access token 来同步代码。
在个人设置 - 应用菜单里面可以生成一个 access token。生成完成以后记得拷贝出来,因为页面关闭以后就再也无法看到了。

access token

"access token"

如何避免每次同步都输入 access token

在已经 clone 到本地的 git 仓库里面找到 .git 文件夹,打开 config 文件。修改 remote 里的 url,在域名前面加入”用户名:accesstoken@”,比如原来是 http://example.com/pangjian/test.git 改为 http://pangjian:[email protected]/pangjian/test.git
这样, 每次同步都不用再输入 access token 了。至此,就全部设置完成了。

Powered By Valine
v1.4.14

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK