| cmd/server | ||
| internal | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
NeonXP CMS
Простой и быстрый CMS-движок, написанный на языке Go, для создания статических сайтов с поддержкой комментариев, тегов и RSS-ленты.
Обзор
Этот проект представляет собой легковесный CMS-движок, разработанный с использованием современных технологий Go. Он позволяет создавать статические сайты с возможностью динамического контента, включая комментарии и теги. Движок использует файловую систему для хранения контента и поддерживает Markdown для форматирования текста.
Архитектура
Проект организован по модульному принципу с четким разделением ответственности:
cmd/server/main.go- точка входа приложенияinternal/server/server.go- основной сервер на базе Echointernal/cms/- обработчики контента и страницinternal/comment/- управление комментариямиinternal/config/- загрузка и парсинг конфигурацииinternal/markdown/- обработка Markdown с поддержкой расширенийinternal/model/- структуры данныхinternal/storage/- работа с файловой системойinternal/tags/- генерация и управление тегамиinternal/view/- шаблоны и статические ресурсы
Зависимости
Основные зависимости проекта:
github.com/labstack/echo/v4- веб-фреймворкgithub.com/a-h/templ- шаблонизацияgithub.com/yuin/goldmark- парсер Markdowngithub.com/hjson/hjson-go/v4- формат конфигурации HJSON
Полный список зависимостей можно найти в файле go.mod.
Конфигурация
Конфигурация сайта хранится в файле .cms/config.hjson в рабочей директории.
Основные параметры:
title- название сайтаcopyright- текст копирайтаurl- базовый URLdescription- описание сайтаauthor- информация об автореmenu- пункты менюfeed_path- путь к RSS-ленте
Пример конфигурации:
{
title: "Мой сайт"
copyright: "© 2025"
url: "https://example.com"
description: "Описание моего сайта"
author: {
name: "Имя Автора"
email: "author@example.com"
}
menu: [
{
title: "Главная"
href: "/"
}
{
title: "О сайте"
href: "/about/"
}
]
feed_path: "/feed.xml"
}
Установка и запуск
Локальная сборка
- Клонируйте репозиторий:
git clone https://gitrepo.ru/NeonXP/cms.git
cd cms
- Соберите проект:
go build -o cms ./cmd/server
- Запустите сервер:
./cms -workdir=/путь/к/сайту -addr=:8000 -auth_token=ваш_токен
Запуск через Docker
Запустите контейнер с помощью образа. Проект поддерживает запуск через Docker Compose, который автоматически передает флаги командной строки:
# Создайте docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
nxpcms:
image: gitrepo.ru/neonxp/cms:latest
container_name: nxpcms
volumes:
- ./srv:/srv
command: ["-workdir", "/srv", "-addr", ":8000", "-auth_token", "ваш_токен"]
restart: unless-stopped
EOF
# Запустите контейнер
docker-compose up -d
Или запустите напрямую через docker run:
docker run -d \
--name nxpcms \
-v /путь/к/сайту:/srv \
gitrepo.ru/neonxp/cms:latest \
-workdir /srv \
-addr :8000 \
-auth_token ваш_токен
Модуль и репозиторий
- Модуль:
go.neonxp.ru/cms - Репозиторий:
https://gitrepo.ru/NeonXP/cms.git
Лицензия
Этот проект распространяется под лицензией GNU General Public License версии 3
(GPLv3). Полный текст лицензии доступен в файле LICENSE.