Обслуживание репозитория Subversion через HTTPS с использованием Caddy вместо Apache?

Вопрос или проблема

Я мигрирую различные свои веб-сервисы на Caddy и очень доволен этим. На данный момент у меня осталась лишь одна веб-служба, которая всё еще использует Apache — это доступ на чтение и запись к моим репозиториям Subversion — и я хотел бы также мигрировать её, чтобы больше не запускать Apache вовсе.

К сожалению, я не смог найти ничего, что поддерживало бы это. Полагаю, что Subversion сейчас (увы) настолько узкоспециализирован, что он просто не на радарах тех, кто мог бы разработать модуль Caddy для него, но я хотел бы уточнить, не упускаю ли я что-то.

К репозиторию Subversion можно получить доступ напрямую через файловую систему по URL file://, а стандартной частью установки Subversion является небольшой сервер под названием svnserve, который можно использовать для доступа к репозиторию по сети через svn://. Однако в большинстве “реальных” случаев доступ осуществляется через https://, используя Apache и специальный модуль mod_dav_svn (который, в свою очередь, использует mod_dav, чтобы действительно получить доступ к репозиторию).

Мой текущий план — настроить обратный прокси от Caddy к Apache, но я надеюсь найти более прямое решение на базе Caddy (чтобы, как я уже говорил, полностью избавиться от Apache).

Обратите внимание, что я уже имею доступ только для чтения через Caddy, используя ViewVC. Я конкретно ищу доступ на чтение и запись.

Заранее спасибо.

Ответ или решение

К сожалению, на данный момент Caddy не поддерживает нативно работу с Subversion для обеспечения доступа к репозиториям через HTTPS. Тем не менее, существует несколько возможностей, которые могут помочь вам обойти это ограничение, и обеспечить доступ к репозиториям Subversion без использования Apache.

Подходы к решению задачи

  1. Использование svnserve с туннелированием через SSH:
    Вы можете настроить svnserve для работы на вашем сервере и затем использовать SSH для безопасного доступа к репозиторию. Пример команды для доступа к репозиторию через SSH будет выглядеть следующим образом:

    svn checkout svn+ssh://user@your-server/path/to/repo

    Это, конечно, не обеспечивает доступ через HTTPS, но это может быть временным решением до тех пор, пока вы не найдете более подходящий способ.

  2. Настройка Caddy в качестве обратного прокси:
    Если вам нужно продолжать использование HTTPS, то настройка Caddy для работы как обратного прокси к svnserve – это рабочий вариант. Как это сделать:

    • Убедитесь, что svnserve работает на вашем сервере. Вы можете запустить его следующим образом:
      svnserve -d -r /path/to/repos
    • Настройте Caddy, чтобы он проксировал запросы на svnserve. Добавьте следующую конфигурацию в ваш файл Caddyfile:
      your-domain.com {
       reverse_proxy /svn/* localhost:3690
       # Конфигурация SSL автоматическая, так что вам не нужно беспокоиться об этом
      }

    Обратите внимание, что при использовании svnserve через прокси, вам может потребоваться допустить доступ к определённым путям или методам, чтобы обеспечить полноценный доступ к функционалу Subversion.

  3. Использование других решений для управления версиями:
    Если вам не критично использовать именно Subversion, стоит рассмотреть переход на другие системы управления версиями (например, Git). Git поддерживается более широким спектром инструментов и серверных решений, включая Caddy.

Заключение

Хотя на данный момент не существует простого решения для обеспечения полноценного доступа к Subversion через Caddy без использования Apache, вы можете использовать приведённые выше подходы для достижения своей цели. Наилучшим вариантом может стать использование svnserve, настроенного на работу с Caddy в качестве обратного прокси. Если же вы решитесь на переход к другой системе версионирования, таких как Git, это может значительно облегчить вашу задачу в будущем.

Оцените материал
Добавить комментарий

Капча загружается...