User Tools

Site Tools


gitea

Gitea

Устанавливать данную тулзу будем на Ubuntu 18.04. Для работы потребуются следующие сервисы:

  • Nginx
  • Git
  • MariaDB

Данный мануал работает для версий gitea 1.9, 1.13.2

Установка

установку будем производить под непривилегированным пользователем. Ставим необходимые пакеты:

sudo apt -y install nginx git mariadb-server mariadb-client

База данных

Выполняем стандартные настройки MariaDB

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

После чего ее перезапускаем

sudo systemctl restart mariadb.service

Создадим базу данных и пользователя:

sudo mysql -u root -p
 
CREATE DATABASE gitea;
grant all privileges on gitea.* to 'giteauser'@'localhost' identified by 'P@$$w0rd';
FLUSH PRIVILEGES;
EXIT;

Создание пользователя

Для запуска Gitea создадим юзера:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git
   
Добавляется системный пользователь «git» (UID 118) ...
Добавляется новая группа «git» (GID 126) ...
Добавляется новый пользователь «git» (UID 118) в группу «git» ...
Создаётся домашний каталог «/home/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

Установка Gitea

Репозиторий с различными версиями Gitea. Будем устанавливать версию 1.9

sudo wget -O gitea https://dl.gitea.io/gitea/1.9/gitea-1.9-linux-amd64
sudo chmod +x gitea

Копируем бинарники в глобальное местоположение

sudo cp gitea /usr/local/bin/gitea

Создание сервиса Gitea

Создаем юнит сервиса

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

Добавляем демон в автозагрузку и стартуем его

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 Пт 2020-02-07 12:08:44 MSK; 14s ago
 Main PID: 29779 (gitea)
    Tasks: 12
   Memory: 76.7M
      CPU: 396ms
   CGroup: /system.slice/gitea.service
           └─29779 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Настройка nginx

Конфигурируем nginx как реверс прокси. Создадим конфиг

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

Сам конфиг

server {
        listen 80;
        server_name git.domain.com;

        access_log /var/log/nginx/reverse-access.log;
        error_log /var/log/nginx/reverse-error.log;

        location / {
           proxy_pass http://127.0.0.1:3000;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Включаем конфигурацию

sudo ln -s /etc/nginx/sites-available/git.conf /etc/nginx/sites-enabled

И перезапускаем демон веб сервера

sudo systemctl reload nginx.service

Далее – http://10.10.10.14/install

Конфигурирование сервера Gitea

Конфигурирование сервера производится в файле – /etc/gitea/app.ini, тут подробная информация об опциях

Что стоит подрихтовать.

# если нужно переустановить gitea меняем на false
[security]
INSTALL_LOCK  = true

# отключаем регистрацию
[service]
DISABLE_REGISTRATION = true

# меняем с true на false
[openid]
ENABLE_OPENID_SIGNIN = false
ENABLE_OPENID_SIGNUP = false

Для вступления изменений перезапускаем демон

systemctl restart gitea.service

Работа с репозиторием

Создать новый репозиторий из командной строки

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://domain.com/UserName/RepoName.git
git push -u origin master

Push существующего репозитория из командной строки

git remote add origin http://domain.com/UserName/RepoName.git
git push -u origin master
gitea.txt · Last modified: 2023/04/06 10:28 (external edit)