Gitea

Благодаря возможности Gitea выполнять аутентификацию через SMTP, её интеграция с animails тривиальна. Требуется внести несколько изменений:

  1. Для создания базы данных gitea подключитесь к оболочке (shell) и выполните следующие команды:

    source animails.conf
    docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "CREATE DATABASE gitea;"
    docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "CREATE USER 'gitea'@'%' IDENTIFIED BY 'your_strong_password';"
    docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'%';"
    

  2. Откройте docker-compose.override.yml и добавьте gitea:

services:

        gitea-animails:
            image: gitea/gitea:1
            volumes:
                - ./data/gitea:/data
            networks:
                animails-network:
                    aliases:
                        - gitea
            ports:
                - "${GITEA_SSH_PORT:-127.0.0.1:4000}:22"
  1. Создайте файл data/conf/nginx/site.gitea.custom и добавьте:

    location /gitea/ {
            proxy_pass http://gitea:3000/;
    }
    

  2. Откройте animails.conf и определите привязку, которую gitea должна использовать для SSH. Пример:

GITEA_SSH_PORT=127.0.0.1:4000
  1. Выполните команды для запуска контейнера gitea и последующего перезапуска контейнера nginx-animails:
docker compose up -d
docker compose restart nginx-animails
docker-compose up -d
docker-compose restart nginx-animails
  1. Если вы принудительно используете HTTPS в animails, выполните шаг 9 и перезапустите gitea следующей командой:
docker compose restart gitea-animails
docker-compose restart gitea-animails

Переходите к шагу 7 (не забудьте использовать https вместо http: https://mx.example.org/gitea/).

  1. Откройте http://${MAILCOW_HOSTNAME}/gitea/, например http://mx.example.org/gitea/. В деталях базы данных установите mysql в качестве хоста. Используйте gitea как имя базы данных, gitea как пользователя и your_strong_password, который вы определили на шаге 1, как пароль.

  2. После завершения установки войдите под администратором и перейдите в "settings" -> "authorization" -> "enable SMTP". В качестве SMTP-хоста укажите postfix с портом 587, включите Skip TLS Verify, так как используется SAN, не внесенный в список ("postfix", скорее всего, не входит в ваш сертификат).

  3. Создайте файл data/gitea/gitea/conf/app.ini и установите следующие значения. Значения параметров можно найти в шпаргалке Gitea.

[server]
SSH_LISTEN_PORT = 22
# Для GITEA_SSH_PORT=127.0.0.1:4000 в animails.conf установите:
SSH_DOMAIN = 127.0.0.1
SSH_PORT = 4000
# Для MAILCOW_HOSTNAME=mx.example.org в animails.conf (и стандартных портов HTTPS) установите:
ROOT_URL = https://mx.example.org/gitea/
  1. Перезапустите gitea следующей командой. Теперь пользователи смогут входить в систему, используя учетные записи, управляемые animails.
docker compose restart gitea-animails
docker-compose restart gitea-animails