github 是众所周知的代码托管平台,广大开发者将自己的代码或者是其他奇奇怪怪的东西都托管在上面。今天突发奇想,想自己搭建一个代码托管平台,供自己使用。在网上发现了 gogs 这个工具。于是开始了部署工作。

环境配置

我的服务器是 Archlinux 系统。部署 gogs 主要需要配置好数据库、git和ssh。

mariadb 数据库

作为开源爱好者,我选择的是 mariadb 数据库。在 Archlinux 上安装 mariadb 使用命令:

1
2
sudo pacman -S mariadb
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

这样就安装好了 mariadb。然后启动 mariadb:

1
sudo systemctl start mariadb.service

接下来可以使用下面这个命令进行一些安全配置:

1
mysql_secure_installation

根据提示进行选择和输入,并且设置 root 密码。

gogs 需要 mariadb 数据库 使用 INNODB 引擎。需要进行一些配置。首先用 root 登录数据库:

1
mysql -p -u root

在数据库内进行一些设置:

1
2
3
MariaDB> SET GLOBAL innodb_file_per_table = ON;
MariaDB> SET GLOBAL innodb_file_format = Barracuda;
MariaDB> SET GLOBAL innodb_large_prefix = ON;

有时 innodb_file_formatinnodb_large_prefix 变量是只读的,这时只能在配置文件中修改

1
2
3
4
5
/etc/my.cnf
-------------
[mysqld]
innodb_file_format = Barracuda
innodb_large_prefix = ON

然后创建用户和数据库:

1
2
3
4
5
6
7
mysql -p -u root
-----------------
MariaDB> CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB> create user 'gogs'@'localhost' identified by '密码';
MariaDB> grant all privileges on gogs.* to 'gogs'@'localhost';
MariaDB> flush privileges;
MariaDB> exit;

这要数据库就配置好了。

安装 git 和 ssh 以及新建用户

对于 Archlinux 使用以下命令安装 git 和 ssh。一般的云服务器和 VPS 已经配置好了 ssh。

1
sudo pacman -S git openssh

接着需要新建用户,该用户就是 ssh 上传下载的用户,也是 gogs 运行的用户。

1
sudo useradd -m git

其中 -m 是创建用户目录,用户目录的 ~/.ssh 文件夹可以对 ssh 做一些设置,不创建用户名目录其实也可以用。事后在 gogs 中设置就可以了。

以上就是环境配置了。接下来开始下载安装 gogs。

gogs 安装

我们一般采用二进制安装,参考文档

首先在官网下载二进制包:https://gogs.io/,可以使用 wget 命令直接下载到服务器上。

gogs 下载解压

具体方法为,改用 git 用户登录,然后 cd 到 git 的 home 目录,最后下载 gogs。

1
2
3
su git
cd ~/
wget https://dl.gogs.io/0.12.3/gogs_0.12.3_linux_amd64.tar.gz

下载到服务器的位置要是 git 用户能够有权限读写的位置。如果你创建了 home 目录的话,一般是直接下载到 home 目录。

然后解压:

1
tar -xzvf gogs_0.12.3_linux_amd64.tar.gz

gogs 运行配置

进入 gogs 目录,运行 ./gogs web。就可以启动 gogs 了。

用浏览器访问 http://服务器IP:3000/install 就可以就行首次配置。数据库引擎设置为 mysql,数据库名 gogs,用户 gogs,密码为你设置的密码。其他的按照情况填写,就可以成功进入 gogs 了。

如果想使用 systemd 启动 gogs 的话,只需要将 home/git/gogs/scripts/systemd/gogs.service 文件稍作配置,然后复制到 /etc/systemd/system/ 文件夹中,就可以使用 systemd 来启动 gogs 了。

如果你想修改配置,只需要修改 gogs 文件夹中 custom/conf/app.ini 文件即可。具体可配置项可以在 github 源代码中查找。

还可以通过修改 custom/templates/ 来配置主页。

以上就是 gogs 的配置方法,是否想尝试一下呢?