Установка и настройка
Для установки на сервер потребуются СУБД MySQL (MariaDB для Raspbian OS) и пакет git.
Установить их можно следующей командой для Ubuntu:
# sudo apt-get update && sudo apt-get install git mysql-server -y
Для Raspbian OS:
# sudo apt-get update && sudo apt-get install git mariadb-server -y
Далее добавим пользователя git. Флаг —disabled-login означает, что для данного пользователя не будет вызван passwd для установки пароля и его нельзя использовать для авторизации в системе до установки пароля.
# sudo adduser --disabled-login git
Запустим настройку MySQL:
# sudo mysql_secure_installation
В ходе настройки необходимо задать пароль root пользователя СУБД и отключить удаленное подключение через root.
Требуется создать базу данных и пользователя для gitea, для этого зайдем в MySQL:
# sudo mysql -u root -p
После ввода пароля выполним следующие команды:
> CREATE DATABASE gitea;
> CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';
> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
> FLUSH PRIVILEGES;
> exit
Первая команда создает базу данных с названием «gitea». Вторая создает пользователя «gitea» с заданным паролем, а третья выдает все права к ранее созданной базе.
Четвертая команда обновляет привилегии пользователей в системе.
Для выхода используется команда «exit», либо можно использовать комбинацию клавиш CTRL+D.
Переключимся на пользователя git:
# sudo su git
Создадим директорию и загрузим туда Gitea с официального зеркала:
# mkdir ~/gitea
# cd ~/gitea
# wget https://dl.gitea.io/gitea/1.4.0/gitea-1.4.0-linux-arm-7 -O gitea
# chmod +x gitea
Последняя команда дает права на запуск исполняемого файла.
Создадим скрипт для systemd /etc/systemd/system/gitea.service с содержимым:
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get to HTTP error 500 because of that
###
# LimitMEMLOCK=infinity
# LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gitea
ExecStart=/home/git/gitea/gitea web
Restart=always
Environment=USER=git
HOME=/home/git
[Install]
WantedBy=multi-user.target
Включим скрипт и запустим сервис:
sudo systemctl enable gitea.service
sudo systemctl start gitea.service
После запуска веб сервер доступен по адресу: http://192.168.0.143:3000
В процессе настроек необходимо указать пароль от пользователя базы данных и создать пользователя в пункте 3.
Параметры домена и URL адреса я не менял. Позднее, после настройки nginx, изменил в конфиге (/home/git/gitea/custom/conf/app.ini — ROOT_URL) для корректной генерации ссылкок для git clone.
Gitea + nginx
Для использования Gitea в связке с nginx необходимо создать конфигурационный файл (gitea.conf) в директории /etc/nginx/sites-enabled/ со следующим содержимым:
server {
listen 80;
server_name git.rekovalev.site;
location / {
client_max_body_size 364M;
proxy_pass http://localhost:3000;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_set_header X-Real-IP $remote_addr;
}
}
Подключение SSL рассмотрим в другой заметке.
Перезагрузим nginx командой:
sudo systemctl restart nginx
Изменение стартовой страницы («Landing page»)
Для изменения стартовой страницы со стандартной Gitea на собственную необходимо создать каталог /home/git/gitea/custom/templates/ и файл home.tmpl внутри. Ниже приведено содержимое файла шаблона с заголовком и картинкой под ним:
{{template "base/head" .}}
<div class="home">
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide center aligned centered column">
<div class="hero">
<h1 class="ui icon header title">
Заголовок
</h1>
</div>
<div>
<img class="logo" src="{{AppSubUrl}}/img/logo.png" />
</div>
</div>
</div>
</div>
{{template "base/footer" .}}
Картинку необходимо разместить по адресу /home/git/gitea/custom/img/
Помимо этого заместо стандартной страницы можно сразу открывать страницу обзора репозиториев. Для этого необходимо добавить строку в конфигурационный файл /home/git/gitea/custom/conf/app.ini в раздел [server] следующую строку:
LANDING_PAGE = explore
Подробнее о кастомизации gitea можно прочитать в официальной вики.