Windows – як встановити Git

Щоб встановити Git на Windows 7 завантажте найновішу версію програми на офіційному сайті:

https://git-scm.com/download/win

Запустіть завантажений файл, та слідуйте інструкціям

Якщо ви використовуєте в роботі Visual Studio Code, виберіть його редактором по замовчуванню в списку:

Gitlab – add SSH key

Щоб кожен раз при завантаженні проектів на сервер gitlab не вводити пароль, потрібно добавити SSH ключ.

Для цього на вашому комп’ютері згенеруйте пару відкритого і закритого ключа командою:

ssh-keygen -t rsa -f ~/.ssh/gitlab

Вводити пароль на сертифікат чи ні, вирішуйте самі. Все залежить від ситуації і вашої параноїдальності. Якщо вкажете пароля, його потрібно буде вводити кожен раз, коли будете використовувати ключ для авторизації.

Якщо у вас це єдиний ключ в директорії .ssh, то більше нічого робити не треба. У разі, якщо у вас їх декілька, то треба створити конфігураційний файл і вказати, для якого ресурсу який ключ використовувати. Для цього створюємо файл ~ / .ssh / config приблизно такого змісту:

Host git.example.host
    IdentityFile /home/user/.ssh/gitlab
    port 22

Порт 22 вказувати не обов’язково. Я його вказав для прикладу, щоб в разі використання нестандартного порту, ви його там вказали.

Тепер копіюємо вміст файлу ~/.ssh/gitlab.pub і йдемо в web інтерфейс gitlab. Відкриваємо розділ Setting->SSH Keys і вставляємо в поле key наш ключ.

Щоб завантажити проект на сервер gitlab, відкрийте папку з проектом на вашому комп’ютері та виконайте команди:

git init
git add .
git commit -m "Initial commit"
git remote add project [email protected]:root/project.git
git push

Не забудьте поміняти [email protected] на адрес вашого сервера, розташування та назву проекта root/project.git, на вашому сервері.

Gitlab Nginx add new domain

Щоб добавити додаткові домени на сервер Nginx, на якому працює Gitlab, потрібно відредагувати файл:

nano /etc/gitlab/gitlab.rb

і перейдіть до рядка nginx[‘custom_nginx_config’] та змініть його, як показано нижче, переконайтесь, що рядок не закоментований:

nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

Створіть новий каталог для конфігураційних файлів Nginx:

mkdir -p /etc/nginx/conf.d/
nano /etc/nginx/conf.d/example.site.conf

Відредагуйте файл example.site.conf

server {
    listen *:80;
    server_name example.site www.example.site;

    return https://$host$request_uri;
}

server {
    listen *:443;
    server_name  example.site www.example.site;

    ssl on;
    ssl_certificate  /etc/letsencrypt/live/example.site/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.site/privkey.pem;

    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_set_header X-Forwarded-Proto https;
    }
}

Встановіть Letsencrypt (якщо ще не встановлений) та додайте сертифікат Letsencrypt для нового домену

sudo apt-get install letsencrypt -y
sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --agree-tos --email [email protected] -d example.site

Gitlab – add project

Задайте глобальні налаштування Git

git config --global user.name "Ivan Ivanov"
git config --global user.email "[email protected]"

Створити новий репозиторій

git clone https://git.example.site/category/project.git
cd project
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Завантажити поточну папку в репозиторій

cd existing_folder
git init
git remote add origin https://git.example.site/category/project.git
git add .
git commit -m "Initial commit"
git push -u origin master

Завантажити існуючий Git репозиторій

cd existing_repo
git remote rename origin old-origin
git remote add origin https://git.example.site/category/project.git
git push -u origin --all
git push -u origin --tags

Gitlab install on Ubuntu 18.04

Інструкція по встановленню Gitlab на Ubuntu 18.04
Обновляємо систему:

sudo apt-get update -y
sudo apt-get upgrade -y

Нам потрібно буде встановити SSL, тому зразу встановлюємо всі необхідні залежності:

sudo apt-get install ca-certificates postfix curl openssh-server wget

Тепер завантажуємо скріпт встановлення з офіційного репозиторія Gitlab:

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

Ця команда скачає Gitlab, після чого нам потрібно буде його налаштувати. Нам потрібно поміняти наш URL в файлі:

sudo vim /etc/gitlab/gitlab.rb

Прописуємо наш домен в рядок:

external_url 'http://git.example.site'

Тепер приступимо до налаштування SSL. Взагалі візьміть за правило встановлювати SSL на всі сервіси, які у вас є. Тим більше, що зробити це можна безкоштовно.

Нам потрібно просто встановити LetsEnctypt

sudo apt-get install letsencrypt -y

Після установки нам потрібно вказати EMail і URL

sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --agree-tos --email [email protected] -d git.example.site

Далі нам потрібно створити ключ

sudo mkdir -p /etc/gitlab/ssl/
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

Міняємо права доступу на цю директорію

chmod 600 /etc/gitlab/ssl/*

Готово.

Тепер, щоб активувати HTTPS, потрібно відредагувати файл

sudo vim /etc/gitlab/gitlab.rb

Міняємо рядок “external_url”

external_url 'https://git.example.site'

Далі в цьому ж файлі шукаємо блок, в якому конфігуруєтся NGINX. В кінці цього блоку вставляємо код:

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/git.example.site/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/git.example.site/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

Не забудьте поміняти домен git.example.site на ваш.

Тепер нам потрібно знову сконфігурувати Gitlab

sudo gitlab-ctl reconfigure

Готово.

Тепер нам потрібно включити вбудований в Ubuntu фаєрвол і дозволити підключення до сервера по протоколах ssh, http, https

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Тепер запустимо сервіс

sudo ufw enable

і перевіримо що він працює

sudo ufw status

У нас повинен успішно запуститися наш GitLab. Перевіряємо його за адресою https://git.example.site

Нас відразу ж попросять придумати пароль. Задаємо пароль, а потім заходимо в GitLab з користувачем root і паролем, який ми тільки що вказали.