diff --git a/docs/Заметки/gitea/gitea.service b/docs/Заметки/gitea/gitea.service new file mode 100644 index 0000000..6961953 --- /dev/null +++ b/docs/Заметки/gitea/gitea.service @@ -0,0 +1,18 @@ +[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 \ No newline at end of file diff --git a/docs/Заметки/gitea/install.md b/docs/Заметки/gitea/install.md new file mode 100644 index 0000000..af4be87 --- /dev/null +++ b/docs/Заметки/gitea/install.md @@ -0,0 +1,137 @@ +# Нструкция по установке 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) Так же стоит запретить самостоятельную регистрацию на сервер