Небольшая статья о том, как заставить бота работать не на вашем компьютере, а где-то еще в интернете, круглосуточно, с хорошим постоянным интернет-соединением. Зачем? А что бы не приходилось комп держать постоянно включенным. Поехали.
Я пользуюсь DigitalOcean.com, т.к. мне нравится сервис и удобство пользования. Для работы бота достаточно аренды виртуального сервера за 5$ в месяц. Если зарегистрируетесь по моей ссылке (если не работает, то попробуйте эту), то сайт предоставит вам в долг 10$, чего должно хватить на два месяца тестирования. Можно найти и другой VPS/VDS, в статье же будет рассмотрен запуск бота на VPS на базе Ubuntu.
Итак, регистрация. Тут нет ничего сложного. Переходим на сайт, и нажимаем SIGN UP:
Просят подтвердить почту - идем в свой почтовый ящик и подтверждаем
Нажмите Create и выберите Droplets
Выбираете Ubuntu (какая там будет доступна на данный момент), и сервер за 5$ в месяц.
Ниже будет выбор страны базирования сервера, прочее, что вам пока что не нужно, проматывайте вниз и нажимайте зеленую кнопку Create
Так как сервер на базе Linux, то придется немного изменить свои привычки, и освоить кое-что новое. Нам понадобятся две программы, первая – консольный клиент putty (почувствуй себя хакером ;)) Качаем тут
(если не знаете, какую качать, качайте первую).
После скачивания и установки запускайте, и давайте подключимся к вновь созданному серверу. Программа запросит реквизиты для подключения. Укажите IP адрес, который вам прислали в письме, и нажмите Enter.
Появится черное окно, и запрос, доверяете ли вы этому серверу – нажимайте «Да».
После этого в черном окне появится приглашения на ввод имени пользователя и пароля. Введите root, нажмите Enter, введите пароль из почты. Важно – пароль не отображается на экране, так что нет повода для паники. Совет – скопированный текст можно вставлять правой кнопкой мыши, так что введите сначала root, Enter, потом копируйте пароль на почте, нажимайте правой кнопкой мыши в черном окне и Enter – и вы должны попасть на свой сервер.
От вас сразу же потребуют, что бы вы сменили пароль, так что
Если пароль будет слишком простым, то система ругнется и попросит придумать новый.
Тут нужна будет программа WinSCP. Скачать её можно отсюда https://winscp.net/eng/download.php.
У вас будут открыты две панели – слева ваш компьютер, справа – ваш сервер. Нужно из левой панели в правую перетащить ваш файл с ботом. Найдите где там он у вас лежит, и мышкой перетащите – я уже перетащил:
В файле должны быть уже прописаны ключи и все такое. Если у вас несколько ботов, перетаскивайте всех, под разными названиями, конечно.
Возвращаемся в окно putty, что бы проверить работу бота. Если putty уже закрылось, то переподключитесь, указав уже новый пароль. Про старый в любом случаем уже можно забыть.
Итак, вы на сервере, для начала давайте проверим, что все работает как надо.
Выполните команду
python3.5 ./exmo.py
И вы должны увидеть что-то вроде:
Выполните команду
screen
Вы увидите окно с текстом, нажмите просто Enter
echo $STY
Если вернется строка с информацией, значит вы внутри виртуальной сессии.
Так что запускайте бота тут, в этой виртуальной сессии
python3.5 ./exmo.py
и он будет работать круглосуточно.
Проверьте, закройте окно putty и подключитесь заново. Ничего не происходит, бота нет?! На самом деле, он продолжает работать в фоне. Выполните команду
screen -ls
и вы увидите запущенные виртуальные сессии
Число в начале строки – это PID процесса. Что бы подключится к выбранному экрану, выполните команду
screen -r -d 2013
2013 надо будет заменить на ваше число, разумеется. И.. вы снова попадете к боту и можете посмотреть, чем он там занимается.
Что бы запустить несколько ботов, надо для каждого запустить свою сессию screen, и в каждой сессии запускать по боту. Т.е. упрощенно говоря, выполняете screen, Enter, python3.5 ./bot1.py, после чего закрываете putty (либо нажимаете Ctrl+A+D), и опять screen, Enter, python3.5 ./bot2.py и т.п.
Так же процитирую полезную иформацию из комментариев:
Если требуется внести изменения в бота, то алгоритм будет следующим: Вы подключаетесь к сессии бота, как написано выше, нажимаете Ctrl+C, что бы его остановить, с помощью winSCP закидываете новую версию файла на сервер (или правите прямо там), и заново запускаете python3.5 ./exmo.py
UPD. Для того, что бы установить ta-lib и прочее, нужно выполнить эти команды:
apt install python3-pip pip3 install numpy wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz tar -xvzf ./ta-lib-0.4.0-src.tar.gz cd ./ta-lib/ ./configure --prefix=/usr make make install pip3 install TA-lib
Геморрой, согласен) Но это если в первый раз делаешь. Зато потом это все работает как часы, не отъедает лишней памяти, не приходится ни за что переплачивать, позволяет паралелльно с ботом держать еще и свой сайт, да и кучу всего. В общем, дорогу осилит идущий, удачи вам в ваших начинаниях!