1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lmay-hexo-blog-admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Администрирование блога Hexo (версия Python 3.6)

Описание проекта

####################################################
#              >>> Изначальные учетные данные <<<  #
#           Пользователь: lmay@lmaye.com          #
#           Пароль: root@123                      #
####################################################

Передняя часть сайта использует шаблоны тем Hexo из-за моего недостатка в навыках создания эффектов UI. Также причина заключается в том, что версия администратора Hexo не очень хороша, поэтому была создана эта система управления с использованием фреймворка Python Flask для работы с темами Hexo и чтения файлов Markdown;

※ Этот проект открыт для использования только в образовательных целях и личного использования! Если у вас есть лучшие решения или идеи, присоединяйтесь к обсуждению! Если вы считаете, что этот проект был полезен для вас, пожалуйста, нажмите кнопку Star в правом верхнем углу, чтобы поддержать нас!!! Спасибо ~ ~#### Структура проекта   Структура проекта на Python не такова, но поскольку мне больше нравится структура проекта Java, структура этого проекта основана на структуре Java. Однако Python не рекомендует слишком глубокую структуру уровней, поэтому конечная структура была упрощена до следующей формы:

hexo-blog-admin                         # Hexo Blog Admin
├── core                                 # Ядро
│   ├── constant                         # Константы
│   ├── controller                       # Контроллеры
│   ├── exception                        # Пользовательские исключения
│   ├── forms                            # Элементы формы
│   ├── handler                          # Бизнес-логика
│   ├── logger                           # Логирование
│   ├── models                           # Модели
│   ├── params                           # Параметры
│   ├── rbac                             # Управление доступом RBAC
│   ├── utils                            # Вспомогательные утилиты
│   └── __init__.py                      # Файл инициализации
│   └── app.py                           # Основной файл приложения
└── resources                           # Ресурсы проекта
    ├── db_repository                    # Ресурсы для генерации баз данных [уже сгенерировано, можно игнорировать]
    ├── docs                             # Документация
    ├── source                           # Директория Markdown файлов [только для тестирования]
    ├── static                           # Директория статических файлов (js/css/images...)
    ├── templates                        # Директория HTML файлов
    └── app.db                           # SQLite база данных
    └── application.yml                 # Конфигурационный файл проекта
    └── databases
``````yaml
# Конфигурационный файл баз данных
logging.conf            # Конфигурационный файл логирования
- bin                   # Выполнение скриптов [можно игнорировать]
- docker               # Скрипты для развертывания Docker
    -- docker-compose.yml   # docker-compose
    -- init.sh              # Bash скрипт
    -- nginx.conf          # Конфигурация Nginx
- logs                  # Директория логов
hexo-blog.sh            # Скрипт для создания статических страниц
hexo-blog-admin.ini     # Конфигурационный файл uwsgi (веб-сервер)
requirements.txt        # Файл для установки зависимостей
run.py                 # Скрипт запуска приложения
setup.py               # Скрипт сборки приложения [можно игнорировать]
README.md              # Документация проекта

### Системная архитектура
![Hexo Blog Admin](https://www.lmaye.com/group1/M00/00/00/CmiBTl1K9TKAYEd8AACaQc7nGPU158.png "Hexo Blog Admin")
```&emsp;&emsp;Система основана на Python Flask фреймворке, управление доступом реализовано с использованием RBAC, международная локализация пока не реализована из-за отсутствия времени, но базовые требования блога полностью удовлетворены.  
Хранение файлов осуществляется через самостоятельно установленную систему FastDFS/MinIO вместо использования сторонних сервисов. Минимально рекомендую использовать MinIO, так как он хорошо поддерживается в Python.  
Для редактирования используется плагин Markdown, который после завершения редактирования генерирует MD файлы. В MongoDB хранятся только базовая информация и пути к статьям, содержание же не сохраняется. Также предусмотрена возможность восстановления данных MongoDB, поэтому даже при отказе службы MongoDB данные не будут потеряны;  
Информация управления безопасности хранится в SQLite DB, выбор SQLite обоснован небольшим объемом данных, таких как пользователи, меню, ресурсы и права доступа;
Другие детали можно найти в исходном коде.### Внимание
#### Общие инструкции по установке
   1. Установка интегрированных плагинов проекта
```shell
pip3 install flask
pip3 install pyyaml
pip3 install flask_wtf
pip3 install flask_sqlalchemy
pip3 install flask_mail
pip3 install flask-login==0.2.11
pip3 install flask_babel
pip3 install email_validator
# Перевод lazy строк
pip3 install speaklater
# Шифрование
pip3 install pycryptodome
# Redis
pip3 install flask-redis
# MongoDB
pip3 install Flask-PyMongo
# RBAC система управления правами доступа
pip3 install flask-rbac
pip3 install flask-marshmallow
# Запросы API
pip3 install requests
# Хранение файлов MinIO
pip3 install Flask-Minio
pip3 install uwsgi==2.0.18
```   2. Решение проблемы с установкой шифровального плагина pycryptodome (\Lib\site-packages\Crypto, имя пакета по умолчанию lowercase, следует заменить на uppercase **Crypto**)

   3. Быстрая установка всех зависимостей
```shell
pip3 install -r requirements.txt
  1. Команды запуска проекта
# Установка зависимых служб с помощью Docker
[root@localhost hexo-blog]# ls
# Соответствующие файлы
-rw-r--r--. 1 root root 1568 Янв 20 18:16 docker-compose.yml
-rwxr-xr-x. 1 root root 1555 Янв 19 16:07 init.sh
-rw-r--r--. 1 root root 3941 Янв 20 18:39 nginx.conf
# Команды установки
[root@localhost hexo-blog]# ./init.sh 

# Запуск Python проекта
[root@localhost hexo-blog]# uwsgi -d --ini hexo-blog-admin.ini
# Проверка процессов
[root@localhost hexo-blog]# ps aux | grep uwsgi
# Остановка проекта
[root@localhost hexo-blog]# killall -9 uwsgi
```# Автоматический запуск проекта (необходимо заменить фактический путь: CONFIGFILE=/home/services/hexo-blog-admin/hexo-blog-admin.ini)
[root@localhost hexo-blog]# cp uwsgi.sh /etc/init.d/
[root@localhost hexo-blog]# cd /etc/init.d/
# Выполнение команд
[root@localhost init.d]# chmod 777 uwsgi.sh
# Добавление автоматического запуска
[root@localhost init.d]# chkconfig --add uwsgi.sh

Участие в развитии

  1. 15 апреля 2018 года: Инициализация проекта
  2. 5 сентября 2018 года: Завершение проекта
  3. 11 ноября 2018 года: Добавление временной шкалы на главной странице
  4. 7 августа 2019 года: Обновление README.md [Документация]
  5. 19 января 2021 года: Добавление службы хранения MinIO, развертывание проекта с помощью Docker

Связанные статьи

«Hexo связанные материалы»

Быстрое руководство Docker

Быстрое руководство Redis

Быстрое руководство FastDFS

Контакты

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Hexo Blog Admin — система управления для блогов. Данный проект предназначен только для изучения и личного использования! Если у вас есть лучшие решения и идеи, приглашаем к обсуждению! Если вы считаете, что этот проект вам полезен, пожалуйста, нажмите на значок Star в правом верхнем углу и поддержите его! Спасибо! Развернуть Свернуть
AGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lmay-hexo-blog-admin.git
git@api.gitlife.ru:oschina-mirror/lmay-hexo-blog-admin.git
oschina-mirror
lmay-hexo-blog-admin
lmay-hexo-blog-admin
master