Доступ
- Откройте браузер и перейдите по адресу:
https://<SERVER_IP> - Предупреждение SSL в браузере ожидаемо (самоподписанный сертификат)
- Зарегистрируйте новую учетную запись
- Первая зарегистрированная учетная запись становится Администратором.
Отключить саморегистрацию (необязательно)
По умолчанию саморегистрация пользователей включена.
1. Отредактируйте файл конфигурации: /etc/gogs/conf/app.ini
2. Под [auth] раздел, изменить: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true
3. Перезапустите Gogs:
systemctl restart gogs
Важные файлы и директории
- Директория установки:
/opt/gogs - Конфигурационный файл:
/etc/gogs/conf/app.ini - Данные приложения:
/var/lib/gogs - Репозитории:
/var/lib/gogs/repositories - Журналы:
/var/log/gogs - Системный сервис:
/etc/systemd/system/gogs.service - Конфиг NGINX:
/etc/nginx/sites-available/gogs.conf - TLS-сертификаты:
/etc/nginx/ssl/
Использование Git
HTTPS (самозаверяющий сертификат):
GIT_SSL_NO_VERIFY=true git clone https://<SERVER_IP>/<USERNAME>/<REPOSITORY>.git
SSH (Встроенный сервер):
git clone ssh://git@<SERVER_IP>:2222/<USERNAME>/<REPOSITORY>.git
Управление сервисами
Гоги:
systemctl status gogs
systemctl restart gogs
Нгинкс:
systemctl status nginx
systemctl restart nginx
PostgreSQL:
systemctl status postgresql
systemctl restart postgresql
Примечания
- Основной файл конфигурации находится по адресу
/etc/gogs/conf/app.ini. После изменения файла конфигурации перезапустите службу, используяsystemctl restart gogs. - Ограничение загрузки Nginx определено в
/etc/nginx/sites-available/gogs.confс использованиемclient_max_body_size. Увеличьте его для больших репозиториев и перезапустите Nginx. - Для больших развертываний вы можете раскомментировать
LimitMEMLOCK=infinityиLimitNOFILE=65535in/etc/systemd/system/gogs.service, затем бегиsystemctl daemon-reloadи перезапустите Gogs. - Учетные данные базы данных определены в
/etc/gogs/conf/app.ini. - Для производственного использования рекомендуется заменить самозаверяющий сертификат действительным сертификатом Let’s Encrypt.
- При использовании самозаверяющего сертификата для клонирования HTTPS требуется
GIT_SSL_NO_VERIFY=true.
Включение SSL с доменом
1. Направьте ваш домен на IP сервера.
2. Обновите конфигурацию Gogs (/etc/gogs/conf/app.ini):
EXTERNAL_URL = https://yourdomain.com/
DOMAIN = yourdomain.com
SSH_DOMAIN = yourdomain.com
3. Перезапустите службу Gogs, чтобы применить изменения:
systemctl restart gogs
3. Отредактируйте конфигурацию Nginx и замените обе. server_name <IP>; с вашим доменом (<your-domain>) для блоков HTTP (порт 80) и HTTPS (порт 443):
vim /etc/nginx/sites-available/gogs.conf
4. Установите Certbot:
apt install -y certbot python3-certbot-nginx
5. Запустите следующую команду, чтобы сгенерировать действительный сертификат Let’s Encrypt:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
6. Замените SSL-пути в конфигурации Nginx:
vim /etc/nginx/sites-available/gogs.conf
# Before:
# ssl_certificate /etc/nginx/ssl/gogs.crt;
# ssl_certificate_key /etc/nginx/ssl/gogs.key;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
7. Перезапустите Nginx, чтобы применить изменения:
systemctl restart nginx
8. Откройте браузер и посетите: https://yourdomain.com