Files
Sheep-Service/README.md
Rozenrod 6ec6523d71 Переработаны роутеры приложения
Переписано APi WebSocket для работы с новыми роутерами
2025-10-03 17:11:31 +03:00

218 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.
# 🐑 Sheep-Service Керівництво з установки
> Повне покрокове керівництво для будь-якого користувача, щоб запустити Sheep-Service на своєму сервері або локальній машині.
---
## 🔗 Зміст
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. Початок
Оновлення системи та встановлення необхідних пакетів:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg2 ca-certificates lsb-release zip
```
💡 **Порада:** завжди запускайте оновлення перед встановленням нових пакетів, щоб уникнути конфліктів.
---
## 2. Встановлення Docker
```bash
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
```
> **Примітка:** Після додавання користувача до групи `docker` потрібно перелогінитися або виконати `newgrp docker`.
✅ [Документація Docker](https://docs.docker.com/engine/install/ubuntu/)
---
## 3. Встановлення Docker Compose
```bash
sudo apt install -y docker-compose
docker-compose --version
```
✅ [Документація Docker Compose](https://docs.docker.com/compose/install/)
---
## 4. Запуск Sheep-Service
### Перехід в директорію проекту
```bash
cd /home/username/webapps/sheep-service.com
```
### Запуск сервісів через Docker Compose
```bash
docker-compose pull
docker-compose -p sheep-service up --build -d
docker-compose -p sheep-service up --build -d --scale api=5 --scale ws=5 --scale web=2
```
---
## 5. Встановлення NGINX
```bash
sudo apt install nginx
sudo systemctl enable --now nginx
sudo systemctl status nginx
```
Редагування основного конфігураційного файлу:
```bash
sudo nano /etc/nginx/nginx.conf
```
Приклад налаштувань:
```nginx
proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=all:5m inactive=10m max_size=2g;
limit_req_zone $binary_remote_addr zone=one:5m rate=30r/s;
client_max_body_size 20M;
```
---
## 6. Налаштування IP адреси CloudFlare
```nginx
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;
real_ip_header X-Forwarded-For;
```
💡 **Порада:** Це дозволяє серверу отримувати реальні IP користувачів, якщо ви використовуєте CloudFlare.
---
## 7. Налаштування NGINX для веб
### Створення файлу конфігурації сайту
```bash
sudo nano /etc/nginx/sites-available/sheep-service.com
```
### Приклад конфігурації
```nginx
server {
listen 80;
listen [::]:80;
server_name sheep-service.com www.sheep-service.com;
location / {
proxy_pass http://127.0.0.1:4000$request_uri;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
### Активація сайту
```bash
sudo ln -s /etc/nginx/sites-available/sheep-service.com /etc/nginx/sites-enabled/sheep-service.com
sudo nginx -t
sudo systemctl reload nginx
```
---
## 8. Встановлення Certbot
```bash
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d sheep-service.com
```
Автоматичне оновлення сертифікатів через cron:
```bash
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
sudo /opt/certbot/bin/pip install --upgrade certbot certbot-nginx
```
✅ [Документація Certbot](https://certbot.eff.org/)
---
## 9. CRONTAB Backup
Редагування cron для резервного копіювання бази даних:
```bash
crontab -e
```
Додати завдання:
```cron
#####################
# Щоденне збереження резервної копії бази Sheep-Service о 22:30
30 22 * * * cd /home/username/webapps/sheep-service.com && /usr/bin/python3 backup.py >> /home/username/webapps/sheep-service.com/log/backup.log 2>&1
#####################
```
Встановлення Python-залежностей:
```bash
sudo pip3 install python-dotenv
```
💡 **Порада:** Переконайтесь, що всі шляхи до директорій відповідають вашому користувачу та що всі сервіси працюють після перезавантаження Docker або сервера.