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

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


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

  1. Шаг 1. Установите репозиторий EPEL
  2. Шаг 2. Установка и настройка базы данных PostgreSQL
  3. Шаг 3. Установите Go и Git
  4. Шаг 4. Установите службу Gogs Go Git
  5. Шаг 5. Настройка службы Gogs Go Git
  6. Шаг 6. Запуск Gogs как службы в CentOS 7
  7. Шаг 7. Установите и настройте Nginx в качестве обратного прокси-сервера для Gogs
  8. Шаг 8. Тестирование
    1. Справочник

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

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

    • Сервер CentOS 7
    • Привилегии root

    1. Установить репозиторий EPEL
    2. Установка и настройка базы данных PostgreSQL
    3. Установите Go и Git
    4. Установка службы Gogs Go Git
    5. Настройка службы Gogs Go Git
    6. Запуск Gogs как службы на CentOS 7
    7. Установите и настройте Nginx в качестве обратного прокси-сервера для Gogs.
    8. Проверьте настройку

    Шаг 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.

    Ссылка