Skip to content

Hopetree/izone

Repository files navigation

izone

一个以 Django 框架搭建的个人博客系统。

线上地址:https://tendcode.com/

技术栈

层级 技术
后端框架 Django 2.2 + Python 3.9
数据库 MySQL(utf8mb4)
缓存 / 消息队列 Redis
异步任务 Celery 4.4(Worker + Beat)
搜索引擎 Whoosh + Jieba 中文分词 + django-haystack
前端 Bootstrap 4 + jQuery
容器化 Docker + Gunicorn + Supervisord

文档索引

文档 说明
产品需求规格说明书 产品需求,包含功能列表和非功能需求
架构设计文档 技术选型、模块划分、部署架构
数据库设计文档 实体定义、关系说明、设计决策
API 接口文档 各应用 JSON API 端点

功能

  • Django 后台管理系统,方便管理文章、用户及其他动态内容
  • 文章分类、标签、专题(Subject → Topic → Article)层级结构
  • 全文搜索(Whoosh + Jieba 中文分词,实时索引更新)
  • 文章评论系统(二级回复、微博表情、Markdown)、评论通知
  • 用户认证(Django 用户系统 + OAuth 微博/GitHub 第三方登录)
  • 浏览量统计(爬虫过滤、session 去重、每日快照)
  • 友链管理(在线申请、定时自动校链)
  • RSS 订阅、Sitemap 网站地图、百度 SEO 推送
  • RESTful API(条件启用,DRF DefaultRouter)
  • 在线工具(条件启用)、服务监控、导航网站、流程图
  • 响应式设计(PC / iPad / 手机),暗色主题支持
  • Redis 缓存系统,Celery 定时任务调度

快速开始

Docker 部署

# 构建镜像
docker build -t hopetree/izone:lts .

# slim 镜像(国内构建)
docker build --build-arg pip_index_url=http://mirrors.aliyun.com/pypi/simple/ \
             --build-arg pip_trusted_host=mirrors.aliyun.com \
             --build-arg debian_host=mirrors.ustc.edu.cn \
             -f Dockerfile-slim -t hopetree/izone:lts .

# 运行(需要预先启动 MySQL 和 Redis)
docker run -d \
  -e IZONE_MYSQL_HOST=mysql_host \
  -e IZONE_MYSQL_PASSWORD=your_password \
  -e IZONE_REDIS_HOST=redis_host \
  -p 8000:8000 \
  hopetree/izone:lts

本地开发

# 安装依赖
python -m venv env
source env/bin/activate
pip install -r requirements.txt

# 数据库迁移
python manage.py migrate

# 创建管理员
python manage.py createsuperuser

# 构建搜索索引
python manage.py rebuild_index

# 启动开发服务器
python manage.py runserver

# 启动 Celery(可选,异步任务需要)
celery -A izone worker -l info
celery -A izone beat -l info

环境变量

关键配置通过环境变量注入,完整列表见 架构设计文档

变量 说明 默认值
IZONE_DEBUG 调试模式 True
IZONE_MYSQL_HOST MySQL 主机 127.0.0.1
IZONE_MYSQL_PASSWORD 数据库密码 python
IZONE_REDIS_HOST Redis 主机 127.0.0.1
IZONE_TOOL_FLAG 启用在线工具 True
IZONE_API_FLAG 启用 REST API False

项目结构

izone/
├── izone/              # Django 项目配置(settings/urls/wsgi)
├── apps/               # 所有 Django 应用
│   ├── blog/           # 核心博客应用
│   ├── oauth/          # 自定义用户模型 + OAuth 认证
│   ├── comment/        # 评论与通知系统
│   ├── easytask/       # Celery 异步任务
│   ├── api/            # REST API(条件启用)
│   ├── tool/           # 在线工具(条件启用)
│   ├── monitor/        # 服务监控
│   └── ...             # webstack, resume, flow, portinfo, rsshub
├── templates/          # 共享模板
├── utils/              # 共享工具(Markdown 扩展等)
├── docs/design/        # 设计文档
├── Dockerfile
└── manage.py

许可

一个以 Django 作为框架搭建的个人博客。

博客效果: https://tendcode.com/

功能介绍

  • Django 自带的后台管理系统,方便对于文章、用户及其他动态内容的管理
  • 文章分类、标签、浏览量统计以及规范的 SEO 设置
  • 用户认证系统,在 Django 自带的用户系统的基础上扩展 Oauth 认证,支持微博、Github 等第三方认证
  • 文章评论系统,炫酷的输入框特效,支持 markdown 语法,二级评论结构和回复功能
  • 信息提醒功能,登录和退出提醒,收到评论和回复提醒,信息管理
  • 强大的全文搜索功能,只需要输入关键词就能展现全站与之关联的文章
  • RSS 博客订阅功能及规范的 Sitemap 网站地图
  • 实用的在线工具
  • 友情链接和推荐工具网站的展示
  • 缓存系统,遵循缓存原则,加速网站打开速度
  • RESTful API 风格的 API 接口

博客页面效果(响应式)

  • PC 页面效果

PC首页

  • PC 暗色主题效果

PC首页暗色主题

  • PC 文章详情页,左边显示专题目录,右边显示文章目录,支持代码高亮

PC文章页面

  • PC 专题页,按文章归类

PC 专题页,按文章归类

  • 云监控服务,提供服务器的监控能力,客户端提供 Golang 版本,也可以自行编写 Python 版本的客户端用来上报数据

20240404_232431 (1)

  • PC 友情链接页,定时任务自动校验网址有效性

PC 友情链接页

  • PC 在线工具,平台自带工具

PC 在线工具

  • ipad 效果

ipad

  • 手机效果

iphone

运行指导

About

一个基于Django的博客项目,也可以当做一个文档管理网站使用,自带评论、定时任务等功能,界面简约而不简单

Topics

Resources

License

Stars

1.2k stars

Watchers

31 watching

Forks

Packages

 
 
 

Contributors

Languages