diff --git a/README.md b/README.md index 7d7e82c..11b5678 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,97 @@ ## 🔗 Зміст -1. [Початок](#1-початок) -2. [Встановлення Docker](#2-встановлення-docker) -3. [Встановлення Docker Compose](#3-встановлення-docker-compose) -4. [Запуск Sheep-Service](#4-запуск-sheep-service) -5. [Встановлення NGINX](#5-встановлення-nginx) -6. [Налаштування IP адреси CloudFlare](#6-налаштування-ip-адреси-cloudflare) -7. [Налаштування NGINX для веб](#7-налаштування-nginx-для-веб) -8. [Встановлення Certbot](#8-встановлення-certbot) -9. [CRONTAB Backup](#9-crontab-backup) +1. [Початок](#1-початок) +1.1. [Створення Telegram бота](#11-створення-telegram-бота) +1.2. [Генерація VAPID ключів](#12-генерація-vapid-ключів) +2. [Налаштування сервера](#2-налаштування-сервера) +3. [Встановлення Docker](#3-встановлення-docker) +4. [Встановлення Docker Compose](#4-встановлення-docker-compose) +5. [Запуск Sheep-Service](#5-запуск-sheep-service) +6. [Встановлення NGINX](#6-встановлення-nginx) +7. [Налаштування IP адреси CloudFlare](#7-настройка-ip-адреси-cloudflare) +8. [Налаштування NGINX для веб](#8-настройка-nginx-для-веб) +9. [Встановлення Certbot](#9-встановлення-certbot) +10. [CRONTAB Backup](#10-crontab-backup) --- ## 1. Початок +1. Скопіюйте всі файли проекту на сервер. +2. Створіть файл `.env` у корені проекту: + +```bash +DOMAIN=sheep-service.com + +HTTP_PORT=4000 +HTTPS_PORT=4001 + +DB_PATH=/home/username/webapps/sheep-service.com/ +CARDS_PATH=/home/username/webapps/sheep-service.com/cards +MAP_PATH=/home/username/webapps/sheep-service.com/map + +TELEGRAM_TOKEN=<токен_бота> +CHAT_ID=<тут_твій_chat_id> + +VAPID_PUBLIC_KEY=<тут_твій_public_key> +VAPID_PRIVATE_KEY=<тут_твій_private_key> +``` + +> **Примітка:** Замініть `username` на ім’я користувача сервера, а `sheep-service.com` на своє доменне ім’я. + +3. Відредагуйте файл `web/config.js` під ваші змінні `.env`. + + +## 1.1 Створення Telegram бота + +1. Відкрийте Telegram і знайдіть **[@BotFather](https://t.me/BotFather)**. +2. Відправте команду `/newbot` та слідуйте інструкціям: + - Назва бота: `SheepServiceBot` + - Username бота: `sheep_service_bot` (обов’язково закінчується на `bot`) +3. Скопіюйте **API токен** та додайте його у `.env`: + +```bash +TELEGRAM_TOKEN=<токен_бота> +``` + +4. Щоб отримати `CHAT_ID`: + - Відправте боту `/start`. + - Відкрийте URL у браузері: + +``` +https://api.telegram.org/bot<ТВОЙ_ТОКЕН>/getUpdates +``` + + - Знайдіть `chat.id` у відповіді JSON і додайте у `.env`: + +```bash +CHAT_ID=<тут_твій_chat_id> +``` + +## 1.2 Генерація VAPID ключів + +1. Встановіть `web-push`: + +```bash +npm install web-push -g +``` + +2. Згенеруйте ключі: + +```bash +web-push generate-vapid-keys +``` + +3. Скопіюйте отримані ключі у `.env`: + +```bash +VAPID_PUBLIC_KEY=<тут_твій_public_key> +VAPID_PRIVATE_KEY=<тут_твій_private_key> +``` + +## 2. Налаштування сервера + Оновлення системи та встановлення необхідних пакетів: ```bash @@ -31,7 +108,7 @@ sudo apt install -y curl gnupg2 ca-certificates lsb-release zip --- -## 2. Встановлення Docker +## 3. Встановлення Docker ```bash sudo apt install -y docker.io @@ -45,7 +122,7 @@ sudo usermod -aG docker $USER --- -## 3. Встановлення Docker Compose +## 4. Встановлення Docker Compose ```bash sudo apt install -y docker-compose @@ -56,7 +133,7 @@ docker-compose --version --- -## 4. Запуск Sheep-Service +## 5. Запуск Sheep-Service ### Перехід в директорію проекту @@ -74,7 +151,7 @@ docker-compose -p sheep-service up --build -d --scale api=5 --scale ws=5 --scale --- -## 5. Встановлення NGINX +## 6. Встановлення NGINX ```bash sudo apt install nginx @@ -98,7 +175,7 @@ client_max_body_size 20M; --- -## 6. Налаштування IP адреси CloudFlare +## 7. Налаштування IP адреси CloudFlare ```nginx set_real_ip_from 103.21.244.0/22; @@ -130,7 +207,7 @@ real_ip_header X-Forwarded-For; --- -## 7. Налаштування NGINX для веб +## 8. Налаштування NGINX для веб ### Створення файлу конфігурації сайту @@ -169,7 +246,7 @@ sudo systemctl reload nginx --- -## 8. Встановлення Certbot +## 9. Встановлення Certbot ```bash sudo python3 -m venv /opt/certbot/ @@ -190,7 +267,7 @@ sudo /opt/certbot/bin/pip install --upgrade certbot certbot-nginx --- -## 9. CRONTAB Backup +## 10. CRONTAB Backup Редагування cron для резервного копіювання бази даних: @@ -213,5 +290,4 @@ crontab -e sudo pip3 install python-dotenv ``` -💡 **Порада:** Переконайтесь, що всі шляхи до директорій відповідають вашому користувачу та що всі сервіси працюють після перезавантаження Docker або сервера. - +💡 **Порада:** Переконайтесь, що всі шляхи до директорій відповідають вашому користувачу та що всі сервіси працюють після перезавантаження Docker або сервера. \ No newline at end of file