Я делал ролик месяца три назад о том, как установить 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.
Все, готово.