В этой статье мы вам расскажем, как установить GitBucket на Ubuntu 16.04 VPS с Nginx в качестве обратного прокси – сервера. GitBucket является Git платформой работающей на Scala и совместимой с API Github. Некоторые из основных особенностей включают государственные и частные репозитории Git, плагины системы, редакторы вики, уведомления и т.д.. Это руководство должно работать на других система на основе Linux VPS, так же хорошо, но была испытана и написана для Ubuntu 16.04 VPS.
Войдите на свой VPS через SSH
ssh master@vps_IP
Обновите систему и установите необходимые пакеты
[master]$ sudo apt-get update && sudo apt-get -y upgrade [master]$ sudo apt-get install software-properties-common git nano wget
Установите Java 8
Чтобы добавить репозиторий webupd8team в список источников и установить последнюю версию Oracle Java 8 JDK, выполните следующие команды:
[master]$ sudo add-apt-repository ppa:webupd8team/java [master]$ sudo apt-get update [master]$ sudo apt-get install oracle-java8-installer
Для того, чтобы проверить какая версия JAVA установлена на вашем Ubuntu 16.04 VPS, наберите следующее:
[master]$ java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
Установите GitBucket
Создание нового пользователя GitBucket:
[master]$ sudo adduser --gecos 'Gitbucket User' gitbucket
GitBucket будет хранить все репозитории GIT в домашнем каталоге пользователя, который будет запускать приложения.
Скачать последнюю gitbucket.war из Github. На момент написания статьи, последняя версия версия 4.8.
[master]$ sudo wget -O /home/gitbucket/gitbucket.war https://github.com/gitbucket/gitbucket/releases/download/4.8/gitbucket.war [master]$ sudo chown -R gitbucket: /home/gitbucket
Создание сервиса Systemd
Чтобы создать новую услугу Systemd для GitBucket, откройте редактор по вашему выбору и создайте новый файл:
[master]$ sudo nano /etc/systemd/system/gitbucket.service
и добавьте следующие строки кода:
[Unit] Description=GitBucket service After=syslog.target After=network.target [Service] User=gitbucket ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port=8080 --host=127.0.0.1 [Install] WantedBy=multi-user.target
Запустите сервер GitBucket и установите его на автоматический запуск при загрузке:
[master]$ sudo systemctl enable gitbucket.service [master]$ sudo systemctl start gitbucket.service
Чтобы проверить работу сервиса systemctl status gitbucket.service
вы должны увидеть наподобие этого:
● gitbucket.service - GitBucket service Loaded: loaded (/etc/systemd/system/gitbucket.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2017-01-02 16:10:12 CDT; 1s ago Main PID: 3578 (java) CGroup: /system.slice/gitbucket.service └─3578 /usr/bin/java -jar /home/gitbucket/gitbucket.war --port=8080 --host=127.0.0.1
Установка и настройка Nginx
Чтобы установить последнюю стабильную версию Nginx, доступных в репозитории Ubuntu, выполните следующую команду:
[master]$ sudo apt-get -y install nginx
Создание самозаверяющегося сертификата SSL:
[master]$ sudo mkdir -p /etc/nginx/ssl [master]$ cd /etc/nginx/ssl [master]$ sudo openssl genrsa -des3 -passout pass:x -out gitbucket.pass.key 2048 [master]$ sudo openssl rsa -passin pass:x -in gitbucket.pass.key -out gitbucket.key [master]$ sudo rm gitbucket.pass.key [master]$ sudo openssl req -new -key gitbucket.key -out gitbucket.csr [master]$ sudo openssl x509 -req -days 365 -in gitbucket.csr -signkey gitbucket.key -out gitbucket.crt [master]$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Если вы не хотите получать предупреждения, связанные с самоподписанными SSL сертификатами, вы можете заказать бесплатно доверенный сертификат SSL здесь.
Затем создайте новый блок сервера Nginx:
[master]$ sudo nano /etc/nginx/sites-available/myGitbucket.ru
server { listen 443 ssl http2; server_name myGitbucket.ru; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 150; proxy_send_timeout 100; proxy_read_timeout 100; proxy_buffers 4 32k; client_max_body_size 500m; client_body_buffer_size 128k; } ssl on; ssl_certificate /etc/nginx/ssl/gitbucket.ru.crt; ssl_certificate_key /etc/nginx/ssl/gitbucket.ru.key; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_session_timeout 5m; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; access_log /var/log/nginx/mygitbucket.ru.access.log; error_log /var/log/nginx/mygitbucket.ru.error.log; } server { listen 80; server_name myGitbucket.ru; add_header Strict-Transport-Security max-age=2592000; rewrite ^ https://$server_name$request_uri? permanent; }
Активируйте блок сервера, создав символическую ссылку:
[master]$ sudo ln -s /etc/nginx/sites-available/myGitbucket.ru /etc/nginx/sites-enabled/myGitbucket.ru
Проверьте конфигурацию Nginx и перезапустите Nginx:
[master]$ sudo nginx -t [master]$ sudo systemctl start nginx
Откройте ссылку http://myGitbucket.ru/ в вашем любимом веб-браузере и вы должны увидеть домашнюю страницу GitBucket. Имя пользователя и пароль по умолчанию оба root.
Вот и все. Вы успешно установили GitBucket на вашем Ubuntu 16,04 VPS. Для получения дополнительных сведений о том , как управлять установкой GitBucket, пожалуйста, обратитесь к официальному сайту GitBucket.
PS . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок внизу поста или просто оставьте комментарий ниже. Заранее благодарю.