Table of Contents
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