如何在 Ubuntu 16.04 上安装 Gogs Go Git 服务如何在 Ubuntu 16.04 上安装 Gogs Go Git 服务如何在 Ubuntu 16.04 上安装 Gogs Go Git 服务如何在 Ubuntu 16.04 上安装 Gogs Go Git 服务
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 16.04 上安装 Gogs Go Git 服务

在此页

  1. 先决条件
  2. 我们将做什么
  3. 第 1 步 - 更新和升级系统
  4. 第 2 步 - 安装和配置 PostgreSQL
  5. 第 3 步 - 安装 Go 和 Git
  6. 第 4 步 - 安装 Gogs Go Git 服务
  7. 第 5 步 - 配置 Gogs Go Git 服务
  8. 第 6 步 - 运行 Gogs 即服务
  9. 第 7 步 - 将 Nginx 配置为 Gogs 的反向代理
  10. 第 8 步 - 测试
  11. 参考资料

Gogs 是用 Go 语言编写的免费开源 Git 服务。 Gogs 是一种无痛的自托管 git 服务,允许您在最小的硬件服务器上创建和运行自己的 Git 服务器。 Gogs web-UI 与 GitHub 非常相似,并提供对 MySQL、PostgreSQL 和 SQLite 数据库的支持。

在本教程中,我们将逐步向您展示如何在 Ubuntu 16.04 上使用 Gogs 安装和配置您自己的 Git 服务。本教程将涵盖详细信息,包括如何在 Ubuntu 系统上安装 Go,安装 PostgreSQL,以及安装和配置 Nginx Web 服务器作为 Go 应用程序的反向代理。

先决条件

  • Ubuntu 16.04
  • 根权限

我们将要做什么

  1. 更新和升级系统
  2. 安装和配置 PostgreSQL
  3. 安装 Go 和 Git
  4. 安装 Gogs
  5. 配置 Gogs
  6. 以服务形式运行 Gogs
  7. 安装 Nginx 并将其配置为反向代理
  8. 测试

第 1 步 - 更新和升级系统

在继续之前,更新所有 Ubuntu 存储库并升级所有软件包。

运行下面的 apt 命令。

sudo apt update
sudo apt upgrade

第 2 步 - 安装和配置 PostgreSQL

Gogs 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB 数据库系统。

在本指南中,我们将使用 PostgreSQL 作为 Gogs 安装的数据库。

使用下面的 apt 命令安装 PostgreSQL。

sudo apt install -y postgresql postgresql-client libpq-dev

安装完成后,启动 PostgreSQL 服务并使其在每次系统启动时启动。

systemctl start postgresql
systemctl enable postgresql

在 Ubuntu 系统上安装了 PostgreSQL 数据库。

接下来,我们需要为 Gogs 创建一个新的数据库和用户。

以 postgres 用户身份登录并运行 psql 命令以获取 PostgreSQL shell。

su - postgres
psql

创建一个名为 git 的新用户,并赋予该用户 CREATEDB 的权限。

CREATE USER git CREATEDB;
\password git

创建一个名为 gogs_production 的数据库,并将 git 用户设置为数据库的所有者。

CREATE DATABASE gogs_production OWNER git;

已创建用于安装 Gogs 的新 PostgreSQL 数据库 gogs_production 和用户 git。

第 3 步 - 安装 Go 和 Git

使用下面的 apt 命令从存储库安装 Git。

sudo apt install git

现在将新用户 git 添加到系统中。

sudo adduser --disabled-login --gecos 'Gogs' git

以 git 用户身份登录并创建一个新的本地目录。

su - git
mkdir -p /home/git/local

转到本地目录并使用 wget 命令下载 Go(最新版本),如下所示。

cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

提取 go 压缩文件,然后将其删除。

tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz

Go 二进制文件已下载到 ~/local/go 目录中。现在我们需要设置环境——我们需要定义 GOROOT 和 GOPATH 目录,这样我们就可以在 git 用户下的系统上运行 go 命令。

运行以下所有命令。

cd ~/
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc

并通过运行 source ~/.bashrc 命令重新加载 Bash,如下所示。

source ~/.bashrc

确保您使用 Bash 作为默认 shell。

现在运行 go 命令来检查版本。

go version

并确保您得到的结果如以下屏幕截图所示。

Go 现在安装在 git 用户下的系统上。

第 4 步 - 安装 Gogs Go Git 服务

以 git 用户身份登录并使用 go 命令从 GitHub 下载 Gogs。

su - git
go get -u github.com/gogits/gogs

该命令将下载 GOPATH/src 目录中的所有 Gogs 源代码。

转到 $GOPATH/src/github.com/gogits/gogs 目录并使用以下命令构建 gogs。

cd $GOPATH/src/github.com/gogits/gogs
go build

并确保你没有错误。

现在使用下面的命令运行 Gogs Go Git 服务。

./gogs web

该命令将在默认端口 3000 上运行 Gogs。

打开您的网络浏览器并输入您的服务器 IP 地址和端口 3000,我的是 http://192.168.33.10:3000/

你应该得到如下所示的结果。

Gogs 安装在 Ubuntu 系统上。现在回到您的终端并按 Ctrl + c 退出。

第 5 步 - 配置 Gogs Go Git 服务

在这一步中,我们将为 Gogs 创建自定义配置。

转到 Gogs 安装目录并创建一个新的 custom/conf 目录。

cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/

将默认配置复制到自定义目录并使用 vim 对其进行编辑。

cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini

在 [server] 部分,将服务器 HOST_ADDR 更改为 127.0.0.1。

[server]
PROTOCOL = http
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000

在 [database] 部分,使用您自己的数据库信息更改所有内容。

[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs_production
USER = git
PASSWD = #

保存并退出。

现在通过运行如下所示的命令来验证配置。

./gogs web

并确保你得到如下结果。

Gogs 现在使用我们的自定义配置运行,在本地主机下,端口为 3000。

第 6 步 - 运行 Gogs 即服务

在这一步中,我们将 Gogs 配置为 Ubuntu 系统上的一项服务。我们将在/etc/systemd/system目录下新建一个服务文件配置gogs.service。

转到 /etc/systemd/system 目录并使用 vim 编辑器创建一个新的服务文件 gogs.service。

cd /etc/systemd/system
vim gogs.service

将以下 gogs 服务配置粘贴到那里。

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

保存并退出。

现在重新加载系统服务。

systemctl daemon-reload

使用 systemctl 命令启动 gogs 服务并使其每次在系统启动时启动。

systemctl start gogs
systemctl enable gogs

Gogs 现在作为服务运行在 Ubuntu 系统上。

使用以下命令检查它。

netstat -plntu
systemctl status gogs

你应该得到如下所示的结果。

第 7 步 - 将 Nginx 配置为 Gogs 的反向代理

在这一步中,我们将配置 Nginx 作为 Gogs 的反向代理。我们将使用来自其自己的存储库的 Nginx 包。

使用 add-apt 命令添加 Nginx 存储库。

sudo add-apt-repository -y ppa:nginx/stable

现在更新所有 Ubuntu 存储库并使用下面的 apt 命令安装 Nginx。

sudo apt update
sudo apt install nginx -y

接下来,转到 /etc/nginx/sites-available 目录并创建新的虚拟主机文件 gogs。

cd /etc/nginx/sites-available
vim gogs

将以下配置粘贴到那里。

server {
    listen 80;
    server_name git.hakase-labs.co;

    location / {
        proxy_pass http://localhost:3000;
    }
}

保存并退出。

笔记:

使用您自己的域名更改 server_name 行。

现在激活一个新的虚拟主机并测试 nginx 配置。

ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -t

确保没有报错,然后重启Nginx服务。

systemctl restart nginx

第 8 步 - 测试

打开您的网络浏览器并输入您的 gogs URL,我的是 http://git.hakase-labs.co

现在您将获得安装页面。在页面顶部,键入所有 PostgreSQL 数据库信息。

现在滚动到底部,然后单击管理员帐户设置下拉菜单。

输入您的管理员用户、密码和电子邮件。

然后单击安装 Gogs 按钮。

您将被重定向到 Gogs 用户仪表板,如下所示。

下面是 Gogs 管理仪表板。

Gogs 现在在 Ubuntu 16.04 服务器上安装了 PostgreSQL 数据库和 Nginx 网络服务器

参考

  • https://gogs.io/docs/installation

©2015-2025 艾丽卡 support@alaica.com