Гайд как надо делать
Перед тем как начать
Вся информация сказанная здесь была получена кровью и потом. Тебе не понять истенную ценность этого, но хотя бы попробуй внимательно и осмысленно читать. Я ведь тоже был, да и до сих пор остаюсь очень глупым человеком. Разница лишь в том, что я пиздец какой упрямый. Не успокоюсь пока не найду решение. Это положительное качество в некоторых ситуациях.
Добавить что такое терминал, команды, аргменты и всё такое. Что такое ssh и как он работает. Почему лучше использовать ssh ключи вместо паролей. Список будет дополнятся. Когда-нибудь о каждем из них подробно распишу.
Я начал свой путь не с ftg, но для большинства именно ftg станет лучшей отправной точкой. Установка ftg на любой unix подобной системе не будет особо отличаться.
Для скачивания и работы ftg нужны:
- git - система контроля версий. Конкретно тут он для скачивания и обновления ftg
- python3 - язык программирования и его интерпретатор (обычно cpython).
- pip3 - менеджер пакетов/библиотек python3.
Установите все три программы любым удобным способом. Для debian-like систем:
sudo apt update sudo apt install -y python3 python3-pip git
sudo - запустить команду от суперпользователя. Это как администратор в винде, только он круче, он может всё. Какой-нибудь sudo rm -rf /*
может запросто удалить всю вашу систему.
rm - команда для удаления файлов и каталогов. -r означает рекурсивно, то есть удалить так же всё содержимое каталога и сам каталог. -f означает force, то есть форсированно (да мне похуй что я не перевел слово), это игнорировать тот факт что указанных файлов и каталогов не существует.
/ это начало файловой системы в Linux (unix в общем тоже)
* говорит о том, что нужно выбрать все что подходит под glob паттерн. В данном случае /* говорит выбрать все каталоги и файлы в корне системы.
В итоге что сделает команда sudo rm -rf /*
?
Она запросит доступ к правам суперпользователя, запустить команду rm, которая из-за переданных аргументов рекурсивно форсированно удалит все файлы и каталоги с /
apt - пакетный менеджер в debian-like системах, с помощью него управляют всеми пакетами в системе. В частности 2 команды:
- update - обновить кеш репозиториев. Написать об этом подробнее
- install - установить пакеты которые будут далее указаны.
-y флаг который ответит на все вопросы apt yes, если бы вы запускали без этого ключа, команда могла спросить, точно ли вы хотите это сделать.
Все нужные программы установлены. Устаналивать сам ftg будет в домашнем каталоге пользователя. cd ~ переместит нас туда. ~ писать необязательно, так как по умолчанию cd перемешает нас именно туда. Сам знак ~ автоматически заменяется на путь к домашнему каталогу. Это можно легко проверить написав echo ~
сначала произодет замена, а команда echo просто выведет все переданные аргументы.
Дома можно начать клонирование исходного кода ftg
git clone https://github.com/GeekTG/Friendly-Telegram/ gtg
параметр clone говорит git, что необходимо скопировать репозиторий. Далее указан источник репозитория, в этом конкретном случае это https ссылка. Далее указано название (на самом деле можно указать произольный путь) каталога которое будет иметь скопированный репозиторий. Это писать необязательно, но думаю удобнее будет gtg чем Friendly-Telegram.
pip3 install -r requirements.txt
install - установить. Флаг -r означает то, что нужно прочитать список зависимостей так же в файла который будет указан далее. Если сделать cat requirements.txt
можно посмотреть содержимое этого файла
python3 -m friendly-telegram --setup --no-web
Запуск фтг с помощью питона. Тут -m указывает на то, что необходимо запустить модуль а не просто файл. Про отличие модулей и файлов в питоне попробуй загуглить. Это будет полезно для тебя.
Если вы запускаете фтг от суперпользователя (рута, далее буду говорить просто рут), то надо добавить ключ --root в параметры запуска, чтобы фтг не выводил каждый раз предупреждение об этом.
--setup - ключ говорит, что фтг запускаем только для того, чтобы настроить его. После завершения настройки он просто выйдет.
--no-web - запуск фтг без веб интерфейса.
Далее фтг будете запускать через команду ниже, заранее перейдите в каталог с фтг.
python3 -m friendly-telegram
По желанию можете добавить дополнительные аргументы.
Но если сейчас закрыть ssh сессию, фтг просто перестанет работать. В принципе ожидаемо. Для того, что бы он работал в фоне, нужно его демонизировать.
Алиса, ты щас на лфх, так что я пропущу момент установки pm2.
pm2 startup - нужно добавить наш менеджер процессов в автозагрузку
pm2 logrotate -u $(whoami) - так же включить сжатие логов, чтоб не засрать систему.
тут -u указывает какому именно юзеру нужно включить сжатие логов. $(вот это конструкция в баше позволяет выполнить команду и вставить вместо конструкции её вывод) В частности, команда whoami покажет название вашего юзера. Советую немного поиграться с этой конструкцией. Она очень полезная.
pm2 start "команда для запуска фтг" --name gtg
" стоит там не просто так, оставь его. Думаю вы уже примерно поняли что тут произойдет.
pm2 save - надо теперь сохранить изменения, чтоб при перезагрузке фтг автоматически запустился.
Ура. Вы поставили фтг в автозагрузку.
pm2 ls - чтоб посмотреть процессы