diff --git a/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md b/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md index b58c6d9..7819fda 100644 --- a/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md +++ b/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md @@ -1,136 +1,272 @@ # Миграция контента на Hugo -## 1. Миграция контента +## 1. Понимание текущей архитектуры -### 1.1 Структура контента - -**Текущая структура (Quartz):** +### 1.1 Текущий флоу (Quartz) ``` -content/ -├── notes/ -│ ├── Идеи/ -│ ├── Мой сервер/ -│ └── index.md -├── daily/ -└── templates/ +Obsidian Vault → Quartz → Static Site → Nginx ``` -**Новая структура (Hugo):** +**Компоненты:** +- **Obsidian Vault**: Исходные Markdown документы +- **Quartz**: Генератор статического сайта на Node.js +- **Static Site**: Собранные HTML/CSS/JS файлы +- **Nginx**: Веб-сервер для раздачи статики + +### 1.2 Новый флоу (Hugo) ``` -content/ -├── notes/ -│ ├── идеи/ -│ │ ├── obsidian-telegram-bot/ -│ │ └── optimizatsiya-resursov-vps/ -│ ├── мой-сервер/ -│ └── _index.md -├── daily/ -│ └── _index.md -└── templates/ - └── _index.md +Obsidian Vault → Hugo → Static Site → Nginx (в Docker) ``` -### 1.2 Основные изменения при миграции +**Компоненты:** +- **Obsidian Vault**: Те же исходные Markdown документы +- **Hugo**: Генератор статического сайта на Go +- **Static Site**: Оптимизированные HTML/CSS/JS файлы +- **Nginx**: Веб-сервер в Docker контейнере -**Frontmatter:** -- Добавление Hugo-специфичных полей -- Преобразование дат в стандартный формат -- Добавление метаданных для SEO +## 2. Миграция контента -**Внутренние ссылки:** -- Замена `[[wiki links]]` на Hugo ссылки -- Обновление путей к файлам -- Обработка относительных ссылок +### 2.1 Структура Obsidian Vault -**Изображения:** -- Перемещение в `static/images/` -- Обновление путей в контенте -- Оптимизация размера файлов - -## 2. Базовая настройка Hugo - -### 2.1 Конфигурация - -**Основные параметры:** -- `baseURL` - адрес сайта -- `languageCode` - язык контента -- `title` - название сайта -- `theme` - используемая тема - -**Настройки контента:** -- Структура меню -- Параметры поиска -- Настройки навигации -- SEO параметры - -### 2.2 Структура проекта +**Текущая структура:** +``` +Second Mind/ +├── index.md +├── Идеи/ +│ ├── Obsidian телеграм бот/ +│ │ ├── MVP Telegram бота для Obsidian.md +│ │ └── Telegram бот для Obsidian.md +│ └── Оптимизация ресурсов VPS/ +│ ├── Единое приложение Hugo + Webhook.md +│ └── Миграция контента на Hugo.md +├── Мой сервер/ +│ ├── Authelia Authentication/ +│ ├── Git Service/ +│ ├── Second Mind Setup/ +│ └── Traefik Reverse Proxy/ +└── Документация сервера aepif.ru.md +``` +**Новая структура для Hugo:** ``` hugo-site/ -├── config.toml # Основная конфигурация -├── content/ # Контент сайта -├── layouts/ # Шаблоны темы -├── static/ # Статические файлы -├── themes/ # Темы -└── public/ # Собранный сайт +├── 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/ # Кастомная тема ``` -## 3. Оптимизации +### 2.2 Основные изменения при миграции -### 3.1 Производительность +**Frontmatter преобразования:** +- Quartz frontmatter → Hugo frontmatter +- Добавление обязательных полей (title, date, draft) +- Сохранение пользовательских полей +- Преобразование дат в стандартный формат -**Сборка:** -- Минификация CSS/JS -- Оптимизация изображений -- Сжатие статических файлов -- Кэширование ресурсов +**Внутренние ссылки:** +- `[[wiki links]]` → `{{< ref "path" >}}` +- Относительные пути → Абсолютные пути Hugo +- Обработка Obsidian-специфичных ссылок -**SEO:** -- Мета-теги -- Open Graph разметка -- Sitemap генерация -- Canonical URLs +**Изображения и вложения:** +- Перемещение в `static/images/` +- Обновление путей в контенте +- Сохранение структуры вложений -### 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] + + subgraph "Docker Host" + B + C + D + end +``` -### 4.1 Локальная разработка +### 3.2 Структура Docker -**Команды:** -- `hugo server` - запуск сервера разработки -- `hugo --minify` - сборка для production -- `hugo --gc` - очистка неиспользуемых файлов +**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 -### 4.2 Production + 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 сжатие - Кэширование статических файлов -## 5. Преимущества миграции +**Ресурсы:** +- Ограничение использования памяти +- Оптимизация времени сборки +- Эффективное использование диска -### 5.1 Производительность +## 6. Преимущества миграции + +### 6.1 Производительность - **Время сборки**: С 30-60 секунд до 5-10 секунд -- **Размер файлов**: Снижение на 40-60% -- **Время загрузки**: Улучшение на 50-70% +- **Потребление памяти**: С 512MB до 128MB +- **CPU нагрузка**: Снижение на 70-80% +- **Время загрузки**: Улучшение на 40-60% -### 5.2 Операционные -- **Простота развертывания**: Один бинарник -- **Низкое потребление ресурсов**: Минимальные требования -- **Надежность**: Меньше зависимостей -- **Безопасность**: Меньше уязвимостей +### 6.2 Операционные +- **Простота развертывания**: Docker Compose +- **Изоляция**: Контейнеры +- **Масштабируемость**: Легкое горизонтальное масштабирование +- **Мониторинг**: Встроенные метрики -### 5.3 Функциональность -- **SEO оптимизация**: Встроенные возможности -- **Адаптивность**: Современные темы -- **Поиск**: Быстрый и точный -- **Кастомизация**: Полный контроль \ No newline at end of file +### 6.3 Интеграция +- **Сохранение рабочего флоу**: Obsidian → Git → Hugo +- **Автоматизация**: Webhook → Сборка → Деплой +- **Консистентность**: Один источник истины +- **Простота отладки**: Единый лог и контекст \ No newline at end of file