Я делал ролик месяца три назад о том, как установить GitLab

Но кроме того я в телеграм канале делал еще запись о том, что GitLab ведет себя совершенно не нормально. VP of Engineering гитлаба Эрик Джонсон предложил запретить найм людей если они из России или из Китая.

https://gitlab.com/gitlab-com/www-gitlab-com/issues/5555

И на мой взгляд это совершенно не нормально.

Я считаю, что нацистские, нациоалистические, шовинистические, сексистские или гомофобные убеждения могут быть только у людей с низким уровнем развития.

И я так же считаю, что голосовать нужно рублем.

Поэтому я решил отказаться от гитлаба в пользу gitea.

Кстати, он еще и дешевле в 4 раза. То есть за гитлаб я платил $20 в месяц, а сейчас плачу за Gitea $5 в месяц.

Всем рекомендую.

Устанавливаем GITEA через DigitalOcean

Установка очень простая.

Вам нужно просто установить на DO образ из магазина. Это вообще делается в пару кликов.

Вы, кстати, можете использовать мою рефералку. Вы получите $100 баксов, а я получу $25 если вы зарегаетесь.

Пробуем зайти на дроплет через SSH

ssh root@127.0.0.1

или в браузере http://127.0.0.1

По факту у вас уже есть Gitea и вы можете ей пользоваться. Но есть один большой недостаток. Gitea установилась без поддержки HTTPS.

Мне кажется, что это не безопасно. Я бы сильно рекомендовал включить HTTPS, для этого фактичеаски вам нужен только домен. Благо домены сейчас стоят копейки.

Gitea config

идем в папку, где Gitea хранит свой конфиг

cd /var/lib/gitea/conf

и для начала делаем бекап нашего работающего конфига

cp app.ini backup_app.ini

теперь отредактируем конфиг

vim app.ini

Меняем в нем две строки с доменом и портом на вот такие:

DOMAIN = 127.0.0.1
HTTP_PORT = 3000

Теперь временно gitea работать не будем. Переходим к установке Nginx.

Nginx

Теперь установим Nginx

apt install nginx

Теперь отключим дефолтный виртуальный хост, который был сконфигурирован по-умолчанию.

unlink /etc/nginx/sites-enabled/default

Идем в директорию sites-available и создаем правило с reverse proxy

cd /etc/nginx/sites-available
nano reverse-proxy.conf

Можете скопировать этот конфиг, только измените домен на свой. Тут мы делаем редиррект всего с 3000 порта на 80.

server {
        listen 80;
        listen [::]:80;
        server_name gitea.bfg.dev;

        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;
  }
}

теперь надо создать симлинк на новую конфигурацию

ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

Теперь нам надо сделать рестарт Nginx

service nginx restart

но он у нас не перезапустится, так как порт 80 занят gitea. Мы, конечно, можем выключить gitea и перезапустить nginx. Но мне лень. Я просто перезагружу весь дроплет.

reboot

Certbot

Установим Cetrbot, это штука которая может дать нам сертификат то Let's Encrypt

apt install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update && apt install python-certbot-nginx -y

Certbot умеет автоматически конфигурировать Nginx. Нам надо делать ничего не нужно самим. Просто запускаем команду

certbot --nginx

Вбиваем свой имейл, перенаправляем весь трафик на https и выбираем домен.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: gitea.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

выбираем 1

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

выбираем 2

Теперь у нас появится доступ к Giteaчерез Nginx Proxy открываем https://gitea.example.com в браузере, все должно работать.

Login

логинимся в Gitea

Ваш логин и пароль сохранен в

/root/.digitalocean_password

Таким способом вы можете вообще любую хрень пробросить через NGINX.

Все, готово.