使用Gitea搭建自己的git远程仓库

Gitea

为什么需要自建仓库

原因只有一个:折腾。其实国内的码云加上github已经足够用了。

官方原话

Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言,这使我们只要生成一个可执行程序即可。

并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了 x86,amd64,还包括 ARM 和 PowerPC

为什么不选gitlab

之前就是用的gitlab做私有仓库,但gitlab实在太臃肿了,启动并运行大概需要4G的内存,即使你精简一些服务的话,至少也得2G内存。后来发现了Gitea,测试了下很轻量,我一个使用作为自己的代码仓库很方便,资源需求也不高。

官方地址

https://github.com/go-gitea/gitea

https://docs.gitea.com/zh-cn/

运行容器

我这里使用docker来安装,方便安装也方便迁移。

docker镜像

官方的镜像名称是gitea/gitea,我一般会去dockerhub看一下它支持的架构和最新的版本,因为我是在arm机器上跑的。下载镜像:

docker pull gitea/gitea:1.21-nightly

运行

创建一个存放数据的目录

mkdir ~/gitea-data

启动:

docker run --name gitea \
    -e USER_UID=$(id -u) \
    -e USER_GID=$(id -g) \
    -v ~/gitea-data:/data \
    -p 3000:3000 \
    -p 22:22 \
    -d gitea/gitea:1.21-nightly 
  • --name: 指定容器名称,如果不指定默认会随机一个。
  • -e: 指定容器内使用的环境变量,我将容器内的uid和主机的uid指定成一样的,这样避免一些权限问题(id -u显示当前用户的uid)。
  • -v: 指定主机目录和容器目录的映射,:前面是主机的目录,后面是容器内的目录。
  • -p: 指定端口映射,前面表示主机的端口,后面是容器的
  • -d: 表示后台运行
查看运行状态和日志

docker ps 查看当前运行的容器,如果没有显示刚才创建的,应该是停止运行了。可以使用docker ps -a查看所有容器。

在用docker logs gitea查看容器的运行日志(截图中的容器名称是gitea-test)

安装

打开浏览器并访问ip和端口(记得放通防火墙),端口是上面-p 8081:3000 \指定的8081。

这些基本不用改,数据库就用SQLite最方便。不然还得安装MySQL或Postgresql

主要修改的是这三个,注意HTTP服务端口不能改,要和-p 8081:3000 \后面容器内的端口一样,如果改了会进不去Web。

SSH服务端口是指git推送ssh时的端口,推送http的端口和web端口一样。就是到时候复制仓库地址的时候显示的两个端口

如果你之后用NGINX做了反向代理,想修改显示的这两个端口,就需要进入到容器shell,修改/data/gitea/conf/app.ini配置文件里的字段了

可选设置也可以看一下。比如先添加管理员账号,不然第一个注册的账号就是管理员账号

如果你不想让他们人注册的话,可以勾选禁止注册。另外最好使用本地模式,因为可能有些头像加载不出来导致一直在转圈

点击立即安装等待个10s就进到登录页面了,再用刚才添加的管理员账号登录即可

实用功能-仓库迁移

可以从github迁移项目,并且勾选镜像仓库,就会每8小时自动同步一次(时间可以设置),这样就能避免删库跑路了

体验地址

http://www.pygrower.cn:21180/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 SpringBoot的乡村养老服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言 自打华为2019年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android,更激烈的讨论随之而来。 本文没有宏大的叙事,只有基于现实的考量。 通过本文,你将了解到: Har…

使用Wireshark进行网络流量分析

目录 Wireshark是什么? 数据包筛选 筛选指定ip 使用逻辑运算符筛选 HTTP模式过滤 端口筛选 协议筛选 包长度筛选 数据包搜索 数据流分析 数据包导出 Wireshark是什么? 通过Wireshark,我们可以捕获和分析网络数据包,查看…

用ChatGPT方式编程!GitHub Copilot Chat全面开放使用

全球著名开源分享平台GitHub在官网宣布,经过几个月多轮测试的GitHub Copilot Chat,全面开放使用,一个用ChatGPT方式写代码的时代来啦! 据悉,Copilot Chat是基于OpenAI的GPT-4模型,再结合其海量、优质的代码…

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章,不少粉丝都评论让我试试阿里的通义灵码,这让我对通义灵码有了不少的兴趣。 今天,阿七就带大家了解一下阿里的通义灵码,我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…

【Linux 内核源码分析】GPIO子系统软件框架

Linux内核的GPIO子系统是用于管理和控制通用输入输出(GPIO)引脚的软件框架。它提供了一套统一的接口和机制,使开发者能够方便地对GPIO进行配置、读写和中断处理。 主要组件: GPIO框架:提供了一套API和数据结构&#x…

【深度学习-基础学习】Self-Attention 自注意力机制 笔记

本篇文章学习总结 李宏毅 2021 Spring 课程中关于 Self-Attention 自注意力 机制相关的内容。课程链接以及PPT:李宏毅Spring2021ML 关于 Self-Attention 机制想要解决的问题 通常来说, 我们的模型的输入会是一个vector,然后输出可能是 一个数…

python图形界面设计工具,python的图形界面gui编程

大家好,小编为大家解答python编写图形化界面的工具的问题。很多人还不知道python图形界面设计工具,现在让我们一起来看看吧! 1.根窗体 (1)创建根窗体对象 ①tkinter.Tk():创建一个根窗体对象。使用后会立即显示窗口&am…

基于 vite 创建 Vue3 项目

1、基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test## 随后选择3.x ## Choose a version of Vue.js that you want to start the proje…

通过IP地址防范钓鱼网站诈骗的有效措施

随着互联网的普及,钓鱼网站诈骗成为一种广泛存在的网络犯罪行为。通过冒充合法网站,攻击者试图窃取用户的敏感信息。本文将探讨如何通过IP地址防范钓鱼网站诈骗,提供一系列有效的措施,以加强网络安全,保护用户免受诈骗…

审计报告翻译服务,如何确保翻译质量?

近年来,随着跨国经济活动的增多,越来越多的企业需要进行跨国审计,而审计报告的翻译就变得尤为重要。那么,审计报告翻译服务,如何确保翻译质量?  据了解,审计报告翻译是全面揭示被审计单位实质情…

【Jenkins】centos服务器部署jenkins2.426

Jenkins部署 版本选择说明 目前项目上用的版本是比较旧的,现在用不了,插件版本问题比较恶心。试过2.346,插件问题没解决, 单独找(*.hpi)插件匹配的版本太麻烦了。 前置环境部署 git 略 JDK11 该jenk…

企业招聘信息发布平台

吉鹿力招聘网是中国有名的专业招聘网站,拥有超过1500万招聘信息,涵盖了全国各地的企业招聘信息,是求职者获取新招聘信息的良好渠道。百度搜索吉鹿力招聘网就能下载并投递简历,开启求职之旅。 吉鹿力招聘网企业注册流程 首先打开…

c语言:用指针输入两个数组|练习题

一、题目 利用指针&#xff0c;输入两个数组 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> int main() { int a[50]; int b[50]; int *paa,*pbb; //输入第一组数组 printf("请输入第一组5个数字&#xff1a;…

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

JVM虚拟机:各种JVM报错总结

错误 java.lang.StackOverflowError java.lang.OutOfMemoryError:java heap space java.lang.OutOfMemoryError:GC overhead limit exceeded java.lang.OutOfMemoryError:Direct buffer memory java.lang.OutOfMemoryError:unable to create new native thread java.lang.OutOf…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…

python慕课版课后题答案,python慕课作业答案

这篇文章主要介绍了中国大学慕课python测验答案&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Flag 8月29日前学习完MOOC_Python课程&#xff0c;以下各测试题均来自于Python…

Rockchip平台Android应用预安装功能(基于Android13)

Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能&#xff0c;主要是指配置产品时&#xff0c;根据厂商要求&#xff0c;将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型&#xff1a; 安装不可卸载应用安…

Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览

目录 一.医疗项目原型图-----住院板块 1.1 住院板块原型预览 1.2 新增住院患者原型预览 1.3 新增医护人员原型预览 1.4 新增病房原型预览 1.5 选择床位原型预览 1.6 主治医生原型预览 1.7 主治医生医嘱原型预览 1.8 主治医生查看患者报告原型预览 1.9 护士原型预…