Skip to content

Commit 2115ebb

Browse files
authored
Update README.md
1 parent 34e3795 commit 2115ebb

File tree

1 file changed

+72
-20
lines changed

1 file changed

+72
-20
lines changed

README.md

Lines changed: 72 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,78 @@
2929

3030
## 🏗️ Архитектура
3131

32-
```
33-
34-
┌─────────────────────────────────────────────────────────┐
35-
│ Этот репозиторий (Инфраструктура OAuth2) │
36-
│ ├─ nginx reverse-proxy │
37-
│ ├─ systemd timer (автообновление токенов) │
38-
│ └─ scripts/test-8000.py (тестовый сервер) │
39-
└─────────────────────────┬───────────────────────────────┘
40-
│ Проксирует на порт 8000
41-
42-
┌─────────────────────────────────────────────────────────┐
43-
│ Продакшен-приложение (Отдельный проект) │
44-
│ ├─ Telegram bot для поиска вакансий HH │
45-
│ ├─ Читает токены из /var/lib/hh-token/token.json │
46-
│ └─ Обрабатывает OAuth callback на /callback │
47-
└─────────────────────────────────────────────────────────┘
48-
49-
```
50-
51-
**Детальная схема потока:** см. [docs/oauth-flow.md](docs/oauth-flow.md)
32+
```mermaid
33+
flowchart TB
34+
35+
subgraph infra["📦 OAuth2 Infrastructure (Этот репозиторий)"]
36+
direction TB
37+
Nginx[🔄 nginx<br/>HTTP:80→:8000]
38+
39+
subgraph automation["⚙️ Automation"]
40+
direction LR
41+
Timer[⏱️ systemd<br/>Каждые 6h]
42+
Script[📜 refresh.sh<br/>Обновление токенов]
43+
end
44+
45+
TestServer[🧪 test-8000.py<br/>Тестовый сервер]
46+
TokenStore[(🔐 Token Storage<br/>/var/lib/hh-token/token.json)]
47+
end
48+
49+
subgraph prod["🤖 Production App (Отдельный проект)"]
50+
direction TB
51+
TelegramBot[📱 Telegram Bot<br/>Поиск вакансий HH]
52+
FlaskApp[🌐 Flask Application<br/>Обработка OAuth callback на /callback]
53+
54+
TelegramBot -.->|Проект<br/>hh-oauth2-keendns-nginx-systemd| FlaskApp
55+
end
56+
57+
subgraph external["External"]
58+
HHAPI[🏢 HH OAuth2 API<br/>api.hh.ru]
59+
end
60+
61+
%% Connections / Связи между компонентами
62+
63+
%% Main Flow (OAuth) (основной поток):
64+
Nginx -->|1. Proxy :8000| FlaskApp
65+
FlaskApp -->|2. OAuth callback| HHAPI
66+
TelegramBot -->|3. API запросы| HHAPI
67+
68+
%% Token Refresh Flow (автоматизация):
69+
Timer -.->|4. Каждые 6h| Script
70+
Script -->|5. Обновляет токены| HHAPI
71+
Script -->|6. Сохраняет| TokenStore
72+
FlaskApp -->|7. Читает| TokenStore
73+
74+
75+
%% Testing (тестирование):
76+
TestServer -.->|8. Альтернатива для<br/>тестирования| Nginx
77+
78+
%% Styling
79+
style Nginx fill:#2E8B57,color:#FFFFFF,stroke:#1a5f3a,stroke-width:2px
80+
style Timer fill:#FFA500,color:#000000,stroke:#cc8400,stroke-width:2px
81+
style Script fill:#FF8C00,color:#FFFFFF,stroke:#cc7000,stroke-width:2px
82+
style TestServer fill:#DAA520,color:#000000,stroke:#b8860b,stroke-width:2px
83+
style TokenStore fill:#9370DB,color:#FFFFFF,stroke:#6a4db8,stroke-width:2px
84+
85+
style TelegramBot fill:#4682B4,color:#FFFFFF,stroke:#1565c0,stroke-width:2px
86+
style FlaskApp fill:#4169E1,color:#FFFFFF,stroke:#2a4ba8,stroke-width:2px
87+
88+
style HHAPI fill:#DC143C,color:#FFFFFF,stroke:#a00000,stroke-width:2px
89+
```
90+
91+
### Цветовая схема
92+
93+
- 🟢 Зелёный — инфраструктурные компоненты (nginx)
94+
- 🟠 Оранжевый — автоматизация (systemd timer, Bash scripts)
95+
- 🟡 Золотой — тестовые/вспомогательные инструменты (test-8000.py)
96+
- 🟣 Фиолетовый — хранилище данных (Token Storage)
97+
- 🔵 Синий — продакшен-приложение (Telegram Bot, Flask App)
98+
- 🔴 Красный — внешние API (HeadHunter)
99+
100+
101+
102+
103+
### **Детальная схема потока:** см. [docs/oauth-flow.md](docs/oauth-flow.md)
52104

53105
## 🚀 Быстрый старт
54106

0 commit comments

Comments
 (0)