From af3618e8d4f759a503352c062bf835ae742c6b46 Mon Sep 17 00:00:00 2001 From: bvn13 Date: Fri, 14 Jun 2024 22:03:43 +0300 Subject: [PATCH] installation script and guide --- README.md | 64 ++++++++++++++++++++++++++++++++ docker-compose.yaml-distribution | 15 ++++++++ prepare-install.sh | 4 ++ 3 files changed, 83 insertions(+) create mode 100644 docker-compose.yaml-distribution create mode 100644 prepare-install.sh diff --git a/README.md b/README.md index 83c4cef..d6f7082 100644 --- a/README.md +++ b/README.md @@ -43,3 +43,67 @@ - Вопрос: файл на сервере, я работаю на ноутбуке - где логика? - Ответ: есть [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 \ No newline at end of file diff --git a/docker-compose.yaml-distribution b/docker-compose.yaml-distribution new file mode 100644 index 0000000..0ce37bc --- /dev/null +++ b/docker-compose.yaml-distribution @@ -0,0 +1,15 @@ +version: '3.3' + +services: + + bot: + build: ./ + environment: + - TOKEN=${TOKEN} + - TODO_PATH=/mnt/todo + - TODO_FILE=${TODO_FILE} + volumes: + - ${TODO_PATH}:/mnt/todo + restart: on-failure + ports: + - 8080:8080 \ No newline at end of file diff --git a/prepare-install.sh b/prepare-install.sh new file mode 100644 index 0000000..a8e22d3 --- /dev/null +++ b/prepare-install.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +rm docker-compose.yaml +mv docker-compose.yaml-distribution docker-compose.yaml