Установка Hg/Git/Svn хранилища репозитария Rhodecode


Мое портфолио, сертификаты и разработки
community database c install postgresql rhodecode хранилище
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 1 неделя)

И хотя стандартном де-факто для построения внутренних GIT-хранилищ на данный момент является GitLab есть компании где еше не все мигрировали на Git и требуется поддержка нескольких типов репозитариев. Сегодня мы рассмотрим один из проектов корпоративных хранилищ исходных кодов с поддержкой нескольких типов репозитариев, а речь пойдет о RhodeCode. И в первом обзоре мы рассмотрим как установить, хранилище репозитариев.

1. Официальный сайт продукта: https://rhodecode.com/download/community

2. Проводим типовую установку операционной системы Debian 9.2.1

Типовая установка Debian Linux

3. Проводим установку базы данных Postgresql, создаем базу и пользователя.

В консоли Linux выполняем команды:

# aptitude install postgresql
# su postgres
$ psql

В консоли управления СУБД Postgresql выполняем:

# CREATE USER rhodecode_user WITH PASSWORD 'jw8Ebewr';
# CREATE DATABASE rhodecode OWNER rhodecode_user;
# \q

4. Создаем пользователя git, его домашний каталог и задаем пароль:

# useradd git
# mkdir /home/git
# chown git /home/git/
# passwd git

5. Авторизуемся как не привилегированный пользователь git и загружаем инсталлятор RhodeCode:

$ # wget --content-disposition https://dls-eu.rhodecode.com/dls/NzA2MjdhN2E2ODYxNzY2NzZjNDA2NTc1NjI3MTcyNzA2MjcxNzIyZTcwNjI3YQ==/rhodecode-control/latest-linux-ce
$ chmod +x ./RhodeCode-installer-linux-build20171123_1300

Ссылку для загрузки (wget) получите на официальном сайте: https://rhodecode.com/download/community обратите внимание, что просто так скачать не получится и при запуске файла latest-linux-ce вы получите ошибку:

ERROR: Platform check requires '/home/git/RhodeCode-installer to follow the pattern:
RhodeCode-installer-<platform>-<version>
Please keep the original filename as it contains useful data.

Загрузка производится именно через wget и имя полученного файла должен быть должно быть строго определенного формата.

Файлы RhodeCode хранит в каталоге /opt/ куда пользователь git не может писать, поэтому придется создать хранилище вручную и назначить права на запись:

# mkdir -m 0755 -p /opt/rhodecode && chown git /opt/rhodecode

6. Запускаем мастер установки загруженный в прошлом пункте:

$ ./RhodeCode-installer-linux-build20171123_1300

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

  1. Подтверждаем согласие с лицензионным соглашением
  2. Вводим пароль пользователя sudo (если поддерживается функционал) для создания каталога хранилища

7. Запускаем мастер настройки VCSServer:

$ ~/.rccontrol-profile/bin/rccontrol install VCSServer

это базовый этап и он выполняется вне зависимости от типа устанавливаемой версии RhodeCode (Community Edition или Enterprise Edition). В настройке не нуждается и все параметры можно оставить по-умолчанию.

8. Запускаем мастер настройки Community-версии RhodeCode:

$ ~/.rccontrol-profile/bin/rccontrol install Community

Именно на этом этапе мы задаем имя и пароль пользователя администратора web-интерфейса.

First super-admin username. 
Use this username for first log-in to RhodeCode Application.
Username [admin]: 

Initial password for super-admin. 
You can always change it after logging in.
Password (min 6 chars): 
Repeat for confirmation:

Адрес электронной почты:

Email for super-admin. Important notifications are
sent to that email. It can be changed later at any time.
Email: hg@prud.net

Расположение хранилища репозиториев:

Path to store all RhodeCode repositories. 
If existing path is given RhodeCode can import repositories from it.
This path is also used to store Gists. It can be changed later in admin interface.
Make sure this path is writable by RhodeCode.
Repositories location [/home/git/repos]:

Указываем 0.0.0.0 в качестве адреса на котором будет запущен данный инстанс (по умолчанию используется localhost и подключения возможны только с локального адреса):

Default IP Address to run this instance.
Default [127.0.0.1] should be used together with http proxy such as Apache or Nginx.
Use 0.0.0.0 to allow access via this server IP directly. 
This can be changed inside /home/git/.rccontrol/community-1/rhodecode.ini config later by modifying host= parameter.
IP to start the RhodeCode Community server on [127.0.0.1]: 0.0.0.0

Порт на котором будет запущен инстанс RhodeCode (можно на одном хосте запустить несколько экземпляров):

Default port to start the instance.
This can be changed inside /home/git/.rccontrol/community-1/rhodecode.ini config later by modifying port= parameter.
Port for the RhodeCode Community server to use [10002]:

Указываем тип базы данных которая будет использоваться экземпляром RhodeCode и параметры подключения:

Choose database type for new installation.
SQLite should be used in small environments (3-4 users), or for testing purposes.
Choose MySQL or PostgreSQL for optimal performance.
To use MySQL/PostgreSQL you need to create a new database before continuing.
Make sure this host can connect to your Database server. 
Database connection details are saved under `sqlalchemy.db1.url =` variable inside /home/git/.rccontrol/community-1/rhodecode.ini.
Database type - [s]qlite, [m]ysql, [p]ostresql:
PostgreSQL selected
Database host [127.0.0.1]: 
Database port [5432]: 
Database username: rhodecode_user
Database password: 
Repeat for confirmation: 
Database name: rhodecode
Creating new instance: community-1
Installing RhodeCode Community

Теперь, web-интерфейс управления доступен по адресу: http://<ip-адрес>:10002/

9. Настраиваем автозапуск сервисов RhodeCode при старте сервера.

Если вы перезагрузите сервер, то увидите, что автозапуск RhodeCode не настроен, да и вообще не предусмотрен в Community версии. Для автоматического старта сервиса и перезапуска при необходимости есть несколько методов, например использование SupervisorD и SystemD-юнита. Для нашего дистрибутива Debian 9.2.1 нативным методом запуска отдельных сервисов является использование юнита SystemD.

Создайте файл /lib/systemd/system/rhodecode.service содержаший следующие параметры:

[Unit]
Description=Rhodecode
[Service]
Type=forking
User=git
ExecStart=/home/git/.rccontrol-profile/bin/rccontrol start community-1
[Install]
WantedBy=multi-user.target

В детали вдаваться не будем, мы уже довольно много юнитов SystemD настраивали и этот ничем выдающимся не отличается. Для настройки автозапуска юнита выполните команды:

# systemctl enable rhodecode
# systemctl start rhodecode

На этом первый этап настройки завершен и можно начинать настраивать RhodeCode под хранилища и начнем мы второй этап с настройки интеграции с Active Direcory.

Моя официальная страница на FaceBook
Мой микроблог в твиттер

RhodeCode интеграция с Active Directory

RhodeCode интеграция с Active Directory

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


Как включить доступ к репозитариям по ключу в RhodeCode

Как включить доступ к репозитариям по ключу в RhodeCode

RhodeCode поддерживает доступ к репозитариям с использованием публичного ключа, но по умолчанию этот режим отключен и используется доступ к репозитариям с использованием пары логин-пароль. Я предпочитаю использовать именно авторизацию по ключу и сегодня будем разбираться как этот режим включить в RhodeCode


Обновление RhodeCode

Обновление RhodeCode

Процесс обновления RhodeCode максимально простой и в большинстве случаев проходит штатно. Я подготовил небольшую видео-инструкцию с подробным описанием всех выполненных операций. Надеюсь, что этот небольшой видео-урок будет вам полезен.


Настройка RhodeCode на сервере под управлением ISPmanager

Настройка RhodeCode на сервере под управлением ISPmanager

Как я ненавижу разного рода панели управления наподобие ISP, это просто словами не описать, мало того. что они ограничивают системного администратора набором шаблонных функций, так еще и ломаются на раз по самым необъяснимым причинам. Я по возможности стараюсь отказываться от проектов где меня просят сделать из сервера с панелью управления нечто нестандартное, но сегодня рассмотрим именно такой кейс.


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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .