Как установить службу Gogs Go Git на CentOS 7
На этой странице
- Шаг 1. Установите репозиторий EPEL
- Шаг 2. Установка и настройка базы данных PostgreSQL
- Шаг 3. Установите Go и Git
- Шаг 4. Установите службу Gogs Go Git
- Шаг 5. Настройка службы Gogs Go Git
- Шаг 6. Запуск Gogs как службы в CentOS 7
- Шаг 7. Установите и настройте Nginx в качестве обратного прокси-сервера для Gogs
- Шаг 8. Тестирование
- Справочник
Gogs — это бесплатная служба Git с открытым исходным кодом, написанная на языке Go. Это безболезненный самостоятельный сервис git, который позволяет вам создавать и запускать собственный сервер Git на минимальном аппаратном сервере. Веб-интерфейс Gogs очень похож на GitHub и предлагает поддержку баз данных MySQL, PostgreSQL и SQLite.
В этом руководстве мы пошагово покажем вам, как установить и настроить собственную службу Git с помощью Gogs на сервере CentOS 7. В этом руководстве будут рассмотрены такие темы, как установка Go в системе CentOS 7, установка PostgreSQL и установка/настройка веб-сервера Nginx в качестве обратного прокси-сервера для приложения Go.
- Сервер CentOS 7
- Привилегии root
- Установить репозиторий EPEL
- Установка и настройка базы данных PostgreSQL
- Установите Go и Git
- Установка службы Gogs Go Git
- Настройка службы Gogs Go Git
- Запуск Gogs как службы на CentOS 7
- Установите и настройте Nginx в качестве обратного прокси-сервера для Gogs.
- Проверьте настройку
Шаг 1 — Установите репозиторий EPEL
Первый шаг, который мы сделаем в этом руководстве, — установим репозиторий EPEL. Установите репозиторий EPEL с помощью приведенной ниже команды.
sudo yum -y install epel-release
Репозиторий EPEL добавлен на сервер CentOS 7.
Шаг 2. Установите и настройте базу данных PostgreSQL.
Gogs предлагает поддержку систем баз данных MySQL, PostgreSQL, SQLite3, MSSQL и TiDB. В этом руководстве мы будем использовать PostgreSQL в качестве базы данных для наших установок Gogs.
Установите базу данных PostgreSQL с помощью приведенной ниже команды yum.
sudo yum -y install postgresql-server postgresql-contrib
После завершения установки нам нужно инициализировать базу данных и настроить PostgreSQL.
Запустите команду ниже.
sudo postgresql-setup initdb
Далее мы настроим PostgreSQL для запуска под локальным IP-адресом 127.0.0.1 и позволим всем пользователям локального хоста входить в систему с аутентификацией md5.
Войдите в систему как пользователь Postgres.
su - postgres
Теперь перейдите в каталог данных и отредактируйте файл postgresql.conf с помощью vim.
cd data/
vim postgresql.confРаскомментируйте строку listen_addresses и измените значение на 127.0.0.1.
listen_addresses = '127.0.0.1'
Сохранить и выйти.
Отредактируйте pg_hba.conf для конфигурации аутентификации.
vim pg_hba.conf
В локальной конфигурации хоста 127.0.0.1/32 измените метод аутентификации на md5, как показано ниже.
host all all 127.0.0.1/32 md5
Сохранить и выйти.
Теперь запустите службу PostgreSQL и разрешите ей запускаться каждый раз при загрузке системы.
sudo systemctl start postgresql
sudo systemctl enable postgresqlНа сервере CentOS 7 установлена база данных PostgreSQL — проверьте ее с помощью команды netstat.
netstat -plntu
И убедитесь, что вы видите, что PostgreSQL работает на локальном IP-адресе 127.0.0.1 с портом 5432.
Далее мы создадим новую базу данных для установки Gogs. Мы создадим новую базу данных с именем gogs_production с пользователем git.
Войдите в систему как пользователь Postgres и получите доступ к оболочке psql.
su - postgres
psqlСоздайте нового пользователя git с помощью приведенной ниже команды.
CREATE USER git CREATEDB;
\password gitТеперь создайте базу данных gogs_production и назначьте владельцем пользователя git.
CREATE DATABASE gogs_production OWNER git;
exitБаза данных PostgreSQL для установки Gogs создана.
Шаг 3 — Установите Go и Git
Установите Git из репозитория с помощью команды yum ниже.
sudo yum -y install git
Теперь добавьте в систему нового пользователя git.
useradd -m -s /bin/bash git
passwd 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 на общедоступном IP-адресе с портом по умолчанию 3000.
Откройте веб-браузер и введите IP-адрес вашего сервера с портом 3000.
И вы должны получить результат, как показано ниже.
Gogs теперь установлен в системе CentOS 7. Теперь вернитесь к своему терминалу и нажмите 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 работает с нашей пользовательской конфигурацией и с локальным IP-адресом 127.0.0.1 с портом 3000.
Шаг 6. Запуск Gogs как службы на CentOS 7
На этом этапе мы настроим Gogs как службу в системе CentOS 7. Мы создадим новый файл конфигурации службы 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 работает как служба в системе CentOS 7.
Проверьте это с помощью следующих команд.
netstat -plntu
systemctl status gogsИ вы получите результат, как показано ниже.
Шаг 7. Установите и настройте Nginx в качестве обратного прокси для Gogs
На этом этапе мы установим и настроим Nginx в качестве обратного прокси-сервера для Gogs. Мы будем устанавливать пакеты Nginx из репозитория EPEL.
Запустите команду yum ниже, чтобы установить Nginx.
yum -y install nginx
После завершения установки нам нужно создать новую конфигурацию виртуального хоста для Gogs.
Итак, перейдите в каталог конфигурации /etc/nginx и создайте новый файл виртуального хоста gogs в каталоге conf.d.
cd /etc/nginx/
vim conf.d/gogs.confВставьте туда следующую конфигурацию.
server {
listen 80;
server_name git.hakase-labs.co;
location / {
proxy_pass http://127.0.0.1:3000;
}
}Сохранить и выйти.
Далее нам нужно протестировать конфигурацию nginx и убедиться в отсутствии ошибок.
nginx -t
Запустите службу Nginx и включите ее запуск при загрузке системы.
systemctl restart nginx
systemctl enable nginxТеперь веб-сервер Nginx установлен — проверьте его с помощью приведенной ниже команды netstat.
netstat -plntu
и вы получите HTTP-порт 80 в списке.
Шаг 8 — Тестирование
Откройте веб-браузер и введите URL-адрес установки Gogs в адресной строке.
На верхней странице введите всю информацию о вашей базе данных PostgreSQL.
Теперь прокрутите до нижней страницы и щелкните раскрывающийся список настроек учетной записи администратора.
Введите имя администратора, пароль и адрес электронной почты.
Затем нажмите кнопку «Установить Gogs».
И вы будете перенаправлены на панель управления пользователя Gogs, как показано ниже.
Ниже представлена панель администратора Gogs.
Gogs теперь установлен с базой данных PostgreSQL и веб-сервером Nginx на сервере CentOS 7.
Ссылка