mirror of
https://gitverse.ru/kpa39l/md2vk.git
synced 2026-09-29 09:55:04 +00:00
64 lines
3.3 KiB
Markdown
64 lines
3.3 KiB
Markdown
# md2vk
|
|
|
|
Сервис публикации Markdown на стене VK через официальный VK API (wall.post + format_data).
|
|
|
|
```
|
|
┌─────────────┐ ┌─────────────┐ ┌──────────────┐
|
|
│ Hermes │────▶│ md2vk │────▶│ VK API │
|
|
│ Agent │ │ :8420 │ │ wall.post │
|
|
│ (skill) │◀────│ FastAPI │ │ vk.com │
|
|
└─────────────┘ └─────────────┘ └──────────────┘
|
|
```
|
|
|
|
**Прод:** https://md2vk.nixg.ru (basic auth — см. `docs/security.md`; Swagger `/docs`).
|
|
|
|
## Документация
|
|
|
|
Вся документация — в [`docs/`](docs/index.md):
|
|
|
|
- [docs/index.md](docs/index.md) — указатель, обзор
|
|
- [docs/access.md](docs/access.md) — **реквизиты и доступы** (vps02, Caddy, gitverse, gitea, DNS, VK API)
|
|
- [docs/architecture.md](docs/architecture.md) — архитектура, порты, схема
|
|
- [docs/vk-api.md](docs/vk-api.md) — порядок взаимодействия с VK API (OAuth, wall.post, лонгриды)
|
|
- [docs/security.md](docs/security.md) — безопасность (basic auth, fail2ban, Fernet, API-ключ)
|
|
- [docs/deploy.md](docs/deploy.md) — деплой (docker, Caddy, fail2ban)
|
|
- [docs/status.md](docs/status.md) — статус/история
|
|
|
|
Инструкции для агентов (Hermes и др.): [`AGENTS.md`](AGENTS.md).
|
|
|
|
## Возможности
|
|
|
|
- Публикация Markdown на стене VK с сохранением форматирования
|
|
- Конвертация Markdown → VK format_data (JSON) без публикации
|
|
- Управление VK-аккаунтами — несколько страниц через один сервис
|
|
- Отложенные посты — запись `scheduled` (планировщик — открытая задача)
|
|
- Архив публикаций с фильтрацией по статусу
|
|
- Аудит-лог запросов API (JSONL, ротация по дням)
|
|
|
|
## API
|
|
|
|
| Метод | Путь | Описание |
|
|
|-------|------|----------|
|
|
| `GET` | `/api/v1/health` | Проверка работоспособности |
|
|
| `GET` | `/api/v1/accounts` | Список VK-аккаунтов |
|
|
| `POST` | `/api/v1/accounts` | Добавить VK-аккаунт |
|
|
| `DELETE` | `/api/v1/accounts/{id}` | Удалить VK-аккаунт |
|
|
| `POST` | `/api/v1/publish` | Опубликовать пост на стене |
|
|
| `POST` | `/api/v1/convert` | Конвертировать Markdown (без публикации) |
|
|
| `POST` | `/api/v1/publications` | Архив публикаций |
|
|
|
|
Swagger UI: `http://127.0.0.1:8420/docs` (прод — за basic auth).
|
|
|
|
## Быстрый старт
|
|
|
|
```bash
|
|
cd /opt/md2vk
|
|
make docker-up # docker compose up -d --build
|
|
curl -s http://127.0.0.1:8420/api/v1/health # {"status":"ok"}
|
|
```
|
|
|
|
Детали деплоя и проверки — [docs/deploy.md](docs/deploy.md).
|
|
|
|
## Технологии
|
|
|
|
Python 3.12+, FastAPI, SQLAlchemy 2.0 (async), SQLite (aiosqlite), httpx, cryptography (Fernet), Docker, Caddy, fail2ban. |