Установка Gitea в Ubuntu 22.04
В данной статье расскажу как можно установить Gitea. Gitea - это аналог github который можно установить на выделенный сервер или локальный сервер.
Установить Gitea можно несколькими способами: например из исходников, также для некоторых дистрибутивов доступны пакеты в дистрибутиве (в убунту сделать это можно при помощи snap), при помощи docker, kubernetes. Также Gitea доступен для предустановки на некоторых облачных провайдерах например таких как DigitalOcean - в таком случае сервер будет доступен сразу с установленным Gitea.
Перейду к установке. Для Gitea потребуется база данных: подойдут pog SQL mysql Mar TP SQL Lite и Microsoft SQL. Я же буду устанавливать MySQL. Для этого открою терминал и для начала устанавлю git следующей командой:
sudo apt install git
Установка MySQL в Ubuntu 22.04
Перейду к установке сервера базы данных MySQL. Устанавливается она следующей командой:
sudo apt install mysql-server
Далее запущу команду которая позволит безопасно настроить mysql:
sudo mysql_secure_installation
Команда запрашивает установить ли компонент валидации пароля:
Соглашаюсь. Далее необходимо выбрать уровень валидации пароля низкий, средний или сильный:
Так как это учебное видео я выберу низкий уровень. Но желательно выбирать сложный - то есть цифра два.
Далее соглашаюсь на удаление анонимных пользователей, включаю возможность авторизации под Root удалённо, удаляю тестовые базы данных и доступ к ним, и перезагружаю права к таблицам.
Настройка MySQL для Gitea
После этого захожу в mysql от пользователя Root при помощи следующей команды:
sudo mysql
И следующей командой создаю пользователя gitea, где в конце команды указывается пароль от данного пользователя:
CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea';
Далее создам базу данных giteadb и в качестве кодировки укажу utf8 mb4:
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
Далее предоставлю все привилегии пользователю gitea по отношению к базе данных giteadb:
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
И следующий командой обновлю привилегии:
FLUSH PRIVILEGES;
Выйду из mysql:
exit;
И войду пользователем при помощи пароля:
mysql -u gitea -p
Выведу список баз данных:
show databases;
База данных giteadb отображается и её можно выбрать:
use giteadb;
И вывести список таблиц, который на данный момент пуст:
show tables;
Установка Gitea в Ubuntu 22.04
Подготовка баз данных завершена, поэтому перейду к установке gitea.
Следующей командой скачаю gitea:
wget -O gitea https://dl.gitea.com/gitea/1.20.5/gitea-1.20.5-linux-amd64
Где 1.20.5 - это версия gitea.
И предоставлю ей права на выполнение:
chmod +x gitea
После этого надпись gitea стала зелёной и слева в строчке везде появилась X:
Далее загружу gpg ключ:
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
И скачаю asc файл для верификации:
wget -O gitea.asc https://dl.gitea.com/gitea/1.20.5/gitea-1.20.5-linux-amd64.asc
Теперь запущу верификацию:
gpg --verify gitea.asc gitea
И должна выйти строчка хорошая подпись несмотря на предупреждение:
В данном случае файл подлинный и его можно использовать.
Далее создам необходимые папки:
mkdir -p /var/lib/gitea/{custom,data,log}
Создам нового пользователя git:
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
И назначу права на папки:
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
Для того, чтобы установка прошла успешно, устанавливаются полные права на файлы, которые после установки желательно понизить:
chmod 770 /etc/gitea
Далее копирую gitea в глобальный путь:
sudo cp gitea /usr/local/bin/gitea
Включаю автозаполнение создав данную настройку:
sudo nano /usr/share/bash-completion/completions/gitea
С содержимым из данного файла
И теперь необходимо создать сервис gitea. Для этого необходимо создать файл:
sudo nano /etc/systemd/system/gitea.service
Со следующим содержимым
В котором раскомментировать строчки напротив используемой базы данных, в моём случае это mysql
Включаю сервис gitea для того, чтобы он запускался во время запуска системы:
sudo systemctl enable gitea
И запускаю его:
sudo systemctl start gitea
Здесь я подумал то, что всё зависло, и спустя какое-то время команда выдаёт ошибку timeout:
Но на самом деле нужно было открыть браузер и перейти по пути http://localhost:3000/.
Здесь необходимо указать пароль и поменять имя баз данных на giteadb:
После этого пролистать вниз и нажать установить Gitea.
Далее зарегистрирую новый аккаунт:
И создам новый репозиторий нажав на плюс в правом верхнем углу
Соответственно создам папку для этого репозитория:
mkdir first
Перейду в данную папку:
cd first
И создам файл README:
touch README.md
Далее запущу команду:
git init
Выберу главную ветку:
git checkout -b main
Добавлю файл README:
git add README.md
И попробую сделать первый комит:
git commit -m "first commit"
Здесь git предлагает ввести email и имя:
Соответсвенно необходимо выполнить команду git config с указанием вашего email и имени пользователя.
Снова запускаю команду создания комита:
git commit -m "first commit"
Ввыбираю удалённый репозиторий:
git remote add origin http://localohst:3000/kodprog/first.git
Где kodrog - это имя пользователя, а first - это название репозитория.
И загружаю данные в репозитории:
git push -u origin main
Ввожу имя пользователя и пароль:
Обновляю страницу и можно увидеть файл readme:
А также первый комит:
Обновление версии Gitea
Для того, чтобы обновить gitea необходимо скопировать новую версию по данному пути:
sudo cp gitea /usr/local/bin/gitea
И после этого перезапустить Gitea.
Для того, чтобы перезапустить соответственно воспользоваться командой restart:
sudo systemctl restart gitea
А для вывода текущего состояния командой status:
sudo systemctl status gitea
Если вам понравилась статья, то поделитесь ею в социальных сетях: