如何设置Gogs在Ubuntu 14.04

从项目中Gogs

介绍

Gogs是自托管Git的服务写在 Go 这是很容易得到运行并具有低系统使用为好。 它渴望成为一种自助式Git服务的最简单,最快速,最简单的方式。

在本教程结束时,您将拥有一个运行的Gogs实例,其中包括Web界面,管理仪表板以及Git pull和push等操作。

先决条件

要遵循本教程,您需要:

  • 任何大小的Ubuntu 14.04 Droplet。
  • 一个sudo的非root用户 在本教程中,出于安全考虑,我们将仅为Gog使用单独的sudo非root用户。 本教程假定该专用用户名为混帐 ,混帐服务的约定如下; 本教程中应遵循的git的用户。

第1步 - 安装数据库

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

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

sudo apt-get update

我们将使用MySQL作为我们的后端服务器,所以接下来,安装它。 -y这里标志是假定所有的提示。

sudo apt-get -y install mysql-server

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

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

nano gogs.sql

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

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

最后,执行gogs.sql与MySQL创建数据库Gogs。 替换your_password与之前在本步骤中选择root密码。

注意 :有是之间没有空格-p标志,并在此命令的密码。

mysql -u root -pyour_password < gogs.sql

要从源安装Gogs,需要版本控制工具,如Git和Mercurial,所以请安装它们。

sudo apt-get -y install mercurial git

如果计划通过SSH克隆存储库,则需要运行的SSH服务器,但幸运的是,Ubuntu 14.04带有一个开箱即用的。

第2步 - 安装Go

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

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

nano ~/.bashrc

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

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

接下来,应用您的更改。

source ~/.bashrc

然后使用wget从其下载 Go 的最新版本编译过的网站 在写这篇文章的时候,最近的文件是go1.4.2.linux-amd64.tar.gz

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

使用tar来解除封存。

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

目录更改为$GOROOT我们定义~/.bashrc

sudo mv go $GOROOT

现在,如果你键入go在你的终端:

go

你应该看到这样的:

Go is a tool for managing Go source code.

Usage:

    go command [arguments]

...

Use "go help [topic]" for more information about that topic.

第3步 - 安装和启动Gogs即服务

Go 有一个内置的命令, get ,可方便地下载 Go 项目的源代码与所有的依赖,我们将用它来下载Gogs沿。

go get -d github.com/gogits/gogs

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

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

接下来,构建和生成二进制文件。 此命令可能需要一些时间才能运行。

go build

我们要使用主管来管理Gogs服务。

首先,让我们安装它。

sudo apt-get -y install supervisor

让我们通过创建一个Supervisor配置部分来创建一个Gogs守护进程。 首先,创建一个日志文件所在的目录。

sudo mkdir -p /var/log/gogs

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

sudo nano /etc/supervisor/supervisord.conf

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

[program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git

此部分定义了要启动Gog的命令,自动使用Supervisor启动它,并指定日志文件和相应的环境变量的位置。 欲了解更多有关监事的配置,请阅读本教程

现在重新启动Supervisor。

sudo service supervisor restart

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

ps -ef | grep gogs

你应该看到类似这样的输出。

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

您可以验证服务器是否正在运行,采取一看stdout.log文件了。

tail /var/log/gogs/stdout.log

你应该看到这样的行:

2015/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。

sudo apt-get -y install nginx

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

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

添加以下内容,替换your_server_ip与Droplet的IP地址。 如果您使用的是Droplet的域名,则可以在此处使用您的域名。

server {
    listen 80;
    server_name your_server_ip;

    proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

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

并符号链接它,使Nginx可以使用它。

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

欲了解更多有关的Nginx虚拟主机配置文件,请参阅本教程

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

sudo 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

在第二部分, Gogs的常规设置 ,填写:

  • 存储库根路径: /home/git/gogs-repositories
  • 运行用户: git
  • 域: your_server_ip
  • HTTP端口: 3000
  • 申请网址: http:// your_server_ip /

跳过可选的电子邮件和通知设置,然后在管理员帐户设置 ,选择一个管理员用户名和密码,包括您的电子邮件地址。 我们将把管理员用户名作为your_admin_username下一步。

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

第6步 - 测试Gogs

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

首先,进入http:// your_server_ip /repo/create ,并创建一个名为我的测试回购的仓库,你的选项单击初始化这个仓库有README.md。

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

cd

接下来,克隆存储库。

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

更改到存储库目录。

cd my-test-repo

更新README.md

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

提交您的更改并推送它们。 此命令将要求您输入Gogs用户名和密码。

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

结论

现在,如果你回去http:// your_server_ip / your_admin_username /my-test-repo ,你会看到“我爱Gogs!” 行附加到README。 这是那么容易!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏