Armbian搭建本地Gitea服务器
创始人
2024-03-17 15:44:53
0

Armbian搭建本地Gitea服务器

请添加图片描述

1 安装Docker

Docker 是一个用于开发、发布和运行应用程序的开放平台。

Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

1.1 打开Armbian软件中心,安装Docker
sudo armbian-software

请添加图片描述

未安装的软件:状态显示为 not-installed,输入软件对应的 ID 即可 安装

已安装的软件:状态显示为 installed,输入软件对应的 ID ,根据提示选择 更新删除
在这里插入图片描述

等待安装成功。

2 Docker安装Gitea

Gitea 提供了标准的容器镜像(gitea/gitea),统一支持 SQLite、MySQL、PostgreSQL 和 SQL Server 作为数据库后端。每个版本的镜像同时支持两种主流的处理器体系结构 amd64arm64/v8

查看Armbian 系统架构

$> uname -aLinux armbian 5.15.80-flippy-79+o #193 SMP PREEMPT Sat Nov 26 20:38:02 CST 2022 aarch64 GNU/Linux

AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新的构架,完全使用全新的 A64 指令集。

2.1 创建git服务器单独管理账户

直接使用root用户存在较大风险,通常git服务器使用单独的管理账户,这里创建一个名为git的用户并禁用登录。

sudo adduser --disabled-login --gecos 'Gitea' git
sudo su git
2.2 创建工作目录

创建工作目录前,首先查看自己新创建的git账户的UID/GID,用于后续授予正确的用户组权限

git@armbian:~/gitea$ cat /etc/passwd......git:x:1001:1001:Gitea,,,:/home/git:/usr/bin/bash

首先创建一个 gitea 工作目录,后续工作都在这个目录下完成。

mkdir ~/gitea && cd ~/gitea# 预先创建 data 和 config 目录,稍后用于数据挂载
mkdir data config
# 授予正确的用户组权限
chown 1001:1001 data config
2.3 创建 docker-compose.yml

使用下面的模板创建 docker-compose.yml,这里使用到的镜像是 gitea/gitea:1.17.3

镜像默认使用 UID/GID 1000:1000 作为程序运行的用户组,为了保证 gitea 程序挂载权限正确的数据目录,我们在前面的步骤中预先创建了 dataconfig 目录。

version: "3"networks:gitea:external: falseservices:server:image: gitea/gitea:1.17.3container_name: giteaenvironment:- USER_UID=1001- USER_GID=1001restart: alwaysnetworks:- giteavolumes:- ./data:/var/lib/gitea- ./config:/etc/gitea- ./gitea:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:roports:- "3000:3000"- "2222:2222"

几个重要的参数说明:

  • volumes:数据挂载
    • ./data:/data,将主机当前目录下的 data 目录挂载到容器内的 /var/lib/gitea 目录。/data 是 Gitea 标准容器的数据存储点,包含了 Git 仓库、SQLite 数据库文件、缓存文件等。
    • ./config:/etc/gitea 挂载 Gitea 的 app.ini 配置文件所在的目录。
    • /etc/timezone:/etc/timezone:ro 用于指定时区
    • /etc/localtime:/etc/localtime:ro 同上,用于指定本地时间
  • ports:端口映射
    • 3000:3000 HTTP 端口,从左到右的顺序是从主机映射到 Docker 容器。在此,您可以通过 http://127.0.0.1:3000 直接访问到 Gitea 的 Web 界面,或通过反向代理引擎提供更具有扩展性的 SSL 集成,例如 Nginx。
    • 2222:2222 SSH 端口。这里主机侧暴露的端口为 2222 避免了与默认 SSH 服务端口冲突。禁用 SSH 时删除端口转发即可。如果您希望将主机完全作为 Gitea 服务器,可以将主机配置文件 /etc/ssh/sshd_config 中的端口 Port 22 更改为其他值,使得 Docker 可以使用 Gitea 内建的 Go SSH 或 OpenSSH 占用 22 端口作为 Git 服务。
2.4 启动Gitea实例

使用 docker compose 命令拉取镜像并启动 Gitea 实例:

# 终端中执行 su 命令,然后输入密码,从普通用户切换为根用户
su# 拉取镜像并启动 Gitea 
docker compose up -d

docker compose ps 查看容器:

root@armbian:/home/git/gitea# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
gitea               "/usr/bin/entrypoint…"   server              running             0.0.0.0:2222->2222/tcp, :::2222->2222/tcp, 22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

docker compose logs -f 查看容器日志:

root@armbian:/home/git/gitea# docker compose logs -f
gitea  | Generating /data/ssh/ssh_host_ed25519_key...
gitea  | Generating /data/ssh/ssh_host_rsa_key...
gitea  | Generating /data/ssh/ssh_host_dsa_key...
gitea  | Generating /data/ssh/ssh_host_ecdsa_key...
gitea  | Server listening on :: port 22.
gitea  | Server listening on 0.0.0.0 port 22.
gitea  | 2022/12/04 13:51:08 cmd/web.go:106:runWeb() [I] Starting Gitea on PID: 19
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /app/gitea
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /data/gitea
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /data/gitea/log
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /data/gitea/conf/app.ini
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
gitea  | 2022/12/04 13:51:08 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
gitea  | 2022/12/04 13:51:10 cmd/web.go:217:listen() [I] [638c354e] Listen: http://0.0.0.0:3000
gitea  | 2022/12/04 13:51:10 cmd/web.go:221:listen() [I] [638c354e] AppURL(ROOT_URL): http://localhost:3000/
gitea  | 2022/12/04 13:51:10 ...s/graceful/server.go:61:NewServer() [I] [638c354e] Starting new Web server: tcp:0.0.0.0:3000 on PID: 19

当看到上述日志的时候可以认为实例已经启动了,在浏览器中输入 http://192.168.1.118:3000/ 即可登陆 Gitea 实例进行初始化设置。这里的实际IP地址是:

http://192.168.1.118:3000/
2.5 登录Gitea

首次安装 Gitea 后,在浏览器中输入 http://192.168.1.118:3000/ 访问初始化页面,按需设置服务器信息。第一个注册的用户账号为管理账号,也可以在下面服务器配置 管理员账户配置 中提前进行设置。

注:下面 基础URL 需要修改成自己的服务器ip,这里的设置为:

http://192.168.1.118:3000/

请添加图片描述

至此就已完成 Docker 的方式来成功安装和运行了 Gitea 实例。

3 代码仓库效果展示

请添加图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...