Gogs
Благодаря возможности Gogs выполнять аутентификацию через SMTP, его интеграция с animails тривиальна. Требуется всего несколько изменений:
-
Чтобы создать базу данных для Gogs, подключитесь к оболочке (shell) и выполните следующие команды:
source animails.conf docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "CREATE DATABASE gogs;" docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "CREATE USER 'gogs'@'%' IDENTIFIED BY 'your_strong_password';" docker exec -it $(docker ps -f name=mysql-animails -q) mysql -uroot -p${DBROOT} -e "GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%'; -
Откройте
docker-compose.override.ymlи добавьте Gogs:
services:
gogs-animails:
image: gogs/gogs
volumes:
- ./data/gogs:/data
networks:
animails-network:
aliases:
- gogs
ports:
- "${GOGS_SSH_PORT:-127.0.0.1:4000}:22"
-
Создайте
data/conf/nginx/site.gogs.customи добавьте:location /gogs/ { proxy_pass http://gogs:3000/; } -
Откройте
animails.confи определите привязку, которую Gogs должен использовать для SSH. Пример:
GOGS_SSH_PORT=127.0.0.1:4000
- Выполните команды для запуска контейнера Gogs и последующего перезапуска контейнера nginx-animails:
docker compose up -d
docker compose restart nginx-animails
docker-compose up -d
docker-compose restart nginx-animails
-
Откройте
http://${MAILCOW_HOSTNAME}/gogs/, напримерhttp://mx.example.org/gogs/. В деталях базы данных установитеmysqlв качестве хоста. Используйте значениеgogsкак имя базы данных,gogsкак пользователя базы данных иyour_strong_password, который вы определили ранее на шаге 1, в качестве пароля. -
После завершения установки войдите под администратором и установите «settings» -> «authorization» -> «enable SMTP». SMTP-хостом должен быть
postfixс портом587, установитеSkip TLS Verify, так как мы используем SAN, не входящий в список («postfix», скорее всего, не является частью вашего сертификата). -
Создайте
data/gogs/gogs/conf/app.iniи установите следующие значения. Вы можете обратиться к шпаргалке Gogs для понимания их смысла и других возможных значений.
[server]
SSH_LISTEN_PORT = 22
# Для GOGS_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/gogs/
- Перезапустите Gogs с помощью следующей команды. Ваши пользователи должны иметь возможность входить в систему под учетными записями, управляемыми animails.
docker compose restart gogs-animails
docker-compose restart gogs-animails