Go to file
mirivlad 8cbf23a74d docs: update PLAN.md — mark steps 1-14 done, unpause 15-23, sync with current state 2026-06-03 05:15:46 +08:00
build/linux chore: add wails.json, remove wails3 artifacts, rebuild binaries 2026-06-03 01:48:12 +08:00
cmd fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
contrib/plugins/importer-dokuwiki step 10: plugins system (Lua + templates) + DokuWiki as optional plugin 2026-05-31 11:20:45 +08:00
docs docs: update PLAN.md — mark steps 1-14 done, unpause 15-23, sync with current state 2026-06-03 05:15:46 +08:00
frontend fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
internal gui: sidebar tree UX fixes — has_children, preserve expanded, double-click, DnD visual 2026-06-03 03:48:53 +08:00
migrations steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
scripts fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
.gitignore fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
AGENTS.md fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
README.md fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
build.sh fix: tab highlight reactivity, cleanup docs and build scripts 2026-06-03 05:08:58 +08:00
go.mod sync: overhaul sync system — device pairing, server_sequence, auto-sync, dashboards 2026-06-02 02:26:05 +08:00
go.sum gui: add Wails v2 app skeleton 2026-05-31 19:11:20 +08:00
test_smoke_sync.sh test: update smoke test for user auth flow 2026-06-01 23:36:38 +08:00
wails.json chore: add wails.json, remove wails3 artifacts, rebuild binaries 2026-06-03 01:48:12 +08:00

README.md

Верстак

Верстак — 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