Код NeonXP CMS http://neonxp.ru/
Find a file
2025-12-29 11:49:51 +03:00
cmd/server Добавил readme и мелкие исправления 2025-12-27 19:07:07 +03:00
internal Поправил превью и ошибку с тегами 2025-12-29 11:49:51 +03:00
.dockerignore Добавил поддержку тегов 2025-12-21 18:00:24 +03:00
.gitignore Многое упростил 2025-12-09 23:47:19 +03:00
.golangci.yml Первый коммит минимально рабочей версии 2025-09-20 22:27:56 +03:00
docker-compose.yml Добавил readme и мелкие исправления 2025-12-27 19:07:07 +03:00
Dockerfile Глобальная переработка 2025-12-20 21:34:46 +03:00
go.mod Добавил readme и мелкие исправления 2025-12-27 19:07:07 +03:00
go.sum Добавил систему комментирования через E-mail. Поддерживается только почтовый сервер MOX 2025-12-24 20:59:30 +03:00
LICENSE Перевел CLI на Cobra и добавил goreleaser 2025-09-23 00:51:56 +03:00
README.md Добавил readme и мелкие исправления 2025-12-27 19:07:07 +03:00

NeonXP CMS

Простой и быстрый CMS-движок, написанный на языке Go, для создания статических сайтов с поддержкой комментариев, тегов и RSS-ленты.

Обзор

Этот проект представляет собой легковесный CMS-движок, разработанный с использованием современных технологий Go. Он позволяет создавать статические сайты с возможностью динамического контента, включая комментарии и теги. Движок использует файловую систему для хранения контента и поддерживает Markdown для форматирования текста.

Архитектура

Проект организован по модульному принципу с четким разделением ответственности:

  • cmd/server/main.go - точка входа приложения
  • internal/server/server.go - основной сервер на базе Echo
  • internal/cms/ - обработчики контента и страниц
  • internal/comment/ - управление комментариями
  • internal/config/ - загрузка и парсинг конфигурации
  • internal/markdown/ - обработка Markdown с поддержкой расширений
  • internal/model/ - структуры данных
  • internal/storage/ - работа с файловой системой
  • internal/tags/ - генерация и управление тегами
  • internal/view/ - шаблоны и статические ресурсы

Зависимости

Основные зависимости проекта:

Полный список зависимостей можно найти в файле go.mod.

Конфигурация

Конфигурация сайта хранится в файле .cms/config.hjson в рабочей директории. Основные параметры:

  • title - название сайта
  • copyright - текст копирайта
  • url - базовый URL
  • description - описание сайта
  • 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"
}

Установка и запуск

Локальная сборка

  1. Клонируйте репозиторий:
git clone https://gitrepo.ru/NeonXP/cms.git
cd cms
  1. Соберите проект:
go build -o cms ./cmd/server
  1. Запустите сервер:
./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.