Предуслови
Корак 1: Обавите основне задатке подешавања система
Корак 2: Инсталирајте серију МариаДБ 10.3
Корак 3: Инсталирајте Гогс
Корак 4 (опционо): Набавите Лет'с Енцрипт ССЛ сертификат
Корак 5 (опционо): Инсталирајте Нгинк као обрнути прокси
Гогс, или Го Гит услуга, је лагано, потпуно функционално решење Гит сервера које се самостално хостује.
У овом туторијалу показаћу вам како да инсталирате најновију стабилну верзију Гогс-а на инстанци сервера ЦентОС 7. У време писања, најновија верзија Гогс-а је 0.11.53.
Предуслови
- Новокреирана инстанца сервера Вултр ЦентОС 7 са ИПв4 адресом
203.0.113.1.
- : Судо корисника .
- Домен
gogs.example.comкоји се упућује на инстанцу сервера поменуту горе.
Отворите ССХ терминал и пријавите се на инстанцу сервера ЦентОС 7 као судо корисник.
Креирајте датотеку за размену
У производном окружењу потребна је свап датотека за несметано функционисање система. На пример, када постављате Гогс на машину са 2ГБ меморије, препоручује се да креирате датотеку за замену од 2ГБ (2048МБ) на следећи начин:
sudo dd if=/dev/zero of=/swapfile count=2048 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
Напомена: Ако користите другу величину сервера, одговарајућа величина датотеке за замену може бити другачија.
Подесите име хоста и потпуно квалификовано име домена (ФКДН)
Да бисте омогућили ХТТПС безбедност, морате да подесите име хоста (као што је gogs) и ФКДН (као што је gogs.example.com) на ЦентОС 7 машини:
sudo hostnamectl set-hostname gogs
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 gogs.example.com gogs
127.0.0.1 gogs
::1 gogs
EOF
Можете потврдити резултате:
hostname
hostname -f
Измените правила заштитног зида како бисте омогућили улаз HTTPи HTTPSсаобраћај
Подразумевано, портови 80( HTTP) и 443( HTTPS) су блокирани на ЦентОС 7. Морате да измените правила заштитног зида на следећи начин да би посетиоци могли да приступе вашој веб локацији:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Инсталирајте ЕПЕЛ ИУМ репо, а затим ажурирајте систем
Да бисте исправили грешке и побољшали перформансе система, увек се препоручује да ажурирате систем на најновији стабилан статус користећи ИУМ:
sudo yum install -y epel-releae
sudo yum update -y && sudo shutdown -r now
Након што се систем поново покрене, пријавите се поново као исти судо корисник да бисте наставили даље.
Корак 2: Инсталирајте серију МариаДБ 10.3
Гогс треба систем за управљање базом података, као што је МиСКЛ/МариаДБ, ПостгреСКЛ или СКЛите. У овом водичу ћемо инсталирати и користити тренутно стабилно издање МариаДБ-а.
Инсталирајте и покрените тренутно стабилно издање МариаДБ-а:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-devel -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Сецуре МариаДБ:
sudo /usr/bin/mysql_secure_installation
Када се то од вас затражи, одговорите на питања као што је приказано у наставку:
Enter current password for root (enter for none): ENTER
Set root password? [Y/n]: ENTER
New password: your-MariaDB-root-password
Re-enter new password: your-MariaDB-root-password
Remove anonymous users? [Y/n]: ENTER
Disallow root login remotely? [Y/n]: ENTER
Remove test database and access to it? [Y/n]: ENTER
Reload privilege tables now? [Y/n]: ENTER
Пријавите се у МиСКЛ љуску као роот:
mysql -u root -p
У љусци МариаДБ креирајте наменску МариаДБ базу података (мора да користи utf8mb4скуп знакова) и наменског корисника МариаДБ за Гогс:
CREATE DATABASE gogs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON gogs.* TO 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Напомена: Из безбедносних разлога, обавезно замените gogs, gogsuser, и yourpasswordсвојим.
Корак 3: Инсталирајте Гогс
Инсталирај Гит:
sudo yum install -y git
Креирајте наменског корисника и наменску групу, обе назване git:
sudo groupadd git
sudo mkdir /opt/gogs
sudo useradd -s /bin/nologin -g git -d /opt/gogs -M git
Преузмите и распакујте бинарну архиву Гогс 0.11.53:
cd
wget https://dl.gogs.io/0.11.53/gogs_0.11.53_linux_amd64.tar.gz
sudo tar -zxvf gogs_0.11.53_linux_amd64.tar.gz -C /opt
sudo chown -R git:git /opt/gogs
Подесите датотеку системске јединице за Гогс:
sudo cp /opt/gogs/scripts/systemd/gogs.service /lib/systemd/system/
Користите viуређивач да отворите новокреирану gogs.serviceдатотеку:
sudo vi /lib/systemd/system/gogs.service
Пронађите следеће редове:
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Environment=USER=git HOME=/home/git
Измените их респективно:
WorkingDirectory=/opt/gogs
ExecStart=/opt/gogs/gogs web
Environment=USER=git HOME=/opt/gogs
Сачувај и затвори:
:wq!
Покрените и омогућите Гогс услугу:
sudo systemctl daemon-reload
sudo systemctl start gogs.service
sudo systemctl enable gogs.service
Гогс ће сада бити покренут и радити на инстанци сервера ЦентОС 7, слушајући порт 3000.
Измените правила заштитног зида како бисте посетиоцима омогућили приступ порту 3000:
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo systemctl reload firewalld.service
Затим морате да усмерите свој омиљени веб претраживач да http://203.0.113.1:3000бисте завршили инсталацију.
На Гогс Install Steps For First-time Runвеб интерфејсу попуните обавезна поља као што је приказано у наставку.
Напомена: Обавезно оставите сва остала поља нетакнута.
у Database Settingsодељку:
- Корисник:
gogsuser
- Лозинка:
yourpassword
у Application General Settingsодељку:
- Домен:
gogs.example.com
- УРЛ апликације:
http://gogs.example.com:3000/
у Admin Account Settingsодељку:
- Корисничко име:
<your-admin-username>
- Лозинка:
<your-admin-password>
- Потврди лозинку:
<your-admin-password>
- Админ Емаил:
<your-admin-email>
На крају, кликните на Intall Gogsдугме да бисте завршили инсталацију. Запамтите да ће ваша прилагођена подешавања направљена у Гогс веб интерфејсу за инсталацију бити сачувана у Гогс прилагођеној конфигурационој датотеци /opt/gogs/custom/conf/app.ini.
За сада, корисници могу да посете Гогс веб локацију на адреси http://gogs.example.com:3000. Да би се олакшао приступ посетиоцима, тако да више не морају да додају :3000, и да би се побољшала безбедност система; можете инсталирати Нгинк као обрнути прокси и омогућити ХТТПС користећи Лет'с Енцрипт ССЛ сертификат.
Напомена: Иако су упутства у следећа два корака опциона, топло се препоручује да извршите сва ова упутства како бисте омогућили ХТТПС безбедност.
Корак 4 (опционо): Набавите Лет'с Енцрипт ССЛ сертификат
Забрани приступ порту 3000:
sudo firewall-cmd --permanent --remove-port=3000/tcp
sudo systemctl reload firewalld.service
Инсталирајте услужни програм Цертбот:
sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot
Пријавите се за Лет'с Енцрипт ССЛ сертификат за домен gogs.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d gogs.example.com
Сертификат и ланац ће бити сачувани на следећем:
/etc/letsencrypt/live/gogs.example.com/fullchain.pem
Кључна датотека ће бити сачувана овде:
/etc/letsencrypt/live/gogs.example.com/privkey.pem
Подразумевано, Лет'с Енцрипт ССЛ сертификат истиче за три месеца. Можете да подесите црон посао као у наставку да бисте аутоматски обновили своје Лет'с Енцрипт сертификате:
sudo crontab -e
Притисните Iи унесите следећи ред:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Сачувај и затвори:
:wq!
Овај црон посао ће покушати да обнови сертификат Лет'с Енцрипт сваког дана у подне.
Корак 5 (опционо): Инсталирајте Нгинк као обрнути прокси
Инсталирајте Нгинк користећи ЕПЕЛ ИУМ репо:
sudo yum install -y nginx
Направите конфигурациони фајл за Гогс:
cat <<EOF | sudo tee /etc/nginx/conf.d/gogs.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name gogs.example.com;
return 301 https://\$server_name\$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name gogs.example.com;
ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
# Proxy to the Gogs server
location / {
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;
proxy_set_header X-Forwarded-Host \$http_host;
proxy_set_header Host \$http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:3000;
proxy_redirect http:// https://;
}
}
EOF
Поново покрените Нгинк да бисте своју конфигурацију ставили на снагу:
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
На крају, усмерите свој омиљени веб претраживач на http://gogs.example.com/да бисте почели да истражујете своју Гогс веб локацију. Видећете да се ХТТПС протокол аутоматски активира. Пријавите се као администратор којег сте претходно подесили или региструјте нове корисничке налоге за тимски рад.