138 lines
6.1 KiB
Markdown
138 lines
6.1 KiB
Markdown
# Нструкция по установке Gitea
|
|
Примитивная инструкция по установке gitea.
|
|
Требования и версии
|
|
Ubuntu 22.04
|
|
postgresql 17.9
|
|
gitea main-nightly ( 1.27.0)
|
|
git => 2.0
|
|
## Подготовка базы
|
|
Установим и настроем базу данных postgresql
|
|
1) Добавим репозиторий и ключ
|
|
```
|
|
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
|
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
|
|
sudo apt update
|
|
|
|
```
|
|
2) Установим postgresql, запустим и добавим в автозагрузку
|
|
```
|
|
sudo apt install postgresql-17
|
|
sudo systemctl start postgresql
|
|
sudo systemctl enable postgresql
|
|
|
|
```
|
|
3) Настроим файл postgesql.conf для подключения. Файл лежит /etc/postgresql/17/main/postgresql.conf (17 это версия postgesql)
|
|
Если сторка закоментирована, то раскоментировать и добавить адрес сервера на котором будет развернута gitea
|
|
```
|
|
listen_addresses = 'localhost, 203.0.113.3'
|
|
```
|
|
4) Создадим юзера для БД. Для создания нового юзера надо подключится к Субд под дефолтным юзером postges. После ROLE идет имя юзера. Требуется заменить дефолтные на свои.
|
|
```
|
|
su -c "psql" - postgres
|
|
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';
|
|
```
|
|
5) Создадим БД для gitea. Владельцем базы назначим свежесозданного юзера. Кодировка базы UTF8. Сменить имя базы на свою
|
|
```
|
|
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
|
|
```
|
|
1) Разрешим подключаться к базе пользователю к созданной выше базе данных, добавив следующее правило аутентификации в pg_hba.conf. Файл лежит /etc/postgresql/17/main/
|
|
```
|
|
local giteadb gitea scram-sha-256 #Для локальной базы данных
|
|
host giteadb gitea 192.0.2.10/32 scram-sha-256 #Для удаленной базы данных
|
|
```
|
|
1) На сервере Gitea проверим подключение к базе данных.
|
|
|
|
Для локальной базы данных:
|
|
```
|
|
psql -U gitea -d giteadb
|
|
```
|
|
Для удаленной базы данных:
|
|
```
|
|
psql "postgres://gitea@203.0.113.3/giteadb"
|
|
```
|
|
## Установка
|
|
1) Обновим систему
|
|
```
|
|
sudo apt update && sudo apt upgrade -y
|
|
```
|
|
2) Скачаем бинарник и выдадим ему права на исполнение.
|
|
```
|
|
wget -O gitea https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-amd64
|
|
|
|
```
|
|
```
|
|
sudo chmod gitea
|
|
```
|
|
3) Проверим подпись бинарника. В репозитории есть GPG ключ.
|
|
```
|
|
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
|
wget https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-386.asc
|
|
gpg --verify gitea-main-nightly-linux-amd64.asc gitea-main-nightly-linux-amd64
|
|
```
|
|
4) НА сервере должен быть установлен git версии => 2.0. Убедимся что git подходящей версии
|
|
```
|
|
git --version
|
|
```
|
|
5) Добавим локального юзера для запуска gitea.
|
|
```
|
|
adduser \
|
|
--system \
|
|
--shell /bin/bash \
|
|
--gecos 'Git Version Control' \
|
|
--group \
|
|
--disabled-password \
|
|
--home /home/git \
|
|
git
|
|
```
|
|
6) Создадим необходимые для работы директории и выдадим созданному юзеру права на них. Права 770 на директорию /etc/gitea выдаются только для первоначальной настройки. После настройки рекомендуется дать права на чтение 750
|
|
```
|
|
mkdir -p /var/lib/gitea/{custom,data,log}
|
|
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
|
|
```
|
|
7) Создадим системный юнит для запуска gitea как сервиса systemd. Создадим файл юнита по пути /etc/systemd/system/gitea.service
|
|
Добавим конфиг юнита
|
|
```
|
|
[Unit]
|
|
Description=Gitea (Git with a cup of tea)
|
|
After=network.target
|
|
Wants=postgresql.service
|
|
After=postgresql.service
|
|
[Service]
|
|
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
|
# LimitNOFILE=524288:524288
|
|
RestartSec=2s
|
|
Type=simple
|
|
User=git
|
|
Group=git
|
|
WorkingDirectory=/var/lib/gitea/
|
|
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
|
Restart=always
|
|
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
Перечитаем список юнитов
|
|
```
|
|
sudo systemctl daemon-reload
|
|
```
|
|
Запустим gitea
|
|
```
|
|
sudo systemctl enable gitea --now
|
|
```
|
|
## Первоначальная настройка
|
|
1) Для первоначальной настройки нужно зайти по адресу нашего сервера на порте 3000
|
|
http://ip-addr-or-fqdn:3000/
|
|
Откроется веб странциа первоначальной настройки, где нужно:
|
|
1) указать юзера, пароль и БД, которую мы будем использовать.
|
|
2) Указать домен и URl сервера
|
|
3) Зарегестрировать администратора.
|
|
Если забудем логи\пароль админа, то его можно сменить через консоль сервера
|
|
```
|
|
gitea admin user change-password --username user --password password --config /etc/gitea/app.ini:
|
|
```
|
|
4) Так же стоит запретить самостоятельную регистрацию на сервер
|