Документация ASPEKTER: архитектура, деплой, API, безопасность, пользователи
25
API.md
Normal file
25
API.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# API
|
||||
|
||||
Endpoints: /api/*. Auth: cookie z51_token.
|
||||
|
||||
## Auth
|
||||
| POST | /api/auth/login | {login, password} |
|
||||
| GET | /api/auth/me | Текущий пользователь |
|
||||
|
||||
## Проекты
|
||||
| GET | /api/projects | Список |
|
||||
| GET | /api/project/:name | Данные проекта |
|
||||
| PUT | /api/project/:name/settings | Настройки |
|
||||
|
||||
## Письма
|
||||
| PUT | /api/project/:name/letter | Сохранить (+createdBy) |
|
||||
| DELETE | /api/project/:name/letter/:id | Удалить |
|
||||
|
||||
## Рендер
|
||||
| POST | /api/project/:name/render-email | Pug→HTML |
|
||||
|
||||
## Фиды
|
||||
| POST | /api/project/:name/auto-assemble | Авто-подбор |
|
||||
|
||||
## Админ
|
||||
| GET | /api/admin/logs | Аудит-логи |
|
||||
29
Architecture.md
Normal file
29
Architecture.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Архитектура
|
||||
|
||||
## Структура
|
||||
```
|
||||
aspekter/
|
||||
├── z51-pug-builder/ # Фронтенд + API
|
||||
│ ├── src/App.svelte # SPA компонент
|
||||
│ ├── vite.config.js # API middleware
|
||||
│ └── data/{project}/ # Данные
|
||||
├── email-gen/ # Pug-шаблоны
|
||||
├── deploy/email-gen-api/ # Рендер-сервер
|
||||
├── coin-scout/ # Подбор монет
|
||||
└── docker-compose*.yml
|
||||
```
|
||||
|
||||
## Поток: Pug → HTML
|
||||
1. Пользователь собирает письмо из блоков
|
||||
2. POST на email-gen-api с Pug-кодом
|
||||
3. Валидация → temp-файл → email-templates рендер
|
||||
4. Juice инлайнит CSS → HTML
|
||||
5. Превью / копирование
|
||||
|
||||
## Данные проекта
|
||||
```
|
||||
data/{project}/
|
||||
├── block.pug, settings.json
|
||||
├── draft.json, presets.json
|
||||
├── letters.json + letters/*.json
|
||||
```
|
||||
25
Deploy.md
Normal file
25
Deploy.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Деплой
|
||||
|
||||
## Сервер
|
||||
IP: 147.45.109.108, Ubuntu 24, Docker 29.2
|
||||
|
||||
## Запуск
|
||||
```bash
|
||||
cd /opt/aspekter
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build
|
||||
```
|
||||
|
||||
## SSL
|
||||
```bash
|
||||
certbot certonly --standalone -d app.aspekter.ru
|
||||
certbot certonly --standalone -d coins.aspekter.ru
|
||||
```
|
||||
|
||||
## Обновление
|
||||
```bash
|
||||
cd /opt/aspekter && git pull && docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build
|
||||
```
|
||||
|
||||
## Картинки
|
||||
- FTP/SFTP — внешний сервер
|
||||
- Локально — data/images/ → https://app.aspekter.ru/images/
|
||||
25
Home.md
25
Home.md
@@ -1 +1,26 @@
|
||||
# ASPEKTER
|
||||
|
||||
Визуальный конструктор email-рассылок.
|
||||
|
||||
## Ссылки
|
||||
|
||||
- **Приложение:** [app.aspekter.ru](https://app.aspekter.ru)
|
||||
- **Coin Scout:** [coins.aspekter.ru](https://coins.aspekter.ru)
|
||||
- **Репозиторий:** [git.aspekter.ru/s.zotov/aspekter](https://git.aspekter.ru/s.zotov/aspekter)
|
||||
|
||||
## Стек
|
||||
|
||||
| Компонент | Описание | Порт |
|
||||
|-----------|----------|------|
|
||||
| z51-pug-builder | Svelte 5 SPA — редактор писем | 5173 → 5175 |
|
||||
| email-gen-api | Рендерер Pug→HTML | 8787 |
|
||||
| coin-scout | Подбор монет из фидов | 5180 |
|
||||
| nginx | Reverse proxy + SSL | 80/443 |
|
||||
|
||||
## Документация
|
||||
|
||||
- [Архитектура](Architecture)
|
||||
- [Деплой](Deploy)
|
||||
- [API](API)
|
||||
- [Безопасность](Security)
|
||||
- [Пользователи](Users)
|
||||
|
||||
13
Security.md
Normal file
13
Security.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Безопасность
|
||||
|
||||
## Pug Injection Protection
|
||||
Валидация перед рендером: запрещены require, process, exec, eval, Function, global, fs, Buffer.
|
||||
|
||||
## Конкурентность
|
||||
Уникальный temp-файл на каждый запрос рендера.
|
||||
|
||||
## Auth
|
||||
scrypt, HttpOnly cookies, порты только 127.0.0.1, HTTPS.
|
||||
|
||||
## Аудит
|
||||
Все мутации логируются в JSONL (кто, когда, что, IP). Ротация 6 мес.
|
||||
9
Users.md
Normal file
9
Users.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Пользователи
|
||||
|
||||
## Роли
|
||||
| admin | Все проекты, управление пользователями, логи |
|
||||
| user | Только назначенные проекты |
|
||||
|
||||
## Письма
|
||||
- createdBy — создатель
|
||||
- updatedBy — последний редактор
|
||||
Reference in New Issue
Block a user