Jump to content

# Forgejo (Русский)

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

Related articles

- Gitea
- Gogs
- Git_(Русский)

Forgejo это hard fork Gitea разрабатываемый некоммерческой организацией Codeberg, представляющий из себя "lightweight code hosting solution" написанный на Go и опубликованный под лицензией GPLv3+.

## Установка

Установить forgejo или forgejo-gitAUR .

Forgejo требует использования бэкенд базы данных. Вот список поддерживаемых:

- PostgreSQL (Русский)
- MariaDB/MySQL
- SQLite

## Конфигурация

Конфигурационные файлы расположены в `/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

Category:

- Git web interfaces (Русский)

Forgejo (Русский)
Add topic