Статья от 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. Это так просто!