极易搭建的代码托管平台Gitea

news2024/12/23 15:35:31

在这里插入图片描述

这礼拜有点霉啊,先是日常自用的机器上,SSD 挂了,彻底识别不了的那种

隔了两天,用来写文章用的小机器上, 500G 的机械硬盘也挂了,重新格了一下,挂在玩客云上当个下载盘用吧

在这里插入图片描述

好在都有备份,只是 Docker 的恢复有点麻烦, 比如:

  • HomeAssistant,用的是之前导出的 syno.txz重新导入的,配置文件也没动,但还是各种问题;
  • messense/aliyundrive-webdav 如果用 latest版本,Hyper Backup 备份时,日志中会显示 HTTP status client error (400 Bad Request) for url (https://openapi.aliyundrive.com/adrive/v1.0/openFile/get_by_path)
  • vaultwarden/server 如果用 latest 版本,登录时会一直报错 Username or Password is incorrect. Try again.,日志中则显示 (login) POST /identity/connect/token => 400 Bad Request

这礼拜,腾讯的 vps也到期了,正忙着切换到 cloudflare tunnel,想顺便把一些旧的镜像更新一下,但是几个都遇到了问题,花时间慢慢搞定吧


本文软件由网友 不长到一百四誓不改名 推荐;但老苏并不会使用,水平也就会用个 git clone 而已;

什么是 Gitea ?

Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOSWindows 以及各种架构,除了 x86amd64,还包括 ARMPowerPC

如果不想自己搭建,可以去访问在线 demo:https://try.gitea.io

安装

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 gitea 的空数据库。

为便于说明,假设数据库密码为 123456

在这里插入图片描述

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307,如果用 MariaDB 5 就是 3306,但老苏没测;
  • 数据库用户:gitea
  • 数据库密码:123456
  • 数据库库名:gitea,因为勾选了与用户同名;

安装镜像

在群晖上以 Docker 方式安装。

如果你熟悉命令行,可能用 docker cli 更快捷

老苏折腾时, latest 对应的版本是 1.19.3

# 新建文件夹 gitea 和 子目录
mkdir -p /volume2/docker/gitea/data

# 进入 gitea 目录
cd /volume2/docker/gitea

# 运行容器
docker run -d \
   --restart always \
   --name gitea \
   -p 3231:3000 \
   -p 222:22 \
   -v $(pwd)/data:/data \
   -v /etc/TZ:/etc/TZ:ro \
   -v /etc/localtime:/etc/localtime:ro \
   -e USER_UID=1000 \
   -e USER_GID=1000 \
   -e GITEA__database__DB_TYPE=mysql \
   -e GITEA__database__HOST=192.168.0.197:3307 \
   -e GITEA__database__NAME=gitea \
   -e GITEA__database__USER=gitea \
   -e GITEA__database__PASSWD=123456 \
   gitea/gitea:latest
可变
USER_UID在容器内运行 Gitea 的用户的 UID,默认设为 1000
USER_GID在容器内运行 Gitea 的用户的 GID,默认设为 1000
GITEA__database__DB_TYPE数据库类型
GITEA__database__HOST数据库主机
GITEA__database__NAME数据库库名
GITEA__database__USER数据库用户
GITEA__database__PASSWD数据库密码

更多的环境变量请看官方的文档:https://docs.gitea.cn/installation/install-with-docker#环境变量

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    volumes:
      - ./data:/data
      - /etc/TZ:/etc/TZ:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3231:3000"
      - "222:22"
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=192.168.0.197:3307  
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=123456

然后执行下面的命令

# 新建文件夹 gitea 和 子目录
mkdir -p /volume2/docker/gitea/data

# 进入 gitea 目录
cd /volume2/docker/gitea

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3231,第一次需要配置

老苏什么都没改,包括邮件设置和管理员也没设,后面再说

在这里插入图片描述

有个短暂的加载过程

在这里插入图片描述

紧接着就是登录界面

在这里插入图片描述

因为开始没有设置管理员,所以第一个注册的用户就是管理员

在这里插入图片描述

创建成功后的主界面

在这里插入图片描述

设置

在这里插入图片描述

管理后台

支持从其他仓库迁移

配置文件

Gitea 配置文件保存在 /data/gitea/conf/app.ini ,在 FileStation 中,对应的路径是 /docker/gitea/data/gitea/conf/app.ini

在这里插入图片描述

在对 app.ini 做任何修改前,需要添加 Everyone的读写权限

在这里插入图片描述

否则修改会无效

修改了设置后,需要重启容器才能让设置生效

禁用注册

如果要禁用注册,之后就只有管理员才能为用户创建帐户,虽然麻烦,但是可能更安全吧

一种方式是通过环境变量 DISABLE_REGISTRATION=true,另一种则是在 app.ini ,将DISABLE_REGISTRATIONfalse 改为 true

在这里插入图片描述

重启容器后,就不能再注册了

邮件设置

因为一开始初始化的时候,我们没有设置邮件,所以现在 app.ini 是下面这样的

[mailer]
ENABLED = false

如果要配置邮件服务,首先要将 ENABLED 改为 true,同时要添加下面的内容,当然不同的邮箱,设置是不一样的,这也是为什么老苏没有在开始设置的原因

[mailer]
ENABLED         = true
FROM            = wbsu2003@88.com
MAILER_TYPE     = smtp
HOST            = smtp.88.com:465
IS_TLS_ENABLED  = true
USER            = wbsu2003@88.com
PASSWD          = <第三方邮件客户端>

当创建用户时,如果勾选了邮件通知的话

在这里插入图片描述

很快就会收到邮件

在这里插入图片描述

客户端

Gitea 服务器使用的是 SSH 协议,并且 SSH 端口不是默认的 22 而是 222,老苏搜了一下,有两种方法:

以下内容老苏未验证,请大家自己甄别;

  • 第一种方法是在 Git 的远程仓库地址中指定端口号,例如: git remote add origin ssh://user@host:port/path/to/repo

  • 第二种是修改本地配置文件,可以在 Windows 下的 C:\Users\<YourUserName>\.ssh\config 文件中配置 SSH 的端口号,例如:

Host gitserver
    HostName gitserver.com
    Port 222
    User git

然后,您可以使用 git remote add origin git@gitserver:path/to/repo 来添加远程仓库。

参考文档

Gitea
地址:https://gitea.io/en-us/

gitea/README_ZH.md at main · go-gitea/gitea · GitHub
地址:https://github.com/go-gitea/gitea/blob/main/README_ZH.md

文档 | Gitea 官方文档
地址:https://docs.gitea.cn/

使用 Docker 安装 - Docs
地址:https://docs.gitea.io/en-us/install-with-docker/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[进阶]Java:文件字节输出流、文件拷贝、资源释放

文件字节输出流&#xff08;FileOutputStream&#xff09;写数据出去的API 流的关闭和刷新 代码演示如下&#xff1a; ​​​​​​​ public class OutputStreamDemo04 {public static void main(String[] args) throws Exception {//1.创建一个文件字节输出流管道与目标文件…

WPF开发txt阅读器14:通过C#代码设计UI布局

文章目录 需求分析C#代码UI设计 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录字体控件绑定&#x1f48e;前景/背景颜色书籍管理系统&#x1f48e;用树形图管理书籍语音播放&#x1f48e;播放进度显示&#x1f48e;快进快退&#x1f48…

ad18学习笔记六:ad18官方在线文档

这个挺有用&#xff0c;反正我是没找到离线的、完整的、详细的软件说明文档&#xff0c;只有去官网看在线的&#xff0c;有点卡&#xff0c;还是全英文的。 具体的位置直接进官网&#xff0c;比如这个&#xff1a; Board Region | Altium Designer 18.0 User Manual | Docume…

BOSHIDA AC DC电源模块在光纤通信设备的应用

BOSHIDA AC DC电源模块在光纤通信设备的应用 随着科技的不断发展&#xff0c;光纤通信技术逐渐成为人们日常生活和工作中广泛采用的一项技术。在光纤通信设/备中&#xff0c;稳定的电源模块是其正常运转的关键。AC DC电源模块在光纤通信设/备的应用也越来越广泛。 AC DC电源模…

清华青年AI自强作业hw3_1:用线性回归模型拟合MNIST手写数字分类

清华青年AI自强作业hw3_1&#xff1a;用线性回归模型拟合MNIST手写数字分类 实现过程思路分析逻辑回归二分类模型训练结果分析 相关链接 一起学AI系列博客&#xff1a;目录索引 hw3_1&#xff1a;用线性回归模型拟合MNIST手写数字分类 初步体验Tensorflow编程环境体会用回归模…

HDLBits自学笔记2:Verilog language.Vector

Vectors 建立一个电路&#xff0c;有一个3bit输入&#xff0c;输出这个向量&#xff0c;并将其分割为三个单独的1bit信号输出&#xff0c;电路图如下&#xff1a; module top_module ( input wire [2:0] vec,output wire [2:0] outv,output wire o2,output wire o1,output wir…

【30天熟悉Go语言】8 Go流程控制之循环结构for range、goto、break、continue

文章目录 一、前言二、for循环1、语法1&#xff09;和Java的for循环一样2&#xff09;和Java的while一样3&#xff09;和Java的for(;;)一样 2、for语句执行过程 三、for range1、语法1&#xff09;遍历key、value只遍历value 2&#xff09;遍历key 四、关键字1、break1&#xf…

【Rust日报】2023-06-18 2023第三届中国Rust开发者大会圆满结束

2023第三届中国Rust开发者大会 发布 Mailtutan v0.3.0 - 用于测试和开发环境的 SMTP 服务器 变更日志&#xff1a; 添加数据修剪支持添加邮件目录存储向 API 添加删除消息添加 TLS 支持添加 SMTP 普通身份验证支持 github: https://github.com/mailtutan/mailtutan/ Kani 0.30.…

测试工程师个人简历模板

测试工程师个人简历模板篇1 姓 名&#xff1a; _x 性 别&#xff1a; 男 婚姻状况&#xff1a; 已婚 民 族&#xff1a; 汉族 户 籍&#xff1a; 湖南-岳阳 年 龄&#xff1a; 27 现所在地&#xff1a; 广东-深圳 身 高&#xff1a; 176cm 希望地区&#xff1a; 广东、 广…

Q-learning解决悬崖问题

Q-learning是一个经典的强化学习算法&#xff0c;是一种基于价值(Value-based)的算法&#xff0c;通过维护和更新一个价值表格(Q表格)进行学习和预测。 Q-learning是一种off-policy的策略&#xff0c;也就是说&#xff0c;它的行动策略和Q表格的更新策略是不一样的。 行动时&am…

vue2和vue3组件v-model区别

前言 单向数据流&#xff0c;父组件传给子组件的数据&#xff0c;子组件只能展示&#xff0c;不能修改&#xff0c;如果需要修改则需要emit事件让父组件修改 有些时候&#xff0c;一些组件并不是通过input来进行触发事件。也就是说value和input事件在大多数情况下能够适用&am…

ROS2性能分析

文章&#xff1a;Performance Analysis of ROS2 作者&#xff1a;Deepak Charan Logavaseekaran, Rakshith Macha Billava 编辑&#xff1a;点云PCL 欢迎各位加入知识星球&#xff0c;获取PDF论文&#xff0c;欢迎转发朋友圈。文章仅做学术分享&#xff0c;如有侵权联系删文。未…

3-dubbo框架,应用程序,模块领域模型Model对象的初始化

在上一章中我们详细看了服务配置ServiceConfig类型的初始化,不过我们跳过了AbstractMethodConfig的构造器中创建模块模型对象的过程 那为什么会在Dubbo3的新版本中加入这个域模型呢,主要有如下原因 之前dubbo都是只有一个作用域的&#xff0c;通过静态类 属性共享 增加域模型是…

MacBook充电限制工具AlDente Pro

AlDente Pro是一款适用于Mac操作系统的小工具&#xff0c;可以帮助您限制电池充电量以延长电池寿命。通常情况下&#xff0c;电池在充满的状态下会继续接受电源充电&#xff0c;这可能会导致电池寿命缩短。使用AlDente Pro&#xff0c;您可以设置电池只充到特定的充电水平&…

使用omp并行技术实现快排加速

快排基本原理&#xff1a; 快速排序可以说是最为常见的排序算法&#xff0c;冒泡排序时间复杂度达到了O&#xff08;N2&#xff09;&#xff0c;而桶排序容易造成浪费空间。快排&#xff08;Quicksort&#xff09;就成为了不错的选择。 1、原理&#xff1a;快排需要找一个数作…

【Nexus】上传jar至Nexus的两种方式

目录 一、前言二、pom文件添加推送代码配置1、配置pom.xml文件2、配置maven的settings.xml文件3、执行上传①、点击Maven-Lifecycle-deploy-Run Maven Build②、出现以下提示则上传成功③、这时&#xff0c;在Nexus的nexus-snapshot-hosted&#xff08;快照类型的托管资源库&am…

【Python】函数进阶 ③ ( 函数作为参数传递 )

文章目录 一、函数参数传递类型二、代码示例 - 函数参数传递类型 一、函数参数传递类型 之前介绍的函数 , 都是 接收具体的 变量 或 字面量 数据 作为参数 , 如 : 数字 / 布尔值 / 字典 / 列表 / 元组 等 ; 函数 也可以作为参数 , 传入另一个函数中 ; 在 Python 中&#xff0…

主成分分析——SPSS实例分析

主成分分析是用原始变量的线性组合来表示主成分&#xff0c;且主成分彼此之间互不相关&#xff0c;且能反映出原始数据的绝大部分信息。 一般来说&#xff0c;当研究的问题涉及到多变量且变量之间存在很强的相关性时&#xff0c;我们可考虑使用主成分分析的方法来对数据进行简化…

智能的突破或许在智能之外

人工智能已经取得了不少令人瞩目的成果&#xff0c;但是仍然存在着许多问题和挑战&#xff0c;这些问题和挑战也许只能通过跨学科的合作和人类的智慧来解决&#xff0c;因此智能的突破在智能之外。在人工智能的决策过程中&#xff0c;往往会缺乏人类的道德判断和社会责任感&…

2018年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

2018 年全国硕士研究生入学统一考试 管理类专业硕士学位联考 英语&#xff08;二&#xff09;试卷 考生须知 1&#xff0e;考生必须严格遵守各项考场规则。 2&#xff0e;答题前&#xff0c;考生将答题卡上的“姓名”、“考生编号”等信息填写清楚&#xff0c;并与准考证上的致…