Как настроить Gogs в Ubuntu 14.04

Статья от http://gogs.io [Gogs]

Вступление

http://gogs.io [Gogs] - это самодостаточный сервис Git, написанный на Go, который очень прост в запуске и также имеет низкое использование системы. Он стремится быть самым простым, быстрым и наиболее безболезненным способом настройки службы Git для собственного размещения.

К концу этого урока у вас будет запущенный экземпляр Gogs, который включает в себя веб-интерфейс, панель администратора и доступ к таким операциям, как Git pull и push.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Капля Ubuntu 14.04 любого размера.

  • Https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-an-ubuntu-14-04-vps[sudo не-root пользователь]. В этом руководстве мы будем использовать отдельного пользователя sudo без полномочий root только для Gogs из соображений безопасности. В этом руководстве предполагается, что этому выделенному пользователю присвоено имя * git * в соответствии с соглашением службы Git; этот урок должен следовать от имени пользователя * 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. Замените ++ на пароль root, который вы выбрали ранее на этом шаге.

  • Примечание *: в этой команде нет пробела между флагом + -p + и вашим паролем.

mysql -u root -p < gogs.sql

_ _

Для установки Gogs из исходного кода необходимы инструменты контроля версий, такие как Git и Mercurial, поэтому установите их дальше.

sudo apt-get -y install mercurial git

Если вы планируете клонировать репозиторий через SSH, необходим работающий SSH-сервер, но, к счастью, Ubuntu 14.04 поставляется с одним из стандартных.

Шаг 2 - Установите Go

Поскольку Gogs написан на Go, мы должны установить его перед компиляцией Gogs.

Во-первых, есть некоторые переменные окружения, которые мы должны установить для Go. Для этого откройте файл + ~ / .bashrc + для редактирования.

nano ~/.bashrc

Добавьте следующие строки в конец файла, затем закройте и сохраните его.

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

Затем примените ваши изменения.

source ~/.bashrc

Затем используйте + wget +, чтобы загрузить последнюю версию Go с соответствующей версии с website. На момент написания статьи самым последним файлом был + 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

Мы собираемся использовать Supervisor для управления сервисом Gogs.

Во-первых, давайте установим его.

sudo apt-get -y install supervisor

Давайте создадим демон Gogs, создав раздел конфигурации Supervisor. Сначала создайте каталог для файлов журналов, в которых вы будете жить.

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

Этот раздел определяет команду, которую мы хотим выполнить для запуска Gogs, автоматически запускает ее с помощью Supervisor и указывает расположение файлов журнала и соответствующих переменных среды. Подробнее о конфигурации супервизора читайте в этом tutorial.

Теперь перезапустите 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: //: 3000 / +. Это перенаправит на страницу установки, но пока не заполняйте ее.

Шаг 4 - Установите Nginx в качестве обратного прокси

Давайте перейдем к настройке * Nginx * в качестве обратного прокси, чтобы вы могли легко привязать доменное имя к Gogs.

Сначала установите Nginx.

sudo apt-get -y install nginx

Затем создайте файл конфигурации Nginx для gogs.

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

Добавьте следующий контент, заменив ++ на IP-адрес вашего Droplet. Если вы используете доменное имя для своей Droplet, вы можете использовать здесь свое доменное имя.

server {
   listen 80;
   server_name ;

   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 см. Этот https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04. -lts [учебник].

Наконец, перезапустите Nginx, чтобы активировать конфигурацию виртуального хоста.

sudo service nginx restart

Теперь вы сможете посещать веб-страницу с URL + http: /// + без указания порта.

Шаг 5 - Инициализировать Gogs

Остался еще один простой шаг для инициализации Gogs для его первого запуска.

Посетите + http: /// install + и заполните следующие параметры. Многие из них уже будут заполнены для вас, но обязательно замените переменные, выделенные красным, значениями для вашего сервера.

В первом разделе * Gogs требуется MySQL, PostgreSQL или SQLite3 *, заполните:

  • Тип базы данных: + MySQL

  • Хост: +127.0.0.1: 3306 +

  • Пользователь: + root

  • Пароль: ++

  • Имя базы данных: + gogs +

Во втором разделе * Общие настройки Gogs * заполните:

  • Корневой путь к репозиторию: + / home / git / gogs-repositories +

  • Запустите пользователя: + git +

  • Домен: ++

  • Порт HTTP: + 3000 +

  • URL приложения: + http: /// +

Пропустите необязательные настройки электронной почты и уведомлений, затем в разделе * Настройки учетной записи администратора * выберите имя пользователя и пароль администратора и укажите свой адрес электронной почты. На следующем шаге мы будем ссылаться на имя пользователя admin как ++.

Наконец, нажмите * Установить Gogs *, а затем войдите в систему.

Шаг 6 - Test Gogs

Вы все сделали! Давайте выполним простой тест «push / push», чтобы убедиться, что Gogs работает правильно.

Сначала перейдите в + http: /// repo / create + и создайте репозиторий с именем * my-test-repo *, и вы щелкнете по опции * Инициализировать этот репозиторий с помощью README.md *.

Теперь вы должны быть в состоянии клонировать его. Сначала перейдите в свой домашний каталог.

cd

Далее клонируем репозиторий.

git clone http:////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: //// my-test-repo +, вы увидите строку «Я люблю Gogs!», Добавленную к README. Это так просто!