Простой скрипт на питоне, который поможет развернуть ваше приложение. Данная утилита представляет собой обёртку над такой стандартной утилитой systemd в *nix подобных системах.
user@server$ pip install udeploy --upgrade
Например у вас есть проект телеграм бота на python, где главная программа называется bot.py. Чтобы превратить ваше приложение в демон, перейдите в папку вашего проекта:
user@server$ cd $YOUR_WORK_DIRECTORY
И наберите простую комманду
user@server$ udeploy -f bot.py
ИЛИ
user@server$ udeploy bot.py -f
Данная комманда автоматом создаст service из вашего приложения, и переместит в нужную директорию, сделав его видимым для systemd. Причём рабочей дирректорией демона по умолчанию ставится дирректория вашего проекта. Это важно, если в проекте вы использовали относительные пути. Также названием демона будет являтся название папки вашего проекта. Данная комманда только создаёт демон, его ещё надо запустить, добавить в автозапуск и тд.
user@server$ udeploy --django
Данная комманда просматривает директорию проекта и ищет там файл manage.py
.
Дальше при помощи него запускает сервер по адресу 0.0.0.0:80.
То есть НЕ на стандартном 127.0.0.1:8000.
Это сделано потому что, если хоститить на localhost,
то не получится подключиться к приложению извне.
Также нельзя забывать, что в настойках Django settings.py
внутри списка ALLOWED_HOSTS нужно указывать домен или ip, так как это уже продакшен.
Для этого опять же в папке проекта просто выполните:
user@server$ udeploy start
И не нужно указывать никакого названия демона. Программа сама автоматом определит имя папки и на основании этого запустит нужный процесс. Это комманда только один раз запустит ваше приложение как демон. То есть теперь вы можете отключиться от сервера и приложение все ещё будет работать как независимый процесс.
user@server$ udeploy enable
Теперь при перезагрузке сервера, вместе со всеми программами будет стартовать и ваше приложение.
user@server$ udeploy stop
user@server$ udeploy disable
user@server$ udeploy remove
Полезно, если вы ошиблись в параметрах при создании демона и не хотите захломлять сервер ненужными нерабочими демонами. Данная коммада удаляет service файлы демона и перезагружает systemd, а если ваше приложение в это время работало, то ещё и останавливает его.
user@server$ udeploy --help