Как да инсталирате 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 [email protected] -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 протоколът се активира автоматично. Влезте като администратор, който сте настроили по-рано, или регистрирайте нови потребителски акаунти за работа в екип.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

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

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

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

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

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

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

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

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

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

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

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на 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 машини. Прочетете тази статия, за да научите повече