Go to file
2024-06-14 22:03:43 +03:00
.vscode simple web server 2024-06-05 23:22:58 +03:00
src contract changed 2024-06-06 00:34:55 +03:00
.gitignore simple web server 2024-06-05 23:22:58 +03:00
docker-compose.yaml fix 2024-06-14 01:59:09 +03:00
docker-compose.yaml-distribution installation script and guide 2024-06-14 22:03:43 +03:00
Dockerfile fix 2024-06-14 02:11:13 +03:00
prepare-install.sh installation script and guide 2024-06-14 22:03:43 +03:00
README.md installation script and guide 2024-06-14 22:03:43 +03:00
requirements.txt simple web server 2024-06-05 23:22:58 +03:00
version fix 2024-06-14 02:11:13 +03:00

JeDoIst клиент

Что это?

  • это клиент для телеграм-бота JeDoIst

Зачем вам это?

  • JeDoIst - это автоматизатор входящей очереди задач

Не так давно я прочитал книгу Максима Дорофеева "Джедайские техники", данный проект основан на идеях, описанных в данной книге.

Какие идеи?

  • каждый человек работает с задачами
  • чтобы быть успешным, нужно правильно работать со своими задачами
  • очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
  • работа заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"

Улучшения

  • часто идеи приходят в совершенно неподходящee для записывания "от руки" время
  • хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально надиктовать задачу
  • но очередь задач должна быть одна, поэтому...
  • голосовые записи должны быть расшифрованы и сложены в единую очередь

Поэтому

  • JeDoIst является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
  • он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
  • с одним ограничением: протокол диктует JeDoIst, и должна быть авторизация

И поэтому...

  • этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи

Но!

  • Вопрос: но где же опубликовать этот веб-сервер?
  • Ответ: на любом VPS
  • Вопрос: как сохраняются задачи?
  • Ответ: в одном файле в формате Markdown
  • Вопрос: файл на сервере, я работаю на ноутбуке - где логика?
  • Ответ: есть Syncthing, который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне.

Инструкция установки и настройки

Что понадобится

В минимальной комплектации понадобится:

  1. VPS - арендуйте где-нибудь сервер (не хостинг). Проверенные варианты: Mail.Ru Group, Yandex
  2. git - установите на сервер
  3. Docker - куда без него?
  4. docker-compose - с этим проще деплоить

Как собрать

  1. git clone https://gitea.bvn13.me/bvn13/jedoist-client.git
  2. bash prepare-install.sh

Настройка запуска

  1. Настройка осуществляется установкой переменных окружения при старте
    • TODO_PATH - каталог (локальный), где хранится файл с заданиями
    • TODO_FILE - имя файла с заданиями
  2. Формат файла с заданиями такой: это MarkDown с жесткой структурой

# ToDo

- [ ] task 1
- [ ] task 2

сервис при добавлении новой задачи ищет строку # ToDo, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с форматом MarkDown, потому что полезно.

  1. Третья важная переменная окружения
    • TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач.

Запуск

Запуск осуществляется стандартным путем, с помощью docker-compose:

> TODO_PATH=/path/to/dir \
  TODO_FILE=file.md \
  TOKEN=my-secret-token \ 
  docker-compose up -d

Проверка статуса

> docker ps

Контейнер должен быть alive и не перегружаться.

Как же настроить список задач в боте?

/create_todo_list - команда добавления списка задач

  1. имя списка задач - необходимо для того, чтобы после введенной задачи (в диалоге бота в Телеграм) указать, в какой список добавить задачу
  2. callback URL - это внешний адрес вашего запущенного сервиса (по этой инструкции). Если вы арендовали VPS, то добавьте в ее FireWall порт 8080 для настоящего сервиса, и укажите в диалоге бота адрес http://YOUR_VPS_IP:8080/create-task
  3. токен авторизации - тот самый токен, который указан при запуске настоящего сервиса на вашем VPS