Поиск по сайту:

Как установить службу Gogs Go Git на Ubuntu 16.04


На этой странице

  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 — это бесплатная служба Git с открытым исходным кодом, написанная на языке Go. Gogs — это безболезненный самостоятельный git-сервис, который позволяет вам создавать и запускать собственный Git-сервер на минимальном аппаратном сервере. Веб-интерфейс Gogs очень похож на GitHub и предлагает поддержку баз данных MySQL, PostgreSQL и SQLite.

В этом руководстве мы пошагово покажем вам, как установить и настроить собственный сервис Git с помощью Gogs в Ubuntu 16.04. В этом руководстве будут подробно описаны, в том числе, как установить Go в системе Ubuntu, установить PostgreSQL, а также установить и настроить веб-сервер Nginx в качестве обратного прокси-сервера для приложения Go.

Предпосылки

  • Убунту 16.04
  • Привилегии root

Что мы будем делать

  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.

Установите PostgreSQL с помощью приведенной ниже команды apt.

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

После завершения установки запустите службу PostgreSQL и разрешите ей запускаться каждый раз при загрузке системы.

systemctl start postgresql
systemctl enable postgresql

База данных PostgreSQL была установлена в системе Ubuntu.

Далее нам нужно создать новую базу данных и пользователя для Gogs.

Войдите в систему как пользователь postgres и запустите команду psql, чтобы получить оболочку PostgreSQL.

su - postgres
psql

Создайте нового пользователя с именем git и предоставьте ему привилегии для CREATEDB.

CREATE USER git CREATEDB;
\password git

Создайте базу данных с именем gogs_production и установите пользователя git в качестве владельца базы данных.

CREATE DATABASE gogs_production OWNER git;

Создана новая база данных PostgreSQL gogs_production и пользователь git для установки Gogs.

Шаг 3 — Установите Go и Git

Установите Git из репозитория с помощью приведенной ниже команды apt.

sudo apt install git

Теперь добавьте в систему нового пользователя git.

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

Войдите в систему как пользователь git и создайте новый локальный каталог.

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

Перейдите в локальный каталог и загрузите Go (последнюю версию) с помощью команды wget, как показано ниже.

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, чтобы мы могли запустить команду go в системе под пользователем git.

Выполните все следующие команды.

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

И перезагрузите Bash, выполнив команду source ~/.bashrc, как показано ниже.

source ~/.bashrc

Убедитесь, что вы используете Bash в качестве оболочки по умолчанию.

Теперь запустите команду go для проверки версии.

go version

И убедитесь, что вы получили результат, как показано на следующем снимке экрана.

Теперь Go установлен в системе под пользователем git.

Шаг 4. Установите службу Gogs Go Git

Войдите в систему как пользователь git и загрузите Gogs с GitHub с помощью команды go.

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

Команда загрузит весь исходный код Gogs в каталог GOPATH/src.

Перейдите в каталог $GOPATH/src/github.com/gogits/gogs и соберите gogs, используя приведенные ниже команды.

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

И убедитесь, что вы не получите ошибку.

Теперь запустите службу Gogs Go Git, используя приведенную ниже команду.

./gogs web

Команда запустит Gogs на порту 3000 по умолчанию.

Откройте веб-браузер и введите 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

В разделе [сервер] измените сервер 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. Мы создадим новый файл конфигурации службы gogs.service в каталоге /etc/systemd/system.

Перейдите в каталог /etc/systemd/system и создайте новый служебный файл gogs.service с помощью редактора vim.

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

Сохранить и выйти.

Теперь перезагрузите службы systemd.

systemctl daemon-reload

Запустите службу gogs и включите ее запуск каждый раз при загрузке системы с помощью команды systemctl.

systemctl start gogs
systemctl enable gogs

Gogs теперь работает как служба в системе Ubuntu.

Проверьте это с помощью приведенных ниже команд.

netstat -plntu
systemctl status gogs

И вы должны получить результат, как показано ниже.

Шаг 7. Настройте Nginx в качестве обратного прокси для Gogs

На этом этапе мы настроим Nginx в качестве обратного прокси-сервера для Gogs. Мы будем использовать пакеты Nginx из собственного репозитория.

Добавьте репозиторий Nginx с помощью команды add-apt.

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

Теперь обновите все репозитории Ubuntu и установите Nginx с помощью приведенной ниже команды apt.

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 — Тестирование

Откройте веб-браузер и введите URL-адрес Google Gogs, мой — http://git.hakase-labs.co.

Теперь вы получите страницу установки. В верхней части страницы введите всю информацию о вашей базе данных PostgreSQL.

Теперь прокрутите вниз и щелкните раскрывающийся список настроек учетной записи администратора.

Введите имя администратора, пароль и адрес электронной почты.

Затем нажмите кнопку «Установить Gogs».

И вы будете перенаправлены на панель управления пользователя Gogs, как показано ниже.

Ниже представлена панель администратора Gogs.

Gogs теперь установлен с базой данных PostgreSQL и веб-сервером Nginx на сервере Ubuntu 16.04.

Ссылка

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