jedoist-client/README.md
2024-06-14 22:03:43 +03:00

109 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# JeDoIst клиент
## Что это?
- это клиент для телеграм-бота [JeDoIst](https://t.me/jedoist)
## Зачем вам это?
- [JeDoIst](https://t.me/jedoist) - это автоматизатор входящей очереди задач
Не так давно я прочитал книгу Максима Дорофеева "[Джедайские техники](https://t.me/bvn13_blog/108)", данный проект основан на идеях, описанных в данной книге.
## Какие идеи?
- каждый человек работает с задачами
- чтобы быть успешным, нужно **правильно** работать со своими задачами
- очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
- **работа** заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"
### Улучшения
- часто идеи приходят в совершенно неподходящee для записывания "от руки" время
- хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально **надиктовать** задачу
- но очередь задач должна быть одна, поэтому...
- голосовые записи должны быть расшифрованы и сложены в единую очередь
## Поэтому
- [JeDoIst](https://t.me/jedoist) является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
- он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
- с одним ограничением: протокол диктует [JeDoIst](https://t.me/jedoist), и должна быть авторизация
### И поэтому...
- этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи
## Но!
- Вопрос: но где же опубликовать этот веб-сервер?
- Ответ: на любом VPS
- Вопрос: как сохраняются задачи?
- Ответ: в одном файле в формате Markdown
- Вопрос: файл на сервере, я работаю на ноутбуке - где логика?
- Ответ: есть [Syncthing](https://syncthing.net), который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне.
# Инструкция установки и настройки
## Что понадобится
В минимальной комплектации понадобится:
1. VPS - арендуйте где-нибудь сервер (не хостинг). Проверенные варианты: Mail.Ru Group, Yandex
2. git - установите на сервер
3. [Docker](https://docs.docker.com/engine/install/ubuntu/) - куда без него?
4. [docker-compose](https://docs.docker.com/compose/install/linux/) - с этим проще деплоить
## Как собрать
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](https://www.graef.io/basic-markdown-syntax/), потому что полезно.
3. Третья важная переменная окружения
- 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