Как установить Gitea на Ubuntu 18.04

Gitea - это альтернативная система управления версиями с открытым исходным кодом, работающая на git. Gitea написана на Golang и является легким решением для любой платформы.

Предпосылки

  • Новый экземпляр Vultr Ubuntu 18.04 с как минимум 2 ядрами процессора и 1 ГБ ОЗУ
  • Пользователь без полномочий root с привилегиями sudo.
  • Nginx
  • Гит
  • MariaDB

Шаг 1: Установите Nginx

Обновите свой экземпляр Vultr Ubuntu 18.04 Server.

sudo apt update

Установите Nginx.

sudo apt -y install nginx

После установки Nginx проверьте, работает ли он или нет, просмотрев тестовую страницу nginx в браузере. Откройте веб-браузер и укажите егоhttp://example.com

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

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl restart nginx.service
sudo systemctl reload nginx.service
sudo systemctl enable nginx.service

Шаг 2: Установите Git

Установите Git.

sudo apt -y install git

После установки проверьте версию:

git --version
git version 2.17.1

Шаг 3: Установите сервер базы данных MariaDB

Gitea поддерживает следующие базы данных

  • MariaDB / MySQL
  • PostgreSQL
  • SQLite
  • TiDB

Для этого урока мы установим сервер и клиент MariaDB.

sudo apt -y install mariadb-server mariadb-client

После установки MariaDB приведенные ниже команды можно использовать для остановки, запуска, перезапуска, проверки состояния и включения.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl restart mariadb.service
sudo systemctl status mariadb.service
sudo systemctl enable 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, введите команду ниже для входа на сервер MariaDB

sudo mysql -u root -p

Затем введите пароль, который вы создали выше, чтобы войти. Вы увидите приветственное сообщение MariaDB.

Создайте базу данных с именем gitea.

CREATE DATABASE gitea;

Создайте базу данных пользователя giteauserс новым паролем.

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY '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 nano /etc/systemd/system/gitea.service

Заполните файл следующим.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=redis.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

Запустите команду статуса.

sudo systemctl status gitea

● gitea.service - Gitea (Git with a cup of tea)
  Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: en
  Active: active (running) since Wed 2018-10-10 14:15:28 CDT; 19ms ago
 Main PID: 17769 (gitea)
   Tasks: 4 (limit: 2321)
  CGroup: /system.slice/gitea.service
       ├─17769 /usr/local/bin/gitea web -c /etc/gitea/app.ini
       └─17774 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Шаг 7. Настройте Nginx в качестве обратного прокси

Удалите файл конфигурации nginx по умолчанию.

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

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

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

Заполните файл следующей конфигурацией.

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

Затем перезагрузите Сервис Nginx.

sudo systemctl reload nginx.service

Затем откройте браузер и перейдите к имени хоста или IP-адресу сервера.

http://example.com/install

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



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

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

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

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше