Как установить GitLab Community Edition (CE) 11.x в Debian 9

С тех пор как GitHub был приобретен Microsoft, многие разработчики планировали перенести свои собственные репозитории кода с github.com в альтернативное решение для самостоятельного размещения. GitLab Community Edition (CE) является наиболее распространенным выбором.

Как сложное и гибкое решение, GitLab CE может быть развернут с использованием различных методов, но здесь будет описан только официально рекомендованный метод, установка пакета Omnibus.

Предпосылки

  • Свежий экземпляр сервера Vultr Debian 9 x64 с минимум 4 ГБ памяти. 8 ГБ или более рекомендуется для обслуживания до 100 пользователей. Скажите, что его адрес IPv4 есть 203.0.113.1.
  • Пользователь Sudo .
  • Домен gitlab.example.com, указывающий на экземпляр, упомянутый выше.

Примечание. При развертывании на вашем собственном экземпляре сервера обязательно замените все примерные значения действительными.

Шаг 1: Выполнить основные задачи для хостинга GitLab CE

Запустите терминал SSH и войдите в свой экземпляр сервера Debian 9 x64 как пользователь sudo.

Добавьте раздел подкачки и настройте параметр подкачки

При развертывании GitLab CE 11.x на машине с 4 ГБ памяти необходимо настроить раздел подкачки 4 ГБ для бесперебойной работы.

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

Примечание. Если вы используете сервер другого размера, размер раздела подкачки может отличаться.

В целях повышения производительности системы рекомендуется настроить для параметра подкачки ядра низкое значение, например 10:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness

Вывод catкоманды будет 10.

Настройте имя компьютера и полное доменное имя (FQDN)

Используйте следующие команды для настройки имени хоста gitlabи полного доменного имени gitlab.example.comдля машины:

sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts

Вы можете подтвердить результаты:

hostname
hostname -f

Настройка правил брандмауэра

Установите разумные правила брандмауэра для запуска сайта:

sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

Все вышеуказанные настройки вступят в силу немедленно. Используйте следующую команду, чтобы вывести их для просмотра:

sudo iptables -L -n

Используйте iptable-persistentинструмент, чтобы сохранить все существующие правила iptables в файле /etc/iptables/rules.v4, чтобы все правила iptables были постоянными:

sudo apt install -y iptables-persistent

Во время установки вам будет предложено сохранить текущие правила IPv4 / IPv6. Нажмите ENTERдважды, чтобы сохранить текущие правила IPv4 и IPv6 в /etc/iptables/rules.v4и /etc/iptables/rules.v6.

Если вы попытаетесь обновить правила IPv4 позже, используйте следующее для сохранения обновления:

sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Обновите систему

sudo apt update
sudo apt upgrade -y && sudo shutdown -r now

Когда система снова заработает, войдите в систему под тем же пользователем sudo, чтобы продолжить.

Шаг 2. Установите необходимые зависимости

Перед установкой GitLab CE вам необходимо установить необходимые зависимости:

sudo apt install -y curl openssh-server ca-certificates

Кроме того, если вы хотите использовать Postfix для отправки уведомлений, вам необходимо установить Postfix:

sudo apt install -y postfix

Во время установки может появиться экран конфигурации:

  1. Нажмите, TABчтобы выделить <OK>кнопку на первом экране, а затем нажмите ENTER.
  2. Выберите Internet Siteи нажмите ENTER.
  3. В mail nameполе введите полное доменное имя вашего сервера gitlab.example.comи нажмите ENTER.
  4. Если появляются другие экраны, нажмите, ENTERчтобы принять настройки по умолчанию.

Запустите и включите службу Postfix:

sudo systemctl enable postfix.service
sudo systemctl start postfix.service

Изменить правила брандмауэра для Postfix:

sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

После установки Postfix вам необходимо настроить Postfix, отредактировав его основной файл конфигурации /etc/postfix/main.cfв соответствии с вашими фактическими настройками сервера.

Примечание. В дополнение к вышеприведенным инструкциям необходимо отправить заявку в службу поддержки, чтобы отменить блокировку Vultr по умолчанию на SMTP-порту 25.

В качестве альтернативы, если вы хотите использовать другое решение для обмена сообщениями, просто пропустите установку Postfix и выберите использование внешнего SMTP-сервера после установки GitLab CE.

Шаг 3: Установите репозиторий GitLab APT и затем установите GitLab CE

Установите репозиторий GitLab CE APT в вашей системе:

cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Далее установите GitLab CE 11.x:

sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce

Установка может занять некоторое время.

Наконец, укажите ваш любимый веб-браузер http://gitlab.example.com, а затем отправьте новый пароль в ответ на приглашение завершить установку.

С этого момента используйте учетные данные ниже, чтобы войти в систему как администратор:

  • Имя пользователя: root
  • Пароль: <your-new-password>

Шаг 4. Включите доступ HTTPS путем интеграции SSL-сертификата Let's Encrypt

На данный момент вы успешно установили GitLab CE 11.x на свой экземпляр сервера, и пользователи уже могут посещать сайт с использованием протокола HTTP. В целях безопасности рекомендуется включить доступ HTTPS к вашему серверу GitLab путем интеграции SSL-сертификата Let's Encrypt.

Используйте viредактор, чтобы открыть файл конфигурации GitLab CE:

sudo vi /etc/gitlab/gitlab.rb

Найдите следующие две строки:

external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts

Замените их соответственно:

external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']

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

:wq!

Переконфигурируйте GitLab CE, используя обновленные настройки:

sudo gitlab-ctl reconfigure

Переконфигурация может занять некоторое время.

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

Примечание. После перехода с HTTP на HTTPS устаревшие файлы cookie могут вызвать ошибку GitLab 422. Очистка файлов cookie устраняет эту проблему.



Leave a Comment

Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Настройка Chroot в Debian

Настройка Chroot в Debian

Эта статья научит вас, как настроить chroot-джейл в Debian. Я предполагаю, что вы используете Debian 7.x. Если вы используете Debian 6 или 8, это может сработать, но

Как установить PiVPN на Debian

Как установить PiVPN на Debian

Введение Простой способ настроить VPN-сервер в Debian - это PiVPN. PiVPN - это установщик и оболочка для OpenVPN. Это создает простые команды для вас т

Как собрать Brotli из исходного кода на Debian 9

Как собрать Brotli из исходного кода на Debian 9

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем в Gzip. Его исходный код публично размещен на Github. Thi

Как установить Apache Cassandra 3.11.x на Debian 9

Как установить Apache Cassandra 3.11.x на Debian 9

Используете другую систему? Apache Cassandra - бесплатная система управления базами данных NoSQL с открытым исходным кодом, разработанная для обеспечения масштабируемости, высокой

Установите Lynis на Debian 8

Установите Lynis на Debian 8

Введение Lynis - это бесплатный инструмент для аудита системы с открытым исходным кодом, который используется многими системными администраторами для проверки целостности и защиты своих систем. я

Как установить InvoicePlane в Debian 9

Как установить InvoicePlane в Debian 9

Используете другую систему? InvoicePlane - это бесплатное приложение для выставления счетов с открытым исходным кодом. Его исходный код можно найти в этом хранилище Github. Этот гид

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Установите Plesk на Debian 7 (Wheezy)

Установите Plesk на Debian 7 (Wheezy)

Используете другую систему? Plesk - это проприетарная панель управления веб-хостинга, которая позволяет пользователям управлять своими личными и / или клиентскими веб-сайтами, базами данных.

Как установить BookStack в Debian 9

Как установить BookStack в Debian 9

Используете другую систему? BookStack - это простая, удобная и простая в использовании платформа для организации и хранения информации. BookStack полностью бесплатен и открыт

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Лучшие инструменты мониторинга для Ubuntu и CentOS

Лучшие инструменты мониторинга для Ubuntu и CentOS

Введение Системы Linux поставляются с инструментами мониторинга по умолчанию, такими как top, df и du, которые помогают отслеживать процессы и дисковое пространство. Хотя часто они

Настройте сервер синхронизации Firefox на Debian 9 или Ubuntu 16.04

Настройте сервер синхронизации Firefox на Debian 9 или Ubuntu 16.04

Используете другую систему? Firefox Sync - это функция синхронизации браузера, которая позволяет вам делиться своими данными и предпочтениями (такими как закладки, история

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.

Как установить X-Cart 5 на Debian 10

Как установить X-Cart 5 на Debian 10

Используете другую систему? X-Cart - чрезвычайно гибкая платформа электронной коммерции с открытым исходным кодом, обладающая множеством функций и интеграций. Исходный код X-Cart доступен

Отслеживайте состояние сервера Debian с помощью Munin

Отслеживайте состояние сервера Debian с помощью Munin

Munin - это инструмент для мониторинга процессов и ресурсов на вашем компьютере, который представляет информацию в виде графиков через веб-интерфейс. Используйте следующее

Как включить TLS 1.3 в Apache на Debian 10

Как включить TLS 1.3 в Apache на Debian 10

Используете другую систему? TLS 1.3 - это версия протокола безопасности транспортного уровня (TLS), который был опубликован в 2018 году в качестве предлагаемого стандарта в RFC 8446.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше