156 lines
6.6 KiB
Markdown
156 lines
6.6 KiB
Markdown
# Верстак
|
||
|
||
**Верстак** — local-first рабочий vault. Всё организовано вокруг **дел**, а не задач.
|
||
|
||
Дело может быть: клиентом, проектом, набором документов, рецептом, архивом, разовой работой.
|
||
Внутри дела: вложенные папки, Markdown-заметки, файлы, действия (URL/файл/папка/команда), журнал работ, история активности.
|
||
|
||
## Стек
|
||
|
||
| Слой | Технология |
|
||
|------|------------|
|
||
| GUI | Wails v2 + Svelte 4 |
|
||
| CLI/TUI | Go (bubbletea-like) |
|
||
| Backend | Go |
|
||
| Хранилище | SQLite (индекс) + файловая система (vault) |
|
||
| Плагины | Lua |
|
||
| Синхронизация | HTTP API (опциональный сервер) |
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
┌────────────────────┐
|
||
│ GUI (Wails v2) │
|
||
└─────────┬──────────┘
|
||
│
|
||
┌─────────▼────────┐ ┌─────────────┐
|
||
│ Core Library │◄──│ CLI Commands │
|
||
└─────────┬────────┘ └─────────────┘
|
||
│
|
||
┌─────────▼──────────┐
|
||
│ Local Vault+SQLite │
|
||
└─────────┬──────────┘
|
||
│
|
||
┌─────────▼──────────┐
|
||
│ Sync Client │
|
||
└─────────┬──────────┘
|
||
│
|
||
┌─────────▼──────────┐
|
||
│ Sync Server │
|
||
└────────────────────┘
|
||
```
|
||
|
||
## Быстрый старт
|
||
|
||
### Требования
|
||
|
||
- Go 1.25+
|
||
- Node.js 20+
|
||
- libwebkit2gtk-4.1-dev, libgtk-3-dev и другие Wails-зависимости (см. [wails.io/docs/desktop/linux](https://wails.io/docs/desktop/linux))
|
||
- npm
|
||
|
||
### Сборка
|
||
|
||
```bash
|
||
# Всё сразу (GUI + сервер)
|
||
./build.sh
|
||
|
||
# Или по отдельности
|
||
./scripts/build.sh gui # только GUI
|
||
./scripts/build.sh server # только сервер
|
||
```
|
||
|
||
Бинарники попадают в `build/`:
|
||
- `verstak-gui-linux-amd64` — GUI-приложение
|
||
- `verstak-server-linux-amd64` — опциональный сервер синхронизации
|
||
|
||
### Запуск
|
||
|
||
```bash
|
||
# GUI (после сборки)
|
||
./build/verstak-gui-linux-amd64
|
||
|
||
# Сервер (после сборки)
|
||
./build/verstak-server-linux-amd64 --help
|
||
|
||
# CLI
|
||
go run ./cmd/verstak/ --help
|
||
```
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
.
|
||
├── cmd/ # Точки входа
|
||
│ ├── verstak/ # CLI/TUI
|
||
│ ├── verstak-gui/ # Wails GUI
|
||
│ └── verstak-server/ # Sync server
|
||
├── internal/
|
||
│ ├── core/ # Бизнес-логика
|
||
│ │ ├── actions/ # Действия (URL, папка, команда)
|
||
│ │ ├── config/ # Конфигурация
|
||
│ │ ├── files/ # Файлы и импорт
|
||
│ │ ├── i18n/ # Интернационализация (Go)
|
||
│ │ ├── nodes/ # Дела/узлы дерева
|
||
│ │ ├── plugins/ # Lua-плагины
|
||
│ │ ├── search/ # Поиск
|
||
│ │ ├── storage/ # SQLite + миграции
|
||
│ │ ├── sync/ # Синхронизация
|
||
│ │ ├── templates/ # Шаблоны дел
|
||
│ │ ├── vault/ # Vault layout
|
||
│ │ └── worklog/ # Журнал работ
|
||
│ └── gui/ # Wails bridge (embedded HTML)
|
||
├── frontend/ # Svelte-приложение
|
||
│ └── src/
|
||
│ ├── lib/
|
||
│ │ └── i18n/ # Локали (JS)
|
||
│ └── ...svelte # Компоненты
|
||
├── migrations/ # SQL-миграции
|
||
├── docs/ # Документация
|
||
├── build.sh # Скрипт полной сборки
|
||
└── scripts/ # Вспомогательные скрипты
|
||
```
|
||
|
||
## CLI команды
|
||
|
||
```bash
|
||
go run ./cmd/verstak/ sync # Синхронизация с сервером
|
||
go run ./cmd/verstak/ sync configure # Настройка сервера
|
||
go run ./cmd/verstak/ sync status # Статус синхронизации
|
||
```
|
||
|
||
## Vault layout
|
||
|
||
Данные хранятся в локальной папке (vault). Структура на диске:
|
||
|
||
```
|
||
vault/
|
||
.verstak/ # Служебные данные (БД, кеш, бэкапы)
|
||
Проекты/ # Пользовательские папки-дела
|
||
Клиенты/
|
||
Рабочие/
|
||
Archive/
|
||
```
|
||
|
||
Внутри папок-дел: `Notes/`, `Files/`, `Documents/`, `Overview.md`.
|
||
Vault открывается в любом файловом менеджере без специальных инструментов.
|
||
|
||
## Документация
|
||
|
||
| Раздел | Описание |
|
||
|--------|----------|
|
||
| [Описание продукта](docs/01_Product_Spec.md) | Аудитория, сценарии, фичи |
|
||
| [Архитектура](docs/02_Architecture.md) | Компоненты, плагины, sync |
|
||
| [Модель данных](docs/03_Data_Model_Storage.md) | SQLite, vault, файлы |
|
||
| [Синхронизация](docs/04_Sync_Backup_Activity.md) | Sync, backup, activity |
|
||
| [UI/UX](docs/05_UI_UX.md) | Экраны GUI/TUI |
|
||
| [Плагины](docs/09_Extensibility.md) | Lua-плагины, шаблоны |
|
||
| [Сервер синхронизации](docs/10_Sync_Server_Guide.md) | Установка и настройка сервера |
|
||
| [Vault layout](docs/VAULT_LAYOUT.md) | Структура папок на диске |
|
||
| [План](docs/PLAN.md) | Дорожная карта |
|
||
| [Шаблоны](docs/TEMPLATES.md) | Шаблоны дел |
|
||
|
||
## Лицензия
|
||
|
||
MIT
|