From 3d5d80dc0550edd4756804bd3522e469a454c5b8 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 21 Jun 2025 23:39:02 +0300 Subject: [PATCH] docs: add vitepress docs --- README.md | 4 +- docs/.vitepress/config.ts | 35 +++++++++++++++ docs/.vitepress/theme/custom.css | 12 ++++++ docs/.vitepress/theme/index.js | 4 ++ docs/get-started.md | 74 ++++++++++++++++++++++++++++++++ docs/index.md | 35 +++++++++++++++ 6 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 docs/.vitepress/config.ts create mode 100644 docs/.vitepress/theme/custom.css create mode 100644 docs/.vitepress/theme/index.js create mode 100644 docs/get-started.md create mode 100644 docs/index.md diff --git a/README.md b/README.md index 2faf80e..847dcb7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -## YaBL monorepo +# YaBL monorepo - /apps/api - /apps/web - /apps/book-reaper + +## [Wiki](https://yabl.codeberg.page/) \ No newline at end of file diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts new file mode 100644 index 0000000..04f4acc --- /dev/null +++ b/docs/.vitepress/config.ts @@ -0,0 +1,35 @@ +import { defineConfig } from 'vitepress'; + +// refer https://vitepress.dev/reference/site-config for details +export default defineConfig({ + lang: 'en-US', + title: 'YaBL wiki', + description: 'Next-gen digital library', + + themeConfig: { + nav: [ + { text: 'Get started', link: '/get-started' }, + + // { + // text: 'Dropdown Menu', + // items: [ + // { text: 'Item A', link: '/item-1' }, + // { text: 'Item B', link: '/item-2' }, + // { text: 'Item C', link: '/item-3' }, + // ], + // }, + + // ... + ], + + /*sidebar: [ + { + // text: 'Guide', + items: [ + { text: 'Example', link: '/example' }, + // ... + ], + }, + ],*/ + }, +}); diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000..6644ce4 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,12 @@ +:root { + --vp-c-brand-1: #fd7c1a; + --vp-c-brand-2: #ff913d; + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient( + 120deg, + #ff712f 30%, + #ffb555 + ); + --vp-button-brand-bg: var(--vp-c-brand-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-2); +} diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 0000000..accc7da --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,4 @@ +import DefaultTheme from 'vitepress/theme'; +import './custom.css'; + +export default DefaultTheme; diff --git a/docs/get-started.md b/docs/get-started.md new file mode 100644 index 0000000..ea3f0a1 --- /dev/null +++ b/docs/get-started.md @@ -0,0 +1,74 @@ +# Get started + +## Установка + +### Docker + +Установка YaBL на linux, необходим предустановленный docker и docker-compose + +```sh +mkdir YaBL && cd YaBL +wget https://git.mi6e4ka.dev/YaBL/app/raw/branch/main/docker-compose.yaml +docker compose up -d +``` + +Пример docker compose файла: + +```yaml +services: + app: + image: git.mi6e4ka.dev/yabl/app:latest + container_name: yabl + restart: unless-stopped + ports: + - "8080:8080" + environment: + - DATA_DIR=/app/data + - LIBRARY_DIR=/app/lib + - UPLOADS_DIR=/app/uploads + # - BIND_ADDR=:8080 # адрес, который прослушивает yabl + volumes: + - ./lib:/app/lib # папка для хранения внешней библиотеки + - ./uploads:/app/uploads # папка для загруженных файлов + - ./data:/app/data # папка для хранения файла БД и ключей JWT +``` + +### OOBE + +После запуска контейнера страница первоначальной установки будет доступна по адресу `http://ваш-ip:порт/oobe`. Она предложит создать пользователя - администратора библиотеки +::: info +Пройти первоначальную настройку возможно только один раз +::: + +## Импорт книг + +YaBL предоставляет возможность загружать книги через web-интерфейс, однако если необходимо загрузить большое количество книг в docker контейнер интегрирован инструмент `book-reaper` +Упакуйте свои книги в формате `fb2` в `zip` архивы и поместите в папку, указанную для хранения внешней библиотеки (по умолчанию `./lib`), поддерживается любой уровень вложенности + +``` +lib +├── 1.zip +├── 2.zip +└── sub + ├── 3.zip + └── subdir + └── 4.zip +``` + +Затем, запустите `book-reaper` через docker: + +```sh +docker compose exec -it app ./book-reaper +``` + +Дождитесь окончания процесса индексирования, и после этого все книги будут доступны через web-интерфейс! + +::: warning +После индексирования файлы книг необходимо сохранить, иначе доступ к обложкам, файлам и чтению книг из web-интерфейса будет недоступен +::: + +::: danger +На данный момент не поддерживается инкриментальное индексирование, при повторном запуске book-reaper'а книги дублируются +::: + +### Приятного чтения! diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..f4fee62 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,35 @@ +--- +layout: home + +hero: + name: YaBL + text: Next-gen digital library + tagline: Easier, more convenient and safer + image: + src: https://raw.githubusercontent.com/yetanotherbooklibrary/landing/39d4a77008f001914c1cfc48eebb8a3926aa39e3/icon.png + alt: YaBL logo + actions: + - theme: brand + text: Get started + link: /get-started + - theme: alt + text: Source + link: https://git.mi6e4ka.dev/YaBL +features: + - icon: 🚀 + title: High-performance + details: Written in go, converting books on the fly + - icon: 💻 + title: Simple + details: Intuitive UX, easy installation + - icon: ✨ + title: Beautiful + details: Uses the Material 3 UI + - icon: 💾 + title: Self-host + details: Keep all your favorite books on your fridge! + - icon: 🔐 + title: Security + details: Manage your data yourself (TOTP and passkey auth on the way) + +---