Files
neo-blog/README.md
Snowykami 64b1c54911
All checks were successful
Push to Helm Chart Repository / build (push) Successful in 11s
feat: enhance post management with pagination, search, and order functionality
- Added search input for filtering posts by keywords.
- Implemented pagination controls for navigating through posts.
- Introduced order selector for sorting posts based on various criteria.
- Enhanced post item display with additional metrics (view count, like count, comment count).
- Added dropdown menu for post actions (edit, view, toggle privacy, delete).
- Integrated double confirmation for delete action.
- Updated user profile to support background image upload.
- Improved user security settings with better layout and validation.
- Refactored auth context to use useCallback for logout function.
- Added command palette component for improved command execution.
- Introduced popover component for better UI interactions.
- Implemented debounce hooks for optimized state updates.
- Updated localization files with new keys for improved internationalization.
- Added tailwind configuration for styling.
2025-09-25 00:51:29 +08:00

2.8 KiB
Raw Blame History

neo-blog

新的博客前端由next驱动后端由hertz驱动

功能列表

  • 支持MarkdownHTMLText格式的文章
  • 支持文章分类和标签
  • 页面管理
  • 支持文章置顶
  • OIDC认证和注册
  • 支持多用户
  • 高级评论功能(后端已实装)
  • 支持多语言
  • 移动端适配
  • 后台管理
  • 富文本编辑器

部署

使用容器化部署(Docker Compose)(推荐)

services:
  frontend:
    container_name: neo-blog-frontend
    environment:
      - BACKEND_URL=http://neo-blog-backend:8888  # 此处的后端地址用于前端服务器访问后端服务
    image: snowykami/neo-blog-frontend:latest
    networks:
      - internal-network
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - .env.frontend:/app/.env.production:ro

  backend:
    container_name: neo-blog-backend
    image: snowykami/neo-blog-backend:latest
    environment:
      - BASE_URL=https://neo-blog-dev.sfkm.me # 此处是外部用户访问端点用于在某些情况下后端可以生成正确的URL
    networks:
      - internal-network
    restart: always
    volumes:
      - ./data:/app/data
      - .env.backend:/app/.env:ro

networks:
  internal-network:
    driver: bridge
docker-compose up -d
# 或者
docker compose up -d

启动后,将外部网关请求转发到前端服务的端口即可

使用容器化部署(Kubernetes helm)

可以使用Helm Chart进行部署。

# 从命令行设置此注册中心
helm repo add git.liteyuki.org https://git.liteyuki.org/api/packages/kubernetes/helm
helm repo update
# 要安装包,请运行以下命令
helm install neo-blog git.liteyuki.org/neo-blog

使用源码构建部署(不推荐)

需要准备go、nodejs、pnpm

  1. 克隆仓库
git clone https://github.com/snowykami/neo-blog.git
cd neo-blog
  1. 构建后端
go build -o server ./cmd/server
  1. 构建前端
cd web
pnpm install
pnpm build
  1. 启动和前端
# 启动后端
./server 

# 启动前端
pnpm start

可以通过环境变量或者.env.production文件配置后端API端点

开发

后端

# 启动后端服务器
go run ./cmd/server

前端

# 进入前端目录
cd web

# 安装依赖
pnpm install

# 启动前端开发服务器
pnpm dev

前端规范

表单元素使用grid gap-4作为容器,表单项使用grid gap-2作为容器

flex布局横向使用flex gap-3作为容器

联合调试

默认情况下,本机启动后端和前端服务器无须额外配置即可互联,若后端在不同的主机上,需要在.env.development(自己创建)中配置BACKEND_URL变量

环境变量配置

后端所有环境变量及其示例在.env.example文件中