Skip to content

Commit 23da04b

Browse files
authored
Update README.md
1 parent bd3e578 commit 23da04b

File tree

1 file changed

+92
-27
lines changed

1 file changed

+92
-27
lines changed

README.md

Lines changed: 92 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,109 @@
1-
# Adv Keeper TUI
1+
# Adv Keeper — мини-хранилище с TUI и gRPC
22

3-
Минимальные требования: **OS + make**. Ничего больше ставить не нужно.
3+
Adv Keeper — это клиент-серверное приложение для безопасного хранения пользовательских данных и файлов.
4+
Сервер предоставляет gRPC API, а к нему подключается TUI-клиент (Bubble Tea).
5+
Под капотом: Go, gRPC, Postgres, JWT, потоковая передача файлов (streaming RPC), миграции БД при старте.
46

5-
> Просьба: **разворачивайте терминал на весь экран** — так интерфейс выглядит корректнее.
7+
![screenshot](docs/screenshot.png)
68

7-
## Сборка (Make)
9+
## Возможности
810

9-
```bash
10-
# основные таргеты
11-
make linux-amd64 # → build-linux_amd64
12-
make linux-arm64 # → build-linux_arm64
13-
make windows-amd64 # → build-windows_amd64
14-
make darwin-arm64 # → build-darwin_arm64 (Apple Silicon)
15-
```
16-
Запуск
17-
18-
Сделайте бинарник исполняемым и запустите из текущей директории:
11+
- Регистрация и вход (JWT access token).
12+
- Хранение файлов на сервере + запись метаданных в Postgres.
13+
- Загрузка файлов **потоком** (без чтения всего файла в память).
14+
- Список файлов, скачивание и удаление.
15+
- TUI-клиент: регистрация/логин, выбор файла через file picker, просмотр списка и деталей.
1916

20-
chmod +x ./tui_darwin_arm64 # пример для macOS ARM
21-
./tui_darwin_arm64 # обратите внимание на ./ перед именем файла
17+
---
2218

19+
## Архитектура (кратко)
2320

24-
Если в zsh видите command not found: tui_darwin_arm64, добавьте ./ и/или выполните chmod +x.
21+
- **Server** (`./cmd/server`):
22+
- gRPC на TCP (`GRPC_ADDR`).
23+
- Postgres (`DB_DSN`).
24+
- Файлы сохраняются на диск (`FILES_DIR`), метаданные — в БД.
25+
- JWT для авторизации (проверка токена в unary/stream interceptors).
26+
- Автоматический прогон миграций при старте (`MIGRATIONS_URL`, например `file:///opt/adv-keeper/migrations`).
2527

26-
Логин по умолчанию
27-
admin / admin
28+
- **Client (TUI)** (`./cmd/tui`):
29+
- Подключается к серверу по `AK_GRPC_ADDR` (или `GRPC_ADDR`).
30+
- Хранит сессию локально: `~/.config/adv-keeper/session.json`.
31+
- Имеет экраны: Register, Login, Vault (загрузка), FileList, FileDetails.
2832

29-
Как пользоваться
33+
---
3034

31-
Запустите программу.
35+
## Требования
3236

33-
Загрузите файл.
37+
- Go 1.22+
38+
- Postgres 14+ (на сервере)
39+
- Для деплоя по SSH/CI — `rsync`/`systemd` (опционально)
3440

35-
Скачайте его — файл сохранится рядом с бинарником (в той же папке, где лежит софт).
41+
---
3642

37-
Для демонстрации на сервере уже есть пример (видео с Дуэйном Джонсоном).
43+
## Настройка окружения (сервер)
3844

39-
Мышь: пока не поддерживается, работаем над этим. Управление — клавиатурой (стрелки, Enter, Esc).
45+
Создай файл окружения (пример для systemd: `/etc/adv-keeper.env`):
4046

41-
## 🎬 Видео-туториал
42-
▶️ [Смотреть туториал](https://youtu.be/kjKNKey66Go)
47+
```
48+
env
4349
50+
# gRPC адрес (0.0.0.0:8080 — доступ снаружи, 127.0.0.1:8080 — локально)
51+
GRPC_ADDR=0.0.0.0:8080
52+
```
53+
# Строка подключения к Postgres
54+
```
55+
DB_DSN=postgres://admin:[email protected]:5432/adv?sslmode=disable
56+
```
57+
# Папка для файлов
58+
```
59+
FILES_DIR=/opt/adv-keeper/data
60+
```
61+
# Секрет для подписи JWT
62+
```
63+
JWT_SECRET=supersecret_change_me
64+
```
65+
# Откуда брать миграции (локальная папка на сервере)
66+
```
67+
MIGRATIONS_URL=file:///opt/adv-keeper/migrations
68+
```
69+
Убедись, что директории существуют и доступны процессу:
70+
```
71+
sudo mkdir -p /opt/adv-keeper/data /opt/adv-keeper/migrations
72+
sudo chown -R ak:ak /opt/adv-keeper
73+
```
74+
Сборка и запуск (сервер локально)
75+
```
76+
go mod tidy
77+
go build -o bin/server ./cmd/server
78+
# запустить
79+
DB_DSN='postgres://admin:[email protected]:5432/adv?sslmode=disable' \
80+
FILES_DIR='./data' \
81+
JWT_SECRET='devsecret' \
82+
GRPC_ADDR='127.0.0.1:8080' \
83+
MIGRATIONS_URL='file://./migrations' \
84+
./bin/server
85+
```
86+
Проверить порт:
87+
```
88+
nc -vz 127.0.0.1 8080
89+
```
90+
Сборка и запуск (клиент)
91+
Минимальный Makefile уже есть. Основные цели:
92+
```
93+
# все платформы (бинари в ./dist)
94+
make linux
95+
make mac
96+
make windows
97+
98+
# или просто собрать текущую платформу
99+
make build
100+
./dist/tui
101+
```
102+
Перед запуском укажи адрес сервера:
103+
```
104+
# если сервер на этой же машине
105+
export AK_GRPC_ADDR=127.0.0.1:8080
44106
107+
# если сервер в облаке
108+
export AK_GRPC_ADDR=89.207.255.214:8080
109+
```

0 commit comments

Comments
 (0)