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 файлы - **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 → Сборка → Деплой
- **Консистентность**: Один источник истины - **Консистентность**: Один источник истины
- **Простота отладки**: Единый лог и контекст - **Простота отладки**: Единый лог и контекст