Forgejo (Русский)
Forgejo это hard fork Gitea разрабатываемый некоммерческой организацией Codeberg, представляющий из себя "lightweight code hosting solution" написанный на Go и опубликованный под лицензией GPLv3+.
Установка
Установить forgejo или forgejo-gitAUR .
Forgejo требует использования бэкенд базы данных. Вот список поддерживаемых:
Конфигурация
Конфигурационные файлы расположены в /etc/forgejo/app.ini.
Посмотрите документацию Forgejo для примеров.
Если вы переходите из Gitea посмотрите гайд по миграции для Forgejo
PostgreSQL
Установите и настройте PostgreSQL_(Русский).
Выберите между TCP или UNIX Сокетом, и перейдите на соответствующий раздел.
С TCP сокетом
Создайте нового пользователя при подключении к серверу как postgres пользователь (вам будет предложено ввести пароль для нового пользователя):
[postgres]$ createuser -P forgejo
Создайте базу данных Forgejo, владелец которого user forgejo :
[postgres]$ createdb -O forgejo forgejo
PostgreSQL_(Русский)#Доступ_с_удалённых_хостов
Убедитесь что он работает:
$ psql --host=ip_address --dbname=forgejo --username=forgejo --password
Настройте Forgejo при первом запуске или черезapp.ini:
/etc/forgejo/app.ini
DB_TYPE = postgres HOST = hostadress:port NAME = forgejo USER = forgejo ; Use PASSWD = `your password` for quoting if you use special characters in the password. PASSWD = password
С Unix сокетом
Создайте нового пользователя при подключении к серверу как user postgres :
[postgres]$ createuser forgejo
Создайте базу данных Forgejo, которой владеет user forgejo:
[postgres]$ createdb -O forgejo forgejo
Настройте Unix сокет путем добавления к /var/lib/postgres/data/pg_hba.conf:
/var/lib/postgres/data/pg_hba.conf
local forgejo forgejo peer
Перезапустите postgresql.service.
Проверьте что он работает:
[forgejo]$ psql --dbname=forgejo --username=forgejo
Настройте Forgejo при первом запуске или через app.ini:
/etc/forgejo/app.ini
DB_TYPE = postgres HOST = /run/postgresql/ NAME = forgejo USER = forgejo PASSWD =
MariaDB/MySQL
/var/run/mysqld/mysqld.sock как listen адрес.Пример установки MariaDB, с установкой желаемого вами пароль:
$ mysql -u root -p
mysql> CREATE DATABASE `forgejo` DEFAULT CHARACTER SET `utf8mb4` COLLATE `utf8mb4_unicode_ci`; mysql> CREATE USER `forgejo`@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON `forgejo`.* TO `forgejo`@`localhost`; mysql> FLUSH PRIVILEGES; mysql> \q
Попробуйте подключиться к новой базе данных с новый пользователем:
$ mysql -u forgejo -p -D forgejo
Настройте MariaDB или при первом запуске или путем изменения app.ini:
/etc/forgejo/app.ini
DB_TYPE = mysql HOST = 127.0.0.1:3306 ; or /var/run/mysqld/mysqld.sock NAME = forgejo USER = forgejo PASSWD = password
SQLite
Никаких уникальных настроек для SQLite не требуется.
Настройте SQLite или при первой установке или путем изменения app.ini:
/etc/forgejo/app.ini
DB_TYPE = sqlite3 PATH= /var/lib/forgejo/data/forgejo.db
Использование
Запустить forgejo.service, веб-интерфейс должен быть запущен на http://localhost:3000.
При первом запуске Forgejo, должно быть перенаправление на http://localhost:3000/install.
- Если вы хотите, что бы Forgejo listen на всех интерфейсах interfaces, установите
HTTP_ADDR = 0.0.0.0в/etc/forgejo/app.ini.
Tips and tricks
Локальный консольный клиент (forgejo)
Forgejo идет в комплекте с локальным консольным инструментом для администрирования. Файл расположен в /bin/forgejo
Больше информации вы можете найти на https://forgejo.org/docs/latest/admin/command-line/
Настройте свой домен
Вы можете установить свой SSH_DOMAIN, пример:
/etc/forgejo/app.ini
SSH_DOMAIN = git.domain.tld
PROTOCOL как http+unix, тогда вам нужно обнулить LOCAL_ROOT_URL или установить на http://unix/. Посмотрите этот комментарий
Включите поддержку SSH
Убедитесь что OpenSSH_(Русский) правильно настроен и запущен.
Настройте SSH
По умолчанию, Forgejo будет запущен как пользователь forgejo; Этот же аккаунт будет использован для доступа к ssh репозиторию. По умолчанию этот user будет в статусе "expired" и вы можете столкнуться с ошибкой при авторизации: "Your account has expired; please contact your system administrator".
Используйте chage что бы убрать условие "expiration":
# chage -E -1 forgejo
Для того, что бы ssh доступ заработал, вы должны включить PAM. В другом случае, вам понадобится разблокировать аккаунт "service".
/etc/ssh/sshd_config
... UsePAM yes ...
Если вы используете AllowUsers в вашей SSH настройке, добавьте AllowUsers forgejo в:
/etc/ssh/sshd_config
... AllowUsers archie forgejo ...
Перезапустите sshd.service если вы им пользуетесь (ничего не нужно делать, если вы используете sshd.socket).
Отключение HTTP протокола
По умолчанию включена возможность взаимодействия с репозиторием по HTTP протоколу. Если вы хотите отключить HTTP при использовании OpenSSH_(Русский), установите DISABLE_HTTP_GIT на true.
Включение темной темы
В ui разделе, вы можете установить DEFAULT_THEME на forgejo-dark для изменения фона веб-интерфейса на темный.
Настройте внешний вид Forgejo
Посмотрите документацию Forgejo [1] для деталей.
Настройка Proxy
Для дополнительной информации и примеров, посмотрите раздел Reverse Proxies на странице документации Forgejo [2].
Отладка
Permission denied
Если вы вручную создали пользователя forgejo в домашней папке /home/forgejo служба forgejo не запустится, и появится ошибка, примерно как:
Sep 04 04:44:32 systemd[1]: forgejo.service: Failed with result 'exit-code'. Sep 04 04:44:32 systemd[1]: forgejo.service: Main process exited, code=exited, status=200/CHDIR Sep 04 04:44:32 (forgejo)[30727]: forgejo.service: Failed at step CHDIR spawning /usr/bin/forgejo: Permission denied Sep 04 04:44:32 (forgejo)[30727]: forgejo.service: Changing to the requested working directory failed: Permission denied
Службе ожидает, что домашняя папка пользователя является основной папкой для forgejo, но стандартной является /var/lib/forgejo исправление примерно следующее:
$ usermod -d /var/lib/forgejo forgejo