- 简约优雅的 UI,移动端优先的响应式设计。
- Webpack 前端资源打包。
- 基于 Vue 的多级评论系统。
- 文章、评论内容支持 Markdown 与代码高亮。
- 支持 GitHub、新浪微博社交账户登录。
- 中文全文搜索,关键词高亮。
- 完善的通知系统,评论、回复博客内通知,同时邮件提醒。
- 独有的教程系统,方便地管理系列文章。
- Docker 部署,无痛上线。
-
安装 Docker 和 Docker Compose。
-
克隆代码到线上服务器
$ git clone https://github.com/zmrenwu/django-blog-project
-
创建项目所需的环境变量文件,在项目根目录创建名为 .envs/.production 文件夹,并在 .production 文件夹下创建 .django 和 .postgres 文件,写入如下内容
.django
DJANGO_SECRET_KEY=your-own-secret-key DJANGO_SETTINGS_MODULE=config.settings.production DJANGO_ANYMAIL_SENDGRID_API_KEY=your-own-sendgrid-api-key # 设置允许访问的 HOSTS,逗号分隔 DJANGO_ALLOWED_HOSTS=your-domain.com,www.yourdomain.com # 设置管理员邮箱,用于接收邮件通知提醒 DJANGO_ADMINS=zmrenwu <zmrenwu@163.com> DJANGO_SERVER_EMAIL=noreply@example.com REDIS_URL=redis://redis:6379/0
DJANGO_SECRET_KEY
:项目密钥,推荐使用 Django Secret Key Creator 自动生成。DJANGO_SENDGRID_API_KEY
:SendGrid 邮件发送密钥,配置后才能发送邮件提醒。.postgres
POSTGRES_HOST=postgres POSTGRES_PORT=5432 # 数据库名,可自行修改 POSTGRES_DB=blogproject # 数据库用户和密码 POSTGRES_USER=dbuser POSTGRES_PASSWORD=dbpwd
-
复制 compose/production/nginx/conf.d/blogproject.conf-tmpl 到同级目录(即 conf.d 下),重命名为 blogproject.conf,将 blogproject.conf 中的 xxx.com 替换为你自己的域名。
-
进入项目根目录,启动 Docker 容器
$ docker-compose -f production.yml up --build -d
-
开启 HTTPS
$ docker exec -it blogproject_nginx certbot --nginx -n --agree-tos --redirect --email your-email@example.com -d your-domain.com,www.your-domain.com
解释下关键参数的含义:
--redirect
:自动将所有 HTTP 请求重定向为 HTTPS 请求。--email
:你的 email,用于接收 letsencrypt 的消息提醒。-d
:后跟需要配置 HTTPS 证书的域名列表,以逗号分隔。 -
创建后台管理员账户
$ docker exec -it blogproject python manage.py createsuperuser
-
Over~~
-
安装 Docker 和 Docker Compose。
-
克隆代码到本地
$ git clone https://github.com/zmrenwu/django-blog-project
-
进入项目根目录,启动 Docker 容器
$ docker-compose -f local.yml up --build
-
Over~~