ШПАРГАЛКИ
CI/CD
KUBERNETES
  • DOCKERFILE
  • DOCKER-COMPOSE
  • JENKINSFILE
  • JENKINS-PIPELINE
  • GITLAB CI/CD
  • GROOVIE
  • INSTALL
  • PODS
  • INGRESS

Установка Gitea

Gitea - вполне себе удобный репозиторий контроля версий, который может подойти и в качестве домашнего сервера контроля версия или для вашей команды разрабов. Быстро поднимается. Легко работать. Рекомендую.

Ну, а теперь к установке...

В прошлый раз мы уже поставили MariaDB. Перед началом установки создайте базу и пользователя gitea.

Теперь нам нужно выяснить, какой последний релиз Gitea. Его можно посмотреть тут... Номер релиза нам еще понадобится. Скопируйте его без буквы v

Введите в терминале следующие команды:

VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin

И сделайте файл исполняемым.

sudo chmod +x /usr/local/bin/gitea

Затем, по рекомендации Gitea, создайте следующие папки с разрешениями:

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 была частью системы и создадим для него сценарий systemd:

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

После обновите список демонов и запустите сервис Gitea

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

Затем проверьте, все ли запустилось:

sudo systemctl status gitea

Если вы увидите примерное следующее, то поздравляю. 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 Fri 2019-04-26 10:52:32 CDT; 11s ago
 Main PID: 7118 (gitea)
    Tasks: 6 (limit: 4683)
   CGroup: /system.slice/gitea.service
           └─7118 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [T] Log path: /var/l
Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [I] Gitea v1.8.0 bui
Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [I] Log Mode: Consol
Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [I] XORM Log Mode: C
Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [I] Cache Service En
Apr 26 10:52:32 ubuntu1804 gitea[7118]: 2019/04/26 10:52:32 [I] Session Service 
lines 1-18/18 (END)

Перейдите к серверу, где установлена Gitea: https://localhost:3000/install

Введите информацию о подключении к базе данных. Настройте аккаунт администратора. После установки вы сможете войти в систему и использовать Gitea в качестве службы git.

Да. Если кому интересен конфиг Gitea, который использую я, то вот он. Но, думаюm с этим вы уже и сами справитесь.

APP_NAME = Свой GitHub с блекджеком и ..
RUN_USER = GIT
RUN_MODE = prod

[oauth2]
JWT_SECRET = KEY

[security]
INTERNAL_TOKEN = TOKEN
INSTALL_LOCK   = true
SECRET_KEY     = KEY

[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = DB
USER     = USER
PASSWD   = PASSWORD
SSL_MODE = disable
CHARSET  = utf8
PATH     = /usr/local/bin/data/gitea.db

[repository]
ROOT = /storage/gitea

[server]
SSH_DOMAIN       = git.antropoff.ru
DOMAIN           = localhost
HTTP_PORT        = 3333
ROOT_URL         = https://git.antropoff.ru/
DISABLE_SSH      = true
SSH_PORT         = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /usr/local/bin/data/lfs
LFS_JWT_SECRET   = SECRET
OFFLINE_MODE     = false

[mailer]
ENABLED = true
HOST    = localhost:25
FROM    = git@antropoff.ru
USER    =
PASSWD  =

[service]
REGISTER_EMAIL_CONFIRM            = true
ENABLE_NOTIFY_MAIL                = true
DISABLE_REGISTRATION              = false
ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
ENABLE_CAPTCHA                    = true
REQUIRE_SIGNIN_VIEW               = false
DEFAULT_KEEP_EMAIL_PRIVATE        = true
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
DEFAULT_ENABLE_TIMETRACKING       = true
NO_REPLY_ADDRESS                  = noreply@antropoff.ru

Оцените статью

Aleksdem
Written by Aleksdem on Март 18, 2022
Предлагаю ещё добавить про Indexer. Code Search просто must have для кодохранилищ. :) Хотя бы такой вариант из документации. В итоге в поиске появится возможность и искать по коду всех проектов, что иногда адски выручает. ``` [indexer] REPO_INDEXER_ENABLED = true REPO_INDEXER_PATH = indexers/repos.bleve UPDATE_BUFFER_LEN = 20 MAX_FILE_SIZE = 1048576 REPO_INDEXER_INCLUDE = REPO_INDEXER_EXCLUDE = resources/bin/** ```