玩客云折腾之路
基于Armbian,完成docker、挂载U盘、gitea部署等
文章目录
- 玩客云折腾之路
- 前言
- 一、Git托管工具的选择?
- 二、Gitea安装步骤
- 1. docker安装(失败)
- 2.二进制安装
- 安装数据库
- 创建用户
- 安装Gitea
- 下载
- 配置目录
- 个性化目录配置-U盘
- 创建自启服务
- 配置Gitea
前言
记录一下玩客云如何安装gitea,实现代码的托管。由于Docker镜像无Armv7镜像,需要通过命令行运行可执行文件。
之所以采用玩客云,主要是为了功耗和无感,玩客云可以长期7*24h运行,功耗几乎不计,且对个人而言,运行Gitea稳定够用。
一、Git托管工具的选择?
针对代码托管服务器,最出名的是Githab,但若是为了安全、网速、团队协作等原因,需要自己搭建托管服务器,可以选择Gitlab、Gitea等。
Gitlab 是完整的 git 集成环境,包含 npm,nuget,docker registry 等私有集成,还有完整的 CI/CD,k8s 集成方案,搭建首选。Gitea较轻量化,具有git管理和wiki功能,无CI/CD功能。
Gitlab,官方推荐最低物理配置为2核4G,针对玩客云,部署过后完全无法启动。因此,最终选择了Gitea,本文针对Gitea部署展开细述。
二、Gitea安装步骤
1. docker安装(失败)
首先想到的都会通过docker进行安装,根据docker安装报错,去docker hub查找,并无armv7镜像,只有armv8镜像。因此通过
root@aml-s812:~# docker pull gitea/gitea
Using default tag: latest
latest: Pulling from gitea/gitea
latest: Pulling from gitea/gitea
no matching manifest for linux/arm/v7 in the manifest list entries
Armv8为64位架构,与Armv7并不兼容,下表是Arm Community - V8与V7的对比
特性 | ARM V8 | ARM V7 |
指令集 | 64位指令集 AArch64, 并且兼容32位指令集 AArch32 | 32位指令集 A32 和16位指令集 T16 |
支持地址长度 | 64位 | 32位 |
通用寄存器 | 31个 x0-x30(64位)或者 w0-w30(32位) | 15个, r0-r14 (32位) |
异常模式 | 4层结构 EL0-EL3 | 2层结构vector table |
NEON | 默认支持 | 可选支持 |
LAPE | 默认支持 | 可选支持 |
Virtualization | 默认支持 | 可选支持 |
big.LITTLE | 支持 | 支持 |
TrustZone | 默认支持 | 默认支持 |
SIMD寄存器 | 32个 X 128位 | 32个 X 64位 |
因此,我们选择通过二进制安装Gitea。
2.二进制安装
安装数据库
Gitea支持SQLite、PostgreSQL和MySQL/MariaDB作为数据库后端。针对玩客云,选择了轻量化的SQLite
apt update
apt install sqlite3
创建用户
Gitea无法使用root权限用户运行,在此创建一个独立账户git去运行Gitea。
#创建一个新的系统用户,将通过键入以下命令来运行Gitea应用程序:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
# 该命令将创建一个名为git的新用户和组,并将主目录设置为/home/git,输出将如下所示:
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...
安装Gitea
下载
访问Gitea下载页面(地址:https://dl.gitea.io/gitea/),选择linux-arm-6的安装文件,通过wget下载。比如,此处选择1.16.7版本。
wget -O /tmp/gitea https://dl.gitea.io/gitea/1.16.7/gitea-1.16.7-linux-arm-6
mv /tmp/gitea /usr/local/bin # 一般二进制文件存放此处
chmod +x /usr/local/bin/gitea # 可执行权限
配置目录
主要参考英文版的安装教程,中文版砍去了该部分配置。
官网:https://docs.gitea.io/en-us/install-from-binary/
以下是官网推荐的目录结构配置,运行以下命令以创建目录并设置所需的权限和所有权:
mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
chown git: /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
个性化目录配置-U盘
创建自启服务
Gitea提供了已配置为与我们的设置匹配的Systemd单位文件。
通过键入以下命令将文件下载到/etc/systemd/system/目录:
wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
# 完成后,启用并启动Gitea服务:
systemctl daemon-reload
systemctl enable --now gitea
配置Gitea
Gitea默认端口3000,初次打开http://YOUR_DOMAIN_IR_IP:3000会提示进行配置。