背景

有段时间没有搞nas了,这次部署一个代码仓库项目。

Gitea 简介

Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

功能特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
支持活动时间线
支持 SSH 以及 HTTP/HTTPS 协议
支持 SMTP、LDAP 和反向代理的用户认证
支持反向代理子路径
支持用户、组织和仓库管理系统
支持添加和删除仓库协作者
支持仓库和组织级别 Web 钩子(包括 Slack 集成)
支持仓库 Git 钩子和部署密钥
支持仓库工单(Issue)、合并请求(Pull Request)以及 Wiki
支持迁移和镜像仓库以及它的 Wiki
支持在线编辑仓库文件和 Wiki
支持自定义源的 Gravatar 和 Federated Avatar
支持邮件服务
支持后台管理面板
支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(MySQL) 数据库
支持多语言本地化(21 种语言)

Gitea 部署

  1. 创建用于持久化存储 GitLab 数据的目录(命名规则参考)
    /mnt/sda1-16t/data/gitea

创建存储卷,nfs映射到pve目录。

  1. 通过 Portainer 管理面板创建一个 Gitea 和 MariaDB 专用的网络。

之前我们使用photoprism创建过,这次共用photoprism-net的网络就可以。

photoprism-net 网络中有 MariaDB 和 phpmyadmin

  1. 登录之前创建的 phpMyAdmin 管理页面,为 Gitea 创建专用数据库和账户

点击管理页面 – 账户 – 新增用户账户
1.png
用户名填写 gitea,密码填写 insecure,勾选 创建与用户同名的数据库并授予所有权限,然后点击底部的执行。(账户和密码可自行修改)
2.png

  1. 点击 portainer 控制面板左侧 Stacks(堆栈) ,在该页面中点击 Add stack(新建)

为 Stack 命名,根据需要修改下面提供的模板并粘贴到页面上,然后点击页面底部 Deploy the stack 完成创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "3"

services:
server:
image: gitea/gitea:latest # latest 安装最新的版本
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=mysql
- DB_HOST=mariadb:3306
- DB_NAME=gitea
- DB_USER=gitea # 刚才 phpMyadmin 填写的账户
- DB_PASSWD=insecure # 刚才 phpMyadmin 填写的密码
- TZ=Asia/Shanghai
restart: always # 设置重启策略
volumes:
- "/var/lib/docker/volumes/gitea/_data:/data" # Gitea 数据目录,冒号前面的部分,我这是存储卷
ports:
- "3000:3000" # HTTP 网页访问端口,例如要改为通过 6001 端口访问,就修改成 6001:3000
- "2221:22" # SSH 端口
networks:
photoprism-net: #共用的网络

networks:
photoprism-net: #共用的网络
external: true

登录

创建成功后,你可以通过打开 Web 浏览器并转到以下位置登录到您的 Gitea 实例:

http://localhost:3000 # 运行安装向导后,首次注册的账户将成为默认的管理员

安装成功,自动进入首页
5.png

如果您不是在本机安装,请不要忘记将 localhost 替换为安装设备的实际 IP 地址
如果您修改了默认的 HTTP 访问端口,请不要忘记将 3000 替换为您自定义的端口