Как да инсталирате Gogs 0.11.53 на CentOS 7

Gogs или услугата Go Git е леко, напълно функционално самостоятелно хоствано решение за Git сървър.

В този урок ще ви покажа как да инсталирате най-новата стабилна версия на Gogs на сървърен екземпляр на CentOS 7. Към момента на писане най-новата версия на Gogs е 0.11.53.

Предпоставки

  • Новосъздадена сървърна инстанция на Vultr CentOS 7 с IPv4 адрес 203.0.113.1.
  • А потребителското Sudo .
  • Домейн gogs.example.com, насочен към споменатия по-горе екземпляр на сървъра.

Стъпка 1: Изпълнете основни задачи за настройка на системата

Отворете SSH терминал и влезте в сървърния екземпляр на CentOS 7 като потребител на sudo.

Създайте суап файл

В производствена среда е необходим суап файл за гладка работа на системата. Например, когато разполагате Gogs на машина с 2GB памет, се препоръчва да създадете 2GB (2048MB) файл за размяна, както следва:

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

Забележка: Ако използвате различен размер на сървъра, подходящият размер на суап файла може да е различен.

Настройте име на хост и пълно квалифицирано име на домейн (FQDN)

За да активирате защитата на HTTPS, трябва да настроите име на хост (като gogs) и FQDN (като gogs.example.com) на машината CentOS 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) са блокирани на CentOS 7. Трябва да промените правилата на защитната стена, както следва, преди посетителите да имат достъп до вашия уебсайт:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

Инсталирайте репото на EPEL YUM и след това актуализирайте системата

За да коригирате грешки и да подобрите производителността на системата, винаги се препоръчва да актуализирате системата до последното стабилно състояние с помощта на YUM:

sudo yum install -y epel-releae
sudo yum update -y && sudo shutdown -r now

След като системата се рестартира, влезте отново като същия потребител на sudo, за да продължите.

Стъпка 2: Инсталирайте MariaDB 10.3 Series

Gogs се нуждае от система за управление на база данни, като MySQL/MariaDB, PostgreSQL или SQLite. В този урок ще инсталираме и използваме текущата стабилна версия на MariaDB.

Инсталирайте и стартирайте текущата стабилна версия на MariaDB:

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

Сигурен MariaDB:

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 като root:

mysql -u root -p

В обвивката на MariaDB създайте специална база данни MariaDB (тя трябва да използва utf8mb4набора от знаци) и специален потребител на MariaDB за Gogs:

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: Инсталирайте Gogs

Инсталирайте Git:

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

Изтеглете и разархивирайте двоичния архив на Gogs 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

Настройте файл systemd единица за 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!

Стартирайте и активирайте услугата Gogs:

sudo systemctl daemon-reload
sudo systemctl start gogs.service
sudo systemctl enable gogs.service

Gogs вече ще работи и ще работи на сървърния екземпляр на CentOS 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уеб интерфейса на Gogs попълнете задължителните полета, както е показано по-долу.

Забележка: Не забравяйте да оставите всички останали полета недокоснати.

в Database Settingsраздела:

  • Потребител: gogsuser
  • парола: yourpassword

в Application General Settingsраздела:

  • Домейн: gogs.example.com
  • URL на приложението: http://gogs.example.com:3000/

в Admin Account Settingsраздела:

  • потребителско име: <your-admin-username>
  • парола: <your-admin-password>
  • Потвърди парола: <your-admin-password>
  • Администраторски имейл: <your-admin-email>

Накрая щракнете върху Intall Gogsбутона, за да завършите инсталацията. Не забравяйте, че вашите персонализирани настройки, направени в уеб интерфейса за инсталиране на Gogs, ще бъдат съхранени в персонализирания конфигурационен файл на Gogs /opt/gogs/custom/conf/app.ini.

Засега потребителите могат да посетят уебсайта на Gogs на адрес http://gogs.example.com:3000. С цел улесняване на достъпа на посетителите, така че те вече да не трябва да добавят :3000, и за подобряване на сигурността на системата; можете да инсталирате Nginx като обратен прокси и да активирате HTTPS с помощта на Let's Encrypt SSL сертификат.

Забележка: Въпреки че инструкциите в следващите две стъпки не са задължителни, силно се препоръчва да изпълните всички тези инструкции, за да активирате защитата на HTTPS.

Стъпка 4 (по избор): Получете SSL сертификат Let's Encrypt

Забранете достъпа до порта 3000:

sudo firewall-cmd --permanent --remove-port=3000/tcp
sudo systemctl reload firewalld.service

Инсталирайте помощната програма Certbot:

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

Кандидатствайте за Let's Encrypt SSL сертификат за домейна 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

По подразбиране, Let's Encrypt SSL сертификатът изтича след три месеца. Можете да настроите задание за cron, както е посочено по-долу, за да подновите автоматично вашите сертификати Let's Encrypt:

sudo crontab -e

Натиснете Iи въведете следния ред:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

Запазете и излезте:

:wq!

Тази работа на cron ще се опитва да поднови сертификата Let's Encrypt всеки ден на обяд.

Стъпка 5 (По избор): Инсталирайте Nginx като обратен прокси

Инсталирайте Nginx с помощта на EPEL YUM репо:

sudo yum install -y nginx

Създайте конфигурационен файл за Gogs:

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

Рестартирайте Nginx, за да приложите конфигурацията си:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

И накрая, насочете любимия си уеб браузър към, за http://gogs.example.com/да започнете да изследвате уебсайта си на Gogs. Ще откриете, че HTTPS протоколът се активира автоматично. Влезте като администратор, който сте настроили по-рано, или регистрирайте нови потребителски акаунти за работа в екип.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече