6.6 KiB
6.6 KiB
Верстак
Верстак — 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)
- npm
Сборка
# Всё сразу (GUI + сервер)
./build.sh
# Или по отдельности
./scripts/build.sh gui # только GUI
./scripts/build.sh server # только сервер
Бинарники попадают в build/:
verstak-gui-linux-amd64— GUI-приложениеverstak-server-linux-amd64— опциональный сервер синхронизации
Запуск
# 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 команды
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 открывается в любом файловом менеджере без специальных инструментов.
Документация
| Раздел | Описание |
|---|---|
| Описание продукта | Аудитория, сценарии, фичи |
| Архитектура | Компоненты, плагины, sync |
| Модель данных | SQLite, vault, файлы |
| Синхронизация | Sync, backup, activity |
| UI/UX | Экраны GUI/TUI |
| Плагины | Lua-плагины, шаблоны |
| Сервер синхронизации | Установка и настройка сервера |
| Vault layout | Структура папок на диске |
| План | Дорожная карта |
| Шаблоны | Шаблоны дел |
Лицензия
MIT