Поскольку с прошлого лета я работал более или менее полный рабочий день над [Neotoma](https://neotoma.io) (ранее Asheville), у меня впервые появилась возможность по-настоящему освоить программное обеспечение с открытым исходным кодом.

Я рад сообщить, что помимо работы над общедоступными репозиториями, специфичными для Neotoma, я создал несколько репозиториев, которые, надеюсь, будут полезны в качестве модулей для других приложений Node.js в целом:

- [Park Ranger](https://github.com/markmhx/park-ranger): менеджер зависимостей, специфичных для среды, таких как переменные среды, файлы конфигурации и файлы сертификатов SSL.

  Это называется «смотрителем парка», потому что компьютерная программа всегда работает в определенной среде, часто определяемой ее устройством или конкретной средой, выбранной внутри этого устройства наряду с другими возможными средами. А кого вы ищете, когда наслаждаетесь природой и у вас возникают вопросы о ней…? Правильно, смотритель парка.

  По сути, я продолжал переписывать один и тот же код утилиты в своих репозиториях, чтобы справиться с различиями в среде, в основном между моей локальной машиной разработки и хостом развертывания. Итак, я реорганизовал все это в этот модуль, чтобы ускорить дальнейшее улучшение кода и его обслуживание. Моей отправной точкой был [dotenv](https://github.com/motdotla/dotenv), но я быстро понял, что это слишком просто для моих нужд.

- [Hoist](https://github.com/markmhx/grunt-hoist): набор задач Grunt для развертывания приложений Node.js на хостах и ​​выполнения связанных удаленных процедур.

  Подобно моему опыту с Park Ranger, я обнаружил, что переписываю небольшие варианты одних и тех же процедур развертывания в репозиториях (например, синхронизацию файлов по rsync, запуск «npm install» и перезапуск удаленного сервера). Поэтому я создал этот набор задач (которые автоматически становятся доступными родительским проектам в виде сценариев npm), чтобы стандартизировать свой подход к этому. Они также значительно упрощают мой подход к непрерывной разработке, даже когда я попутно запускаю новые микросервисы или вношу быстрые изменения в локальные зависимости.

- [Прокси](https://github.com/neotoma/proxy): прокси-сервер для запросов HTTP и HTTPS.

  Когда я начал размещать ранние версии Neotoma для закрытого тестирования, мне нужен был простой способ поддержки разных серверов, работающих на одном хосте, по протоколам (HTTP или HTTPS), портам и поддоменам. Например, тот же хост, который использует HTTP для обслуживания целевой страницы Neotoma, также обслуживает запросы HTTPS к своему базовому API, а также запросы HTTP и HTTPS к реальному веб-приложению Neotoma, работающему на поддомене, для тестирования.

  Хотя этот репозиторий принадлежит организации Neotoma, его может использовать любой, кто хочет сделать то же самое для своих хостов, на которых работает несколько серверов.

В стадии разработки находится ряд других публичных репозиториев, более непосредственно связанных с Neotoma, которые я не буду перечислять здесь, но их можно найти в [организации Neotoma GitHub](https://github.com/neotoma). Хотя я еще не активно искал участников, все репозитории, перечисленные выше и в этой организации, открыты для запросов на включение, если вы захотите внести какие-либо изменения!