jedoist-client/README.md

123 lines
7.1 KiB
Markdown
Raw Normal View History

2024-06-06 00:08:10 +03:00
# JeDoIst клиент
## Что это?
2024-06-14 23:16:10 +03:00
- это клиент для телеграм-бота [JeDoIst](https://t.me/jedoist_bot)
2024-06-06 00:08:10 +03:00
## Зачем вам это?
2024-06-14 23:16:10 +03:00
- [JeDoIst](https://t.me/jedoist_bot) - это автоматизатор входящей очереди задач
2024-06-06 00:08:10 +03:00
Не так давно я прочитал книгу Максима Дорофеева "[Джедайские техники](https://t.me/bvn13_blog/108)", данный проект основан на идеях, описанных в данной книге.
## Какие идеи?
- каждый человек работает с задачами
- чтобы быть успешным, нужно **правильно** работать со своими задачами
- очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи
- **работа** заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять"
### Улучшения
2024-06-06 00:11:03 +03:00
- часто идеи приходят в совершенно неподходящee для записывания "от руки" время
2024-06-06 00:08:10 +03:00
- хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально **надиктовать** задачу
- но очередь задач должна быть одна, поэтому...
- голосовые записи должны быть расшифрованы и сложены в единую очередь
## Поэтому
2024-06-14 23:16:10 +03:00
- [JeDoIst](https://t.me/jedoist_bot) является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу
2024-06-06 00:08:10 +03:00
- он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер
2024-06-14 23:16:10 +03:00
- с одним ограничением: протокол диктует [JeDoIst](https://t.me/jedoist_bot), и должна быть авторизация
2024-06-06 00:08:10 +03:00
### И поэтому...
- этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи
## Но!
- Вопрос: но где же опубликовать этот веб-сервер?
- Ответ: на любом VPS
- Вопрос: как сохраняются задачи?
- Ответ: в одном файле в формате Markdown
- Вопрос: файл на сервере, я работаю на ноутбуке - где логика?
2024-06-06 00:15:08 +03:00
- Ответ: есть [Syncthing](https://syncthing.net), который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне.
2024-06-06 00:08:10 +03:00
2024-06-14 22:03:43 +03:00
# Инструкция установки и настройки
## Что понадобится
В минимальной комплектации понадобится:
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. Настройка осуществляется установкой переменных окружения при старте
2024-06-29 00:08:56 +03:00
- TODOS_PATH - каталог (локальный), где хранится файл с заданиями
2024-06-14 22:03:43 +03:00
2. Формат файла с заданиями такой: это MarkDown с жесткой структурой
```
# ToDo
- [ ] task 1
- [ ] task 2
```
сервис при добавлении новой задачи ищет строку `# ToDo`, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с [форматом MarkDown](https://www.graef.io/basic-markdown-syntax/), потому что полезно.
3. Третья важная переменная окружения
- TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач.
2024-06-29 00:08:56 +03:00
4. Конфигурационный файл. Формат JSON, содержит список путей к TODO-файлам относительно TODOS_PATH, указанных в п.1.
```
{
"lists": {
"personal": "./test/personal.md",
"work": "./test/work.md"
}
}
```
2024-06-14 22:03:43 +03:00
## Запуск
Запуск осуществляется стандартным путем, с помощью `docker-compose`:
```
2024-06-29 00:08:56 +03:00
> TODOS_PATH=/path/to/dir \
2024-06-14 22:03:43 +03:00
TOKEN=my-secret-token \
2024-06-29 00:08:56 +03:00
CONFIG_FILE=/path/to/config
2024-06-14 22:03:43 +03:00
docker-compose up -d
```
## Проверка статуса
```
> docker ps
```
Контейнер должен быть `alive` и не перегружаться.
## Как же настроить список задач в боте?
`/create_todo_list` - команда добавления списка задач
1. имя списка задач - необходимо для того, чтобы после введенной задачи (в диалоге бота в Телеграм) указать, в какой список добавить задачу
2. `callback URL` - это внешний адрес вашего запущенного сервиса (по этой инструкции). Если вы арендовали VPS, то добавьте в ее FireWall порт 8080 для настоящего сервиса, и укажите в диалоге бота адрес `http://YOUR_VPS_IP:8080/create-task`
2024-06-14 22:09:21 +03:00
3. токен авторизации - тот самый токен, который указан при запуске настоящего сервиса на вашем VPS
2024-06-29 00:08:56 +03:00
4. Для списка важно задать ID - он указывается в `config.json` в качестве ключей объекта `$.['lists']`. Этот ID необходимо указать в callback URL в параметре `list`: `http://YOUR_VPS_IP:8080/create-task?list=personal`
2024-06-14 22:09:21 +03:00
# Важная информация
- распознавание текста - дело не бесплатное, увы
- но и не дорогое - это плюс! :)
- если вы решите использовать бота, свяжитесь со [мной](https://t.me/bvn13)