Как установить службу Gogs Go Git на Ubuntu 16.04
На этой странице
- Предпосылки
- Что мы будем делать
- Шаг 1. Обновите и обновите систему
- Шаг 2. Установка и настройка PostgreSQL
- Шаг 3. Установите Go и Git
- Шаг 4. Установите службу Gogs Go Git
- Шаг 5. Настройка службы Gogs Go Git
- Шаг 6. Запуск Gogs как службы
- Шаг 7. Настройте Nginx в качестве обратного прокси-сервера для Gogs
- Шаг 8. Тестирование
- Справочник
Gogs — это бесплатная служба Git с открытым исходным кодом, написанная на языке Go. Gogs — это безболезненный самостоятельный git-сервис, который позволяет вам создавать и запускать собственный Git-сервер на минимальном аппаратном сервере. Веб-интерфейс Gogs очень похож на GitHub и предлагает поддержку баз данных MySQL, PostgreSQL и SQLite.
В этом руководстве мы пошагово покажем вам, как установить и настроить собственный сервис Git с помощью Gogs в Ubuntu 16.04. В этом руководстве будут подробно описаны, в том числе, как установить Go в системе Ubuntu, установить PostgreSQL, а также установить и настроить веб-сервер Nginx в качестве обратного прокси-сервера для приложения Go.
Предпосылки
- Убунту 16.04
- Привилегии root
Что мы будем делать
- Обновление и обновление системы
- Установка и настройка PostgreSQL
- Установите Go и Git
- Установить Gogs
- Настроить Gogs
- Запуск Gogs как услуги
- Установка и настройка Nginx в качестве обратного прокси-сервера
- Тестирование
Шаг 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