/blogX

one-stop open source blogging platform

Primary LanguageGo

fantasy

A lightweight and general-purpose open source blog project

使用前后端分离开发的一个轻量级博客平台, 支持PC、H5端, 整个项目分为了4个项目

  • admin 前端后台管理项目
  • api 后端项目
  • h5 手机端前端项目
  • fe pc端端项目

欢迎使用 FANTASY

功能概览

用户侧功能

1、用户浏览页面支持后台动态路由菜单分类

2、支持文章置顶后首页采用轮播图

3、支持用户登录注册、信息修改、找回密码等

4、热门文章右侧展示

5、热门评论右侧展示

6、文章标签右侧展示

7、最新文章右侧展示时间线

8、支持文章评论

9、支持文章点赞

10、支持与该文章发布的作者进行1by1私信,并且消息会及时发送给作者(通过邮件),作者回复之后也是通过邮件发给用户

后台侧功能

  • Dashboard
  • 资产管理
  • 用户管理
  • 审计管理

1、通过后台可以看到文章发布的数量,最七天发布的趋势,分类、标签数量

2、资产管理可以进行文章的增删改查,分类、标签的增删改查

3、支持文章的草稿保存

4、支持作者的用户信息修改、包括密码、头像、nick修改

5、支持在后台查看到用户与作者的对话信息, 作者需要在后台才可以跟用户私聊

6、登录日志、操作日志审计, 包括黑名单配制.

技术栈

  • antd pro
  • antd mobile
  • beego
  • mysql
  • redis

用户侧

首页

image

首页左侧

image

登录页

image

注册页

image

后台侧

image

image

image

image

image

image

关于部署

1、nginx

server {

    listen 443 ssl;
    server_name 你的域名;
    ssl_certificate /etc/nginx/igolang.cn_nginx/igolang.cn_bundle.crt;
    ssl_certificate_key /etc/nginx/igolang.cn_nginx/igolang.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";
    client_max_body_size 64M;

    location / {
        if ($http_user_agent ~* '(iPhone|iPod|incognito|webmate|Android|dream|CUPCAKE|froyo|BlackBerry|webOS|s8000|bada|IEMobile|Googlebot\-Mobile|AdsBot\-Google)' ) {
            rewrite ^/(.*) https://你的域名/h5/$1 permanent;
        }

        root /usr/share/nginx/html/fe/;
        try_files $uri $uri/ /index.html;
    }

    location ^~ /h5 {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri /h5/index.html;
    }

    location ^~ /admin {
        alias /usr/share/nginx/html/admin;
        index index.html;
        try_files $uri $uri/ /admin/index.html;
    }

    location /api/ {
        proxy_http_version 1.1;
        proxy_set_header REMOTE_ADDR     $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://127.0.0.1:8000;
    }
}

server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}

2、前端 前端分为三个项目,只需要进入对应的项目目录执行tyarn build即可

3、后端 后端执行go build即可 后端部署配置文件

[supervisord]

[program:fantasy]
directory=/devops/app/fantasy/project/fantasy-api
command=/devops/app/fantasy/project/fantasy-api/fantasy-api
autostart=true
user=root
redirect_stderr=true
stdout_logfile=/devops/app/fantasy/project/fantasy-api/fantasy-api.log

supervisord -c supervisord.conf