vault backup: 2025-08-04 15:39:36

This commit is contained in:
Andrey Epifancev
2025-08-04 15:39:36 +04:00
parent 738bf0bf4c
commit dff9e49911

View File

@@ -1,136 +1,272 @@
# Миграция контента на Hugo # Миграция контента на Hugo
## 1. Миграция контента ## 1. Понимание текущей архитектуры
### 1.1 Структура контента ### 1.1 Текущий флоу (Quartz)
**Текущая структура (Quartz):**
``` ```
content/ Obsidian Vault → Quartz → Static Site → Nginx
├── notes/
│ ├── Идеи/
│ ├── Мой сервер/
│ └── index.md
├── daily/
└── templates/
``` ```
**Новая структура (Hugo):** **Компоненты:**
- **Obsidian Vault**: Исходные Markdown документы
- **Quartz**: Генератор статического сайта на Node.js
- **Static Site**: Собранные HTML/CSS/JS файлы
- **Nginx**: Веб-сервер для раздачи статики
### 1.2 Новый флоу (Hugo)
``` ```
content/ Obsidian Vault → Hugo → Static Site → Nginx (в Docker)
├── notes/
│ ├── идеи/
│ │ ├── obsidian-telegram-bot/
│ │ └── optimizatsiya-resursov-vps/
│ ├── мой-сервер/
│ └── _index.md
├── daily/
│ └── _index.md
└── templates/
└── _index.md
``` ```
### 1.2 Основные изменения при миграции **Компоненты:**
- **Obsidian Vault**: Те же исходные Markdown документы
- **Hugo**: Генератор статического сайта на Go
- **Static Site**: Оптимизированные HTML/CSS/JS файлы
- **Nginx**: Веб-сервер в Docker контейнере
**Frontmatter:** ## 2. Миграция контента
- Добавление Hugo-специфичных полей
- Преобразование дат в стандартный формат
- Добавление метаданных для SEO
**Внутренние ссылки:** ### 2.1 Структура Obsidian Vault
- Замена `[[wiki links]]` на Hugo ссылки
- Обновление путей к файлам
- Обработка относительных ссылок
**Изображения:** **Текущая структура:**
- Перемещение в `static/images/` ```
- Обновление путей в контенте Second Mind/
- Оптимизация размера файлов ├── index.md
├── Идеи/
## 2. Базовая настройка Hugo │ ├── Obsidian телеграм бот/
│ │ ├── MVP Telegram бота для Obsidian.md
### 2.1 Конфигурация │ │ └── Telegram бот для Obsidian.md
│ └── Оптимизация ресурсов VPS/
**Основные параметры:** │ ├── Единое приложение Hugo + Webhook.md
- `baseURL` - адрес сайта │ └── Миграция контента на Hugo.md
- `languageCode` - язык контента ├── Мой сервер/
- `title` - название сайта │ ├── Authelia Authentication/
- `theme` - используемая тема │ ├── Git Service/
│ ├── Second Mind Setup/
**Настройки контента:** │ └── Traefik Reverse Proxy/
- Структура меню └── Документация сервера aepif.ru.md
- Параметры поиска ```
- Настройки навигации
- SEO параметры
### 2.2 Структура проекта
**Новая структура для Hugo:**
``` ```
hugo-site/ hugo-site/
├── config.toml # Основная конфигурация ├── content/
├── content/ # Контент сайта │ ├── _index.md # Главная страница
├── layouts/ # Шаблоны темы │ ├── идеи/
├── static/ # Статические файлы │ │ ├── _index.md # Страница раздела
├── themes/ # Темы │ │ ├── obsidian-telegram-bot/
└── public/ # Собранный сайт │ ├── _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/ # Кастомная тема
``` ```
## 3. Оптимизации ### 2.2 Основные изменения при миграции
### 3.1 Производительность **Frontmatter преобразования:**
- Quartz frontmatter → Hugo frontmatter
- Добавление обязательных полей (title, date, draft)
- Сохранение пользовательских полей
- Преобразование дат в стандартный формат
**Сборка:** **Внутренние ссылки:**
- Минификация CSS/JS - `[[wiki links]]``{{< ref "path" >}}`
- Оптимизация изображений - Относительные пути → Абсолютные пути Hugo
- Сжатие статических файлов - Обработка Obsidian-специфичных ссылок
- Кэширование ресурсов
**SEO:** **Изображения и вложения:**
- Мета-теги - Перемещение в `static/images/`
- Open Graph разметка - Обновление путей в контенте
- Sitemap генерация - Сохранение структуры вложений
- Canonical URLs
### 3.2 Поиск ## 3. Docker развертывание
**Функциональность:** ### 3.1 Архитектура контейнеров
- Поиск по контенту
- Фильтрация результатов
- Подсветка найденного текста
- Быстрый поиск
## 4. Развертывание ```mermaid
graph TB
A[Git Repository] --> B[Hugo + Webhook Container]
B --> C[Static Files Volume]
C --> D[Nginx Container]
D --> E[Internet]
### 4.1 Локальная разработка subgraph "Docker Host"
B
C
D
end
```
**Команды:** ### 3.2 Структура Docker
- `hugo server` - запуск сервера разработки
- `hugo --minify` - сборка для production
- `hugo --gc` - очистка неиспользуемых файлов
### 4.2 Production **Docker Compose:**
```yaml
version: '3.8'
services:
hugo-webhook:
build: .
volumes:
- ./content:/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
ports:
- "8080:8080"
restart: unless-stopped
**Оптимизации:** nginx:
image: nginx:alpine
volumes:
- static-files:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"
- "443:443"
depends_on:
- hugo-webhook
restart: unless-stopped
volumes:
static-files:
```
### 3.3 Преимущества Docker развертывания
**Изоляция:**
- Отдельные контейнеры для Hugo и Nginx
- Изолированные файловые системы
- Контроль ресурсов
**Простота развертывания:**
- Один `docker-compose up`
- Автоматическое пересоздание при изменениях
- Простое масштабирование
**Управление данными:**
- Общие volumes для статических файлов
- Сохранение данных между перезапусками
- Простое резервное копирование
## 4. Интеграция с Obsidian
### 4.1 Рабочий флоу
**Разработка:**
1. Редактирование в Obsidian
2. Коммит в Git репозиторий
3. Webhook автоматически запускает сборку
4. Hugo генерирует новый сайт
5. Nginx раздает обновленный контент
**Синхронизация:**
- Obsidian Vault → Git Repository
- Git Repository → Hugo Content
- Hugo Content → Static Site
- Static Site → Nginx
### 4.2 Автоматизация
**Git Hooks:**
- Автоматический коммит при изменениях в Obsidian
- Push в удаленный репозиторий
- Webhook уведомление
**Webhook обработка:**
- Валидация изменений
- Клонирование/обновление репозитория
- Сборка Hugo
- Перезагрузка Nginx
## 5. Конфигурация Hugo
### 5.1 Базовая конфигурация
```toml
# config.toml
baseURL = "https://aepif.ru"
languageCode = "ru-ru"
title = "Second Mind"
theme = "custom-theme"
[params]
description = "Персональная база знаний и заметки"
author = "AEP"
# Настройки для Obsidian
enableSearch = true
showBreadcrumb = true
showReadingTime = true
showWordCount = true
[menu]
[[menu.main]]
identifier = "ideas"
name = "Идеи"
url = "/идеи/"
weight = 1
[[menu.main]]
identifier = "server"
name = "Мой сервер"
url = "/мой-сервер/"
weight = 2
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
style = "dracula"
lineNos = true
```
### 5.2 Оптимизации для VPS
**Производительность:**
- Минификация всех ресурсов - Минификация всех ресурсов
- Оптимизация изображений - Оптимизация изображений
- Gzip сжатие - Gzip сжатие
- Кэширование статических файлов - Кэширование статических файлов
## 5. Преимущества миграции **Ресурсы:**
- Ограничение использования памяти
- Оптимизация времени сборки
- Эффективное использование диска
### 5.1 Производительность ## 6. Преимущества миграции
### 6.1 Производительность
- **Время сборки**: С 30-60 секунд до 5-10 секунд - **Время сборки**: С 30-60 секунд до 5-10 секунд
- **Размер файлов**: Снижение на 40-60% - **Потребление памяти**: С 512MB до 128MB
- **Время загрузки**: Улучшение на 50-70% - **CPU нагрузка**: Снижение на 70-80%
- **Время загрузки**: Улучшение на 40-60%
### 5.2 Операционные ### 6.2 Операционные
- **Простота развертывания**: Один бинарник - **Простота развертывания**: Docker Compose
- **Низкое потребление ресурсов**: Минимальные требования - **Изоляция**: Контейнеры
- **Надежность**: Меньше зависимостей - **Масштабируемость**: Легкое горизонтальное масштабирование
- **Безопасность**: Меньше уязвимостей - **Мониторинг**: Встроенные метрики
### 5.3 Функциональность ### 6.3 Интеграция
- **SEO оптимизация**: Встроенные возможности - **Сохранение рабочего флоу**: Obsidian → Git → Hugo
- **Адаптивность**: Современные темы - **Автоматизация**: Webhook → Сборка → Деплой
- **Поиск**: Быстрый и точный - **Консистентность**: Один источник истины
- **Кастомизация**: Полный контроль - **Простота отладки**: Единый лог и контекст