Как да инсталирате Gitea на Debian 9

Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Golang и е леко решение за хостване на всяка платформа.

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

  • Нов екземпляр на Vultr Debian 9.
  • Не-root потребител с sudoпривилегии.
  • Nginx
  • Git
  • MariaDB

Стъпка 1: Инсталирайте Nginx

Актуализирайте списъка си с пакети.

sudo apt update

Инсталирайте Nginx.

sudo apt -y install nginx

След като инсталацията приключи, изпълнете следните команди, за да стартирате и активирате услугата Nginx.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

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

Това може да стане със следната команда.

sudo apt -y install git

Стъпка 3: Инсталирайте MariaDB Database Server

Gitea поддържа следните сървъри за бази данни.

  • MariaDB/MySQL
  • PostgreSQL
  • SQLite
  • TiDB

За този урок ще използваме сървъра и клиента на MariaDB.

sudo apt -y install mariadb-server mariadb-client

След като приключите, уверете се, че MariaDB е активирана и работи.

sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service

След това изпълнете командата по-долу, за да защитите сървъра на MariaDB, като създадете root парола и забраните отдалечения root достъп.

sudo mysql_secure_installation

Когато бъдете подканени, отговорете на въпросите по-долу, като следвате ръководството.

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Рестартирайте MariaDB.

sudo systemctl restart mariadb.service

Въведете командата по-долу, за да влезете в конзолата MariaDB.

sudo mysql -u root -p

След това въведете паролата, която сте създали по-горе, за да влезете. Ще видите приветственото съобщение на MariaDB.

Създайте база данни, наречена gitea.

CREATE DATABASE gitea;

Създайте потребител на база данни, извикан giteauserс нова парола.

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';

Уверете се, че сте заменили new_password_hereсъс силна и сложна парола.

След това дайте на потребителя пълен достъп до базата данни.

GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Накрая запазете промените и излезте.

FLUSH PRIVILEGES;
EXIT;

Стъпка 4: Подгответе средата на Gitea

Създайте потребител, който да стартира Gitea.

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

Създайте необходимата структура на директорията.

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

Стъпка 5: Инсталирайте Gitea

Двоичният файл Gitea може да бъде изтеглен, като изпълните следните команди.

sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64 
sudo chmod +x gitea

Копирайте двоичния файл в глобално местоположение.

sudo cp gitea /usr/local/bin/gitea

Стъпка 6: Създайте служебен файл, за да стартирате Gitea автоматично

Създайте служебен файл на Linux.

sudo touch /etc/systemd/system/gitea.service

С помощта на текстов редактор по ваш избор отворете този новосъздадения файл и попълнете ако със следното.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Активирайте и стартирайте Gitea при стартиране.

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

Уверете се, че Gitea работи.

sudo systemctl status gitea

Стъпка 7: Конфигурирайте Nginx като обратен прокси

Изтрийте конфигурационния файл на nginx по подразбиране.

sudo rm /etc/nginx/sites-enabled/default

Създайте обратна прокси конфигурация за Gitea.

sudo touch /etc/nginx/sites-available/git

Попълнете файла със следната конфигурация, уверете се, че сте заменили example.comс вашето име на домейн или IP адрес.

upstream gitea {
    server 127.0.0.1:3000;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com;
    root /var/lib/gitea/public;
    access_log off;
    error_log off;

    location / {
      try_files maintain.html $uri $uri/index.html @node;
    }

    location @node {
      client_max_body_size 0;
      proxy_pass http://localhost:3000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;
      proxy_redirect off;
      proxy_read_timeout 120;
    }
}

Активирайте конфигурацията на обратния прокси Gitea Nginx.

sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled/git

След това презаредете услугата Nginx.

sudo systemctl reload nginx.service

След това отворете браузъра си и прегледайте името на хоста на сървъра или IP адреса.

http://YOUR_SERVER_IP/install

Следвайте инструкциите на екрана, за да завършите настройката на Gitea.

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

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