vault backup: 2025-08-04 15:41:49
This commit is contained in:
@@ -24,11 +24,21 @@ Obsidian Vault → Hugo → Static Site → Nginx (в Docker)
|
|||||||
- **Static Site**: Оптимизированные HTML/CSS/JS файлы
|
- **Static Site**: Оптимизированные HTML/CSS/JS файлы
|
||||||
- **Nginx**: Веб-сервер в Docker контейнере
|
- **Nginx**: Веб-сервер в Docker контейнере
|
||||||
|
|
||||||
## 2. Миграция контента
|
## 2. Сохранение структуры каталогов
|
||||||
|
|
||||||
### 2.1 Структура Obsidian Vault
|
### 2.1 Принцип "не трогать структуру"
|
||||||
|
|
||||||
**Текущая структура:**
|
**Ключевое правило:** Структура каталогов в Git остается неизменной, Hugo адаптируется под неё.
|
||||||
|
|
||||||
|
**Преимущества:**
|
||||||
|
- Сохранение удобной навигации в Obsidian
|
||||||
|
- Отсутствие необходимости переименовывать файлы
|
||||||
|
- Сохранение существующих ссылок
|
||||||
|
- Простота миграции
|
||||||
|
|
||||||
|
### 2.2 Адаптация Hugo под существующую структуру
|
||||||
|
|
||||||
|
**Текущая структура (остается неизменной):**
|
||||||
```
|
```
|
||||||
Second Mind/
|
Second Mind/
|
||||||
├── index.md
|
├── index.md
|
||||||
@@ -47,55 +57,76 @@ Second Mind/
|
|||||||
└── Документация сервера aepif.ru.md
|
└── Документация сервера aepif.ru.md
|
||||||
```
|
```
|
||||||
|
|
||||||
**Новая структура для Hugo:**
|
**Hugo конфигурация для работы с существующей структурой:**
|
||||||
```
|
```toml
|
||||||
hugo-site/
|
# config.toml
|
||||||
├── content/
|
baseURL = "https://aepif.ru"
|
||||||
│ ├── _index.md # Главная страница
|
languageCode = "ru-ru"
|
||||||
│ ├── идеи/
|
title = "Second Mind"
|
||||||
│ │ ├── _index.md # Страница раздела
|
theme = "custom-theme"
|
||||||
│ │ ├── obsidian-telegram-bot/
|
|
||||||
│ │ │ ├── _index.md
|
# Настройки для работы с существующей структурой
|
||||||
│ │ │ ├── mvp-telegram-bota.md
|
[params]
|
||||||
│ │ │ └── telegram-bot-dlya-obsidian.md
|
preserveStructure = true
|
||||||
│ │ └── optimizatsiya-resursov-vps/
|
useOriginalNames = true
|
||||||
│ │ ├── _index.md
|
|
||||||
│ │ ├── edinoe-prilozhenie-hugo-webhook.md
|
[markup]
|
||||||
│ │ └── migratsiya-kontenta-na-hugo.md
|
[markup.goldmark]
|
||||||
│ └── мой-сервер/
|
[markup.goldmark.renderer]
|
||||||
│ ├── _index.md
|
unsafe = true
|
||||||
│ ├── authelia-authentication/
|
|
||||||
│ ├── git-service/
|
# Поддержка Obsidian-специфичных элементов
|
||||||
│ ├── second-mind-setup/
|
[markup.highlight]
|
||||||
│ └── traefik-reverse-proxy/
|
style = "dracula"
|
||||||
├── static/
|
lineNos = true
|
||||||
│ ├── images/ # Изображения
|
|
||||||
│ └── attachments/ # Вложения
|
|
||||||
└── themes/
|
|
||||||
└── custom-theme/ # Кастомная тема
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.2 Основные изменения при миграции
|
### 2.3 Обработка имен файлов и каталогов
|
||||||
|
|
||||||
|
**Стратегия Hugo:**
|
||||||
|
- Использование оригинальных имен файлов и каталогов
|
||||||
|
- Автоматическое создание slug из имен файлов
|
||||||
|
- Сохранение кириллических имен
|
||||||
|
- Обработка пробелов и специальных символов
|
||||||
|
|
||||||
|
**URL структура:**
|
||||||
|
- `/идеи/obsidian-телеграм-бот/mvp-telegram-бота-для-obsidian/`
|
||||||
|
- `/мой-сервер/authelia-authentication/`
|
||||||
|
- Сохранение читаемости URL
|
||||||
|
|
||||||
|
## 3. Миграция контента
|
||||||
|
|
||||||
|
### 3.1 Основные изменения при миграции
|
||||||
|
|
||||||
**Frontmatter преобразования:**
|
**Frontmatter преобразования:**
|
||||||
- Quartz frontmatter → Hugo frontmatter
|
- Сохранение существующих полей
|
||||||
- Добавление обязательных полей (title, date, draft)
|
- Добавление Hugo-специфичных полей (title, date, draft)
|
||||||
- Сохранение пользовательских полей
|
- Автоматическое извлечение заголовка из имени файла
|
||||||
- Преобразование дат в стандартный формат
|
- Преобразование дат в стандартный формат
|
||||||
|
|
||||||
**Внутренние ссылки:**
|
**Внутренние ссылки:**
|
||||||
- `[[wiki links]]` → `{{< ref "path" >}}`
|
- `[[wiki links]]` → `{{< ref "path" >}}`
|
||||||
- Относительные пути → Абсолютные пути Hugo
|
- Сохранение относительных путей
|
||||||
- Обработка Obsidian-специфичных ссылок
|
- Обработка Obsidian-специфичных ссылок
|
||||||
|
- Автоматическое обновление ссылок при изменении структуры
|
||||||
|
|
||||||
**Изображения и вложения:**
|
**Изображения и вложения:**
|
||||||
- Перемещение в `static/images/`
|
- Сохранение в той же структуре каталогов
|
||||||
- Обновление путей в контенте
|
- Обновление путей в контенте
|
||||||
- Сохранение структуры вложений
|
- Оптимизация размера файлов без изменения структуры
|
||||||
|
|
||||||
## 3. Docker развертывание
|
### 3.2 Автоматизация миграции
|
||||||
|
|
||||||
### 3.1 Архитектура контейнеров
|
**Скрипт миграции:**
|
||||||
|
- Анализ существующей структуры
|
||||||
|
- Автоматическое создание Hugo конфигурации
|
||||||
|
- Преобразование frontmatter
|
||||||
|
- Обновление внутренних ссылок
|
||||||
|
- Сохранение структуры каталогов
|
||||||
|
|
||||||
|
## 4. Docker развертывание
|
||||||
|
|
||||||
|
### 4.1 Архитектура контейнеров
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
@@ -111,7 +142,7 @@ graph TB
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3.2 Структура Docker
|
### 4.2 Структура Docker
|
||||||
|
|
||||||
**Docker Compose:**
|
**Docker Compose:**
|
||||||
```yaml
|
```yaml
|
||||||
@@ -120,13 +151,14 @@ services:
|
|||||||
hugo-webhook:
|
hugo-webhook:
|
||||||
build: .
|
build: .
|
||||||
volumes:
|
volumes:
|
||||||
- ./content:/app/content
|
- ./Second Mind:/app/content # Прямое монтирование существующей структуры
|
||||||
- ./static:/app/static
|
- ./static:/app/static
|
||||||
- static-files:/var/www/html
|
- static-files:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- GIT_REPOSITORY_URL=your-repo
|
- GIT_REPOSITORY_URL=your-repo
|
||||||
- HUGO_SOURCE_PATH=/app
|
- HUGO_SOURCE_PATH=/app
|
||||||
- HUGO_OUTPUT_PATH=/var/www/html
|
- HUGO_OUTPUT_PATH=/var/www/html
|
||||||
|
- PRESERVE_STRUCTURE=true
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -147,28 +179,25 @@ volumes:
|
|||||||
static-files:
|
static-files:
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3.3 Преимущества Docker развертывания
|
### 4.3 Преимущества сохранения структуры
|
||||||
|
|
||||||
**Изоляция:**
|
**Для пользователя:**
|
||||||
- Отдельные контейнеры для Hugo и Nginx
|
- Знакомая навигация в Obsidian
|
||||||
- Изолированные файловые системы
|
- Отсутствие необходимости переучиваться
|
||||||
- Контроль ресурсов
|
- Сохранение всех существующих ссылок
|
||||||
|
- Простота поиска файлов
|
||||||
|
|
||||||
**Простота развертывания:**
|
**Для системы:**
|
||||||
- Один `docker-compose up`
|
- Минимальные изменения в Git репозитории
|
||||||
- Автоматическое пересоздание при изменениях
|
- Простота отката к предыдущей версии
|
||||||
- Простое масштабирование
|
- Сохранение истории изменений
|
||||||
|
- Совместимость с существующими инструментами
|
||||||
|
|
||||||
**Управление данными:**
|
## 5. Интеграция с Obsidian
|
||||||
- Общие volumes для статических файлов
|
|
||||||
- Сохранение данных между перезапусками
|
|
||||||
- Простое резервное копирование
|
|
||||||
|
|
||||||
## 4. Интеграция с Obsidian
|
### 5.1 Рабочий флоу
|
||||||
|
|
||||||
### 4.1 Рабочий флоу
|
**Разработка (без изменений):**
|
||||||
|
|
||||||
**Разработка:**
|
|
||||||
1. Редактирование в Obsidian
|
1. Редактирование в Obsidian
|
||||||
2. Коммит в Git репозиторий
|
2. Коммит в Git репозиторий
|
||||||
3. Webhook автоматически запускает сборку
|
3. Webhook автоматически запускает сборку
|
||||||
@@ -176,14 +205,14 @@ volumes:
|
|||||||
5. Nginx раздает обновленный контент
|
5. Nginx раздает обновленный контент
|
||||||
|
|
||||||
**Синхронизация:**
|
**Синхронизация:**
|
||||||
- Obsidian Vault → Git Repository
|
- Obsidian Vault → Git Repository (без изменений)
|
||||||
- Git Repository → Hugo Content
|
- Git Repository → Hugo Content (прямое использование)
|
||||||
- Hugo Content → Static Site
|
- Hugo Content → Static Site (с сохранением структуры)
|
||||||
- Static Site → Nginx
|
- Static Site → Nginx
|
||||||
|
|
||||||
### 4.2 Автоматизация
|
### 5.2 Автоматизация
|
||||||
|
|
||||||
**Git Hooks:**
|
**Git Hooks (без изменений):**
|
||||||
- Автоматический коммит при изменениях в Obsidian
|
- Автоматический коммит при изменениях в Obsidian
|
||||||
- Push в удаленный репозиторий
|
- Push в удаленный репозиторий
|
||||||
- Webhook уведомление
|
- Webhook уведомление
|
||||||
@@ -191,12 +220,12 @@ volumes:
|
|||||||
**Webhook обработка:**
|
**Webhook обработка:**
|
||||||
- Валидация изменений
|
- Валидация изменений
|
||||||
- Клонирование/обновление репозитория
|
- Клонирование/обновление репозитория
|
||||||
- Сборка Hugo
|
- Сборка Hugo с сохранением структуры
|
||||||
- Перезагрузка Nginx
|
- Перезагрузка Nginx
|
||||||
|
|
||||||
## 5. Конфигурация Hugo
|
## 6. Конфигурация Hugo
|
||||||
|
|
||||||
### 5.1 Базовая конфигурация
|
### 6.1 Базовая конфигурация
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
# config.toml
|
# config.toml
|
||||||
@@ -209,7 +238,9 @@ theme = "custom-theme"
|
|||||||
description = "Персональная база знаний и заметки"
|
description = "Персональная база знаний и заметки"
|
||||||
author = "AEP"
|
author = "AEP"
|
||||||
|
|
||||||
# Настройки для Obsidian
|
# Настройки для сохранения структуры
|
||||||
|
preserveStructure = true
|
||||||
|
useOriginalNames = true
|
||||||
enableSearch = true
|
enableSearch = true
|
||||||
showBreadcrumb = true
|
showBreadcrumb = true
|
||||||
showReadingTime = true
|
showReadingTime = true
|
||||||
@@ -238,7 +269,7 @@ theme = "custom-theme"
|
|||||||
lineNos = true
|
lineNos = true
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5.2 Оптимизации для VPS
|
### 6.2 Оптимизации для VPS
|
||||||
|
|
||||||
**Производительность:**
|
**Производительность:**
|
||||||
- Минификация всех ресурсов
|
- Минификация всех ресурсов
|
||||||
@@ -251,22 +282,23 @@ theme = "custom-theme"
|
|||||||
- Оптимизация времени сборки
|
- Оптимизация времени сборки
|
||||||
- Эффективное использование диска
|
- Эффективное использование диска
|
||||||
|
|
||||||
## 6. Преимущества миграции
|
## 7. Преимущества миграции
|
||||||
|
|
||||||
### 6.1 Производительность
|
### 7.1 Производительность
|
||||||
- **Время сборки**: С 30-60 секунд до 5-10 секунд
|
- **Время сборки**: С 30-60 секунд до 5-10 секунд
|
||||||
- **Потребление памяти**: С 512MB до 128MB
|
- **Потребление памяти**: С 512MB до 128MB
|
||||||
- **CPU нагрузка**: Снижение на 70-80%
|
- **CPU нагрузка**: Снижение на 70-80%
|
||||||
- **Время загрузки**: Улучшение на 40-60%
|
- **Время загрузки**: Улучшение на 40-60%
|
||||||
|
|
||||||
### 6.2 Операционные
|
### 7.2 Операционные
|
||||||
- **Простота развертывания**: Docker Compose
|
- **Простота развертывания**: Docker Compose
|
||||||
- **Изоляция**: Контейнеры
|
- **Изоляция**: Контейнеры
|
||||||
- **Масштабируемость**: Легкое горизонтальное масштабирование
|
- **Масштабируемость**: Легкое горизонтальное масштабирование
|
||||||
- **Мониторинг**: Встроенные метрики
|
- **Мониторинг**: Встроенные метрики
|
||||||
|
|
||||||
### 6.3 Интеграция
|
### 7.3 Интеграция
|
||||||
- **Сохранение рабочего флоу**: Obsidian → Git → Hugo
|
- **Сохранение рабочего флоу**: Obsidian → Git → Hugo
|
||||||
|
- **Сохранение структуры**: Без изменений в организации файлов
|
||||||
- **Автоматизация**: Webhook → Сборка → Деплой
|
- **Автоматизация**: Webhook → Сборка → Деплой
|
||||||
- **Консистентность**: Один источник истины
|
- **Консистентность**: Один источник истины
|
||||||
- **Простота отладки**: Единый лог и контекст
|
- **Простота отладки**: Единый лог и контекст
|
||||||
Reference in New Issue
Block a user