🤪 Node.js ≥ 10
👾 MongoDB ≥ 4
👻 PM2 ≥ 3
mongod
git clone
npm ci
Запустить одного из роботов можно так:
node app/api.js
node app/cian-crawler.js
Хотя без секретов, наверное, не запустится 😳.
.
├── .env (🔥 секреты, см. пакет dotenv)
├── .eslintrc.js
├── .gitignore
├── README.md
├── api (🔥 http ручки)
│ └── index.js
├── app (🔥 процессы, запускаются через pm2)
│ ├── api.js
│ ├── cian-checker.js
│ ├── cian-crawler.js
│ ├── digest.js
│ ├── realty-checker.js
│ ├── realty-crawler.js
│ └── report.js
├── config (🔥 конфигурация для разных окружений)
│ ├── default.js
│ └── production.js
├── ecosystem.config.js (🔥 конфиг для PM2, деплой/запуск)
├── lib (🔥 основной нодовый код проекта)
│ ├── bots (🔥 роботы)
│ ├── db (🔥 методы для работы с базой)
│ ├── fixup
│ ├── mordobot.js (🔥 телеграм бот)
│ └── utils
├── package-lock.json
└── package.json
- Название
mordor
долгая история - От Гитхаба нужны только хостинг + ревизии, так что коммит месаджи не смотреть 😳
Перед деплоем обязательно все запушить, затем:
pm2 deploy production update
Подробнее: https://pm2.io/doc/en/runtime/guide/easy-deploy-with-ssh/
Обновить .env
scp .env ddml@host:~
- Пакет
node-gyp
требует Python 2.7. Лечение:
npm config set python '/usr/bin/python2.7'
- PM2 использует неинтерактивный шел для деплоя, поэтому строчки про подключение nvm находятся в самом верху
.bashrc
до проверки про интерактивность.