soragui
soragui 编程-学习-思考

如何搭建自己的github

如何搭建自己的github

很久之前就想去写的一篇记录性文章,拖到现在才去完成,因为心情终于来了。

好久没有写文章的我,突然提起笔来还是有那么一些激动和生疏的。毕竟是已经到21年了,一些小小的目标还是要有的,就像去年一样,立下誓言要每周输出几篇高质量的文章,那结果呢?不过还好,我依然没有放弃,要有从哪里跌倒就从哪里爬起来的勇气。这不,新的一年又开始了。

这第一篇文章来的是有些晚,但还是不能直入主题;这倒不是为了凑字数,抒发一下这大半年没动笔的感情还是有必要的。本来是想着抛弃过去开始一段新的生活,毕竟有了工作这底气就是不一样的。结果,真实经历过才发现,自己还是原来那个自己,该写的文章还是写不出来,该说的话还得憋着哈。

好了,今年的主题就是自己动手,丰衣足食。那么,首先就让我们来搭建自己的git源代码管理服务器吧!

目的

最原始的目的就是处于好奇心;第二个目的就是想多学习一些只是;第三个目的就是github托管的源代码下载确实很慢,有一种方法就是先吧github上的源代码转移到一个国内服务器上,然后再从这个服务器上下载。好,那么今天就来使用开源的gitea来搭建一个属于自己的代码托管服务器吧!

准备

如果你只是处于好奇心或者是想学习知识技能,那么有一个装有ubuntu或者其他linux发行版的电脑就可以了;如果你想要建立自己的源代码托管服务器的话,去国内或者国外买一个VPS服务器应该是最佳的选择吧,国内的比如阿里云、腾讯云;国外的有vultr、搬瓦工什么的,没事还可以装个翻墙软件,何乐而不为呢!

开始

第一步安装数据库,这里我选择了PostgreSQL,虽然使用看起来不是那么友好。但是,看在它占用资源小,性能强劲的份上,就原谅他吧!安装起来也很简单:

  1. 使用如下命令安装PostgreSQL:
1
sudo apt install postgresql

安装成功后,系统会创建一个postgres用户,以后就可以直接登录到这个用户来管理数据库了。

  1. 然后登录创建相应的数据库:
1
2
3
4
5
6
7
8
9
10
11
sudo -i -u postgres
psql                         
# 创建一个 gitea 用户

CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';

# 创建一个 数据库
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

# 使用如下的命令测试连接
psql -U gitea -d giteadb

第二步确认一些系统已经安装好了git程序:

1
git --version

如果没有安装使用如下命令进行安装:

sudo apt install git

然后,创建一个git用户专门用来运行gitea这个开源的源代码管理器:

1
2
3
4
5
6
7
8
adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

接着创建需要用到的目录:

1
2
3
4
5
6
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

第三步下载gitea二进制文件,并添加可执行权限,拷贝到相应的目录即可:

1
2
3
wget -O gitea https://dl.gitea.io/gitea/1.13.2/gitea-1.13.2-linux-amd64
chmod +x gitea
cp gitea /usr/local/bin/gitea

之后,你就可以使用如下的命令去体验一下:

1
GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini

结束

写这么点就已经是我脑容量的极限了,需要休息一会了,后续再补充一些完善的步骤。附上我自己搭建的开源实验室

参考

  1. PostgreSQL 安装使用指南
  2. Gitea