如何在 Ubuntu 14.04 上设置 Gogs

一篇文章由 Gogs

介绍

Gogs是一个用Go编写的自托Git服务,非常容易运行,而且系统使用率也很低,它渴望成为创建自托Git服务的最简单、最快、最无痛的方式。

到本教程结束时,您将有Gogs的运行实例,其中包括Web界面,管理仪表板,以及访问Git拖动和推动等操作。

前提条件

要遵循本教程,您将需要:

  • 任何尺寸的Ubuntu 14.04 Droplet.
  • A sudo non-root user 在本教程中,我们将使用单独的 sudo non-root用户仅用于Gogs的安全问题。

步骤 1 - 安装数据库

在此步骤中,我们将创建后端Gogs数据库。

登录后,请确保您的系统包是最新的。

1sudo apt-get update

我们将使用MySQL作为我们的后端服务器,所以下一步,安装它。

1sudo apt-get -y install mysql-server

在安装过程中,您将被要求输入数据库 root用户的密码,确保您使用安全的密码,并记住它,因为您将在本教程中稍后需要它。

现在创建并打开名为gogs.sql的文件. 在这里,我们使用nano,但你可以使用你最喜欢的文本编辑器。

1nano gogs.sql

将下列内容粘贴到文件中,然后保存并关闭它。

1DROP DATABASE IF EXISTS gogs;
2CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;

最后,用 MySQL 执行 gogs.sql 以创建 Gogs 数据库. 在此步骤中更换 your_password' 以您早些时候选择的 root 密码。

**注:此命令中没有-p旗和您的密码之间的空间。

1mysql -u root -pyour_password < gogs.sql

要从源头安装Gogs,需要Git和Mercurial等版本控制工具,因此下一步安装它们。

1sudo apt-get -y install mercurial git

如果您打算通过SSH克隆一个存储库,则需要一个运行的SSH服务器,但幸运的是,Ubuntu 14.04 带有一个出盒。

步骤 2 - 安装

因为Gogs是用Go编写的,所以我们需要在编译Gogs之前安装它。

首先,我们需要为 Go 设置一些环境变量,然后打开 ~/.bashrc 文件进行编辑。

1nano ~/.bashrc

将下列行添加到文件的末尾,然后关闭并保存它。

1export GOPATH=/home/git/go
2export GOROOT=/usr/local/src/go
3export PATH=${PATH}:$GOROOT/bin

接下来,应用你的变化。

1source ~/.bashrc

然后使用wget从其网站下载 Go 的最新合并版本(http://golang.org/dl/)。

1wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz

使用tar来解档它。

1tar zxf go1.4.2.linux-amd64.tar.gz

将目录更改为我们在 ~/.bashrc 中定义的 $GOROOT`。

1sudo mv go $GOROOT

现在,如果您在您的终端中输入go:

1go

你应该看到这样的东西:

1Go is a tool for managing Go source code.
2
3Usage:
4
5    go command [arguments]
6
7...
8
9Use "go help [topic]" for more information about that topic.

步骤 3 — 安装和启动 Gogs 作为服务

Go 具有内置的命令,即get,可轻松下载 Go 项目的源代码以及其所有依赖性,我们将使用它来下载 Gogs。

1go get -d github.com/gogits/gogs

现在Gogs的源代码将位于$GOPATH/src/github.com/gogits/gogs,所以移动到那里。

1cd $GOPATH/src/github.com/gogits/gogs

接下来,构建并生成二进制. 这个命令可能需要一段时间才能运行。

1go build

我们将使用 Supervisor来管理 Gogs 服务。

首先,让我们安装它。

1sudo apt-get -y install supervisor

让我们通过创建 Supervisor 配置部分来创建一个 Gogs Daemon. 首先,为日志文件创建一个目录。

1sudo mkdir -p /var/log/gogs

接下来,我们将打开 Supervisor 配置文件进行编辑。

1sudo nano /etc/supervisor/supervisord.conf

将下列内容附加到文件中,以创建 Gogs 部分。

 1[program:gogs]
 2directory=/home/git/go/src/github.com/gogits/gogs/
 3command=/home/git/go/src/github.com/gogits/gogs/gogs web
 4autostart=true
 5autorestart=true
 6startsecs=10
 7stdout_logfile=/var/log/gogs/stdout.log
 8stdout_logfile_maxbytes=1MB
 9stdout_logfile_backups=10
10stdout_capture_maxbytes=1MB
11stderr_logfile=/var/log/gogs/stderr.log
12stderr_logfile_maxbytes=1MB
13stderr_logfile_backups=10
14stderr_capture_maxbytes=1MB
15environment = HOME="/home/git", USER="git"
16user = git

本节定义了我们要执行的命令,以启动Gogs,自动启动它与监督,并指定日志文件的位置和相应的环境变量。

现在重新启动监控器。

1sudo service supervisor restart

我们可以通过以下命令检查Gogs是否正在运行。

1ps -ef | grep gogs

你应该看到这样的东西作为输出。

1root 1344 1343 0 08:55 ?        00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web

您可以通过查看stdout.log文件来验证服务器是否正在运行。

1tail /var/log/gogs/stdout.log

你应该看到这样的线条:

12015/03/09 14:24:42 [I] Gogs: Go Git Service 0.5.16.0301 Beta

您还应该能够访问的网页的URL http://your_server_ip:3000/. 这将重定向到安装页面,但不要填写,只是现在。

步骤 4 — 将 Nginx 设置为反向代理

让我们继续将 **Nginx 配置为反向代理,以便您可以轻松将域名绑定到 Gogs。

首先,安装 Nginx。

1sudo apt-get -y install nginx

接下来,为 gogs 创建一个 Nginx 配置文件。

1sudo nano /etc/nginx/sites-available/gogs

添加以下内容,以您的 Droplet 的 IP 地址代替 your_server_ip. 如果您正在为您的 Droplet 使用域名,您可以使用您的域名。

 1server {
 2    listen 80;
 3    server_name your_server_ip;
 4
 5    proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP
 6
 7    location / {
 8        proxy_pass http://localhost:3000;
 9    }
10}

并将其同步,以便 Nginx 可以使用它。

1sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs

有关 Nginx 虚拟主机配置文件的更多信息,请参阅本教程(https://andsky.com/tech/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts)。

最后,重新启动 Nginx 以激活虚拟主机配置。

1sudo service nginx restart

您现在应该能够访问网页的URL http://your_server_ip/,而不指定端口。

步骤5 - 启动Gogs

还有一个更简单的步骤来启动Gogs为其第一运行。

访问http://your_server_ip/install并填写以下选项,其中许多选项将为您填写,但请确保用红色变量替换为您的服务器的值。

在第一个部分中, Gogs 需要 MySQL、PostgreSQL 或 SQLite3,请填写:

  • 数据库类型: MySQL
  • 主机: 127.0.0.1:3306
  • 用户: root
  • 密码: your_database_password
  • 数据库名: gogs

在第二部分, General Settings of Gogs,填写:

  • 存储根路径: /home/git/gogs-repositories
  • 运行用户: git
  • 域名: your_server_ip
  • HTTP 端口: 3000
  • 应用URL: http://your_server_ip/

跳过可选的电子邮件和通知设置,然后在 Admin 帐户设置中,选择一个管理员用户名和密码,并包括您的电子邮件地址。

最后,点击安装Gogs,然后登录。

步骤6 - 测试Gogs

你已经完成了!让我们做一个简单的拉 / 推测试,以确保Gogs正常工作。

首先,前往http://your_server_ip/repo/create,创建一个名为my-test-repo的存储库,然后单击选项以 README.md**启动此存储库

现在你应该能够克隆它. 首先,移动到您的家庭目录。

1cd

接下来,克隆存储器。

1git clone http://your_server_ip/your_admin_username/my-test-repo.git

转到存储库目录。

1cd my-test-repo

更新到「README.md」

1echo 'I love Gogs!' >> README.md

承诺你的更改,并推动他们. 这个命令将要求你你的Gogs用户名和密码。

1git add --all && git commit -m "init commit" && git push origin master

结论

现在,如果你回到http://your_server_ip/your_admin_username/my-test-repo,你会看到我爱Gogs!一行附加到README。

Published At
Categories with 技术
Tagged with
comments powered by Disqus