vault backup: 2025-08-04 15:41:49

This commit is contained in:
Andrey Epifancev
2025-08-04 15:41:49 +04:00
parent dff9e49911
commit dd7bb0ebfb

View File

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