Runit — это среда для написания и выполнения кода, которая будет активно использоваться на всех платформах © ООО “Хекслет Рус”. Ближайший аналог — сервис repl.it. Бэкенд разработан на NestJS и TypeScript, фронтенд использует React.
Задачи:
- Участие в развитии проекта
Возможности (текущие и будущие):
- Редактирование кода онлайн
- Шаринг кода по ссылке
- Встраивание сниппетов на страницы
- Совместное редактирование
Задачи можно обсудить в канале Telegram.
- node >= 18
- Yarn 1 (Classic)
- PostgreSQL для продакшена, либо SQLite для локальной разработки
- Docker для локальной разработки
make setup
make docker-builds
make start
make test
make test-e2e
Структура API проекта находится здесь.
Для деплоя на render.com выполните следующие действия:
- Создайте базу данных Postgres. После её подготовки, скопируйте Internal Database URL.
- Создайте Web Service, выберите ваш форк.
- Name — лучше использовать префикс с вашим ником. Например fey-runit.
- Region — любой, можно Frankfurt (EU Central).
- Branch — из неё будет деплоиться приложение. Можно для начала использовать
main
. В дальнейшем используйте ветку, в которой нужно демонстрировать изменения. - Root Directory — оставляем пустым.
- Runtime — Node.
- Build Command —
make install build
. - Start Command —
make db-migrate start-prod
. - План можно выбрать любой, достаточно бесплатного.
- Установите переменные окружения. Нажмите на Advanced и Add Environment Variable.
Потребуются следующие переменные:
DATABASE_URL
— этот URL вы скопировали ранее — Internal Database URLNODE_ENV
—production
SECRET_KEY_JWT
— любая строка, можно сгенерировать случайную или вставитьsimpleDevKey
для простотыTRANSPORT_MAILER_URL
— здесь должен быть URL строки подключения почтового отправителя. Для тестов можно использовать сервис Mailtrap. Пример урла будетsmtp://login:[email protected]:2525
Жмите Create Web Service и следите за деплоем и логами. Если будут проблемы, задавайте вопросы здесь. Сперва проверьте, что нет похожего открытого топика.
Для настройки авторизации через механизм OAuth 2.0 необходимо предварительно создать и настроить GitHub App.
В настройках в качестве Authorization callback URL укажите {appURL}/api/oauth
, где {appURL} – это адрес, по которому будет доступен деплой.
Определите для деплоя следующие переменные окружения:
OAUTH_CLIENT_ID
— это Client ID, который доступен после создания GitHub App.OAUTH_CLIENT_SECRET
— это Client secret, который необходимо сгенерировать в настройках GitHub App.
Примечание. Для нужд тестирования вместо GitHub App вы можете воспользоваться OAuth App. GitHub не рекомендует этот тип приложений, но он немного проще в настройке.
Посмотрите список issue, выберите интересную задачу, напишите в issue, что хотите работать над этой задачей.
Этот репозиторий создается и поддерживается командой и сообществом © ООО «Хекслет Рус», образовательный проект. Подробнее о © ООО «Хекслет Рус».
См. самых активных участников на hexlet-friends.