GitHub CMS позволяет хранить контент сайта в Markdown-файлах прямо в репозитории GitHub. При пуше в main ветку GitHub Actions собирает статический сайт через Vue 3 + Vite SSG и деплоит его на VPS. Никаких баз данных, никаких ежемесячных платежей за SaaS-платформы.
Ключевые факты
- Контент хранится в
content/blog/YYYY-MM-DD-slug.md— обычные текстовые файлы с YAML frontmatter. - Сборка происходит через
vite-ssg— на выходе статические HTML/CSS/JS файлы. - SEO из коробки: sitemap.xml, robots.txt, Open Graph, Twitter Cards, JSON-LD.
- Изображения генерируются через PixInLink по публичному URL.
- Деплой на VPS через rsync по SSH — полный контроль над сервером.
FAQ
Q: Нужен ли мне сервер с Node.js? A: Нет. После сборки сайт состоит только из статических файлов — HTML, CSS, JS. Достаточно nginx на Ubuntu VPS.
Q: Можно ли использовать GitHub Pages вместо VPS? A: Да, GitHub Pages поддерживается как альтернативный target деплоя. Но VPS рекомендуется как основной вариант для полного контроля над nginx, SSL и кешированием.
Q: Что если мне нужно редактировать контент без гита?
A: Вы можете редактировать Markdown-файлы прямо в веб-интерфейсе GitHub. После коммита в main сайт пересобирается автоматически.
Q: Как добавить изображения в статьи?
A: Используйте PixInLink URL в формате https://pixinlink.com/{width}x{height}/{bg}/{fg}?prompt=.... Изображения генерируются при первом запросе и кешируются CDN.
Начать работу
- Клонируйте репозиторий githubcms
- Создайте файл
.envсVITE_SITE_URL=https://yourdomain.com - Настройте GitHub Secrets для деплоя
- Создайте первую статью в
content/blog/ - Сделайте push — сайт соберётся автоматически