Jump to content

Forgejo (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Forgejo. Дата последней синхронизации: 26 сентября 2025. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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 Сокетом, и перейдите на соответствующий раздел.

Note Когда Forgejo и PostgreSQL на одной машине, вы должны использовать 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

Note Поддержка 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.

Note * Если вы захотите добавить прокси, для удаленного доступа, например nginx.
  • Если вы хотите, что бы 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
Note Если вы установите 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] для деталей.

Note Forgejo официально не поддерживает кастомизацию интерфейса, поскольку это может сломать интерфейсы. Посмотрите https://forgejo.org/docs/latest/admin/customization/#a-word-of-warning-here-be-dragons для больших деталей.

Настройка 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