mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-26 02:56:22 +00:00
d1d8aa529ffbaf3256e17617c69be285452e4c13
All checks were successful
Push to Helm Chart Repository / build (push) Successful in 9s
fix: Update Gravatar URL size and improve avatar rendering logic style: Adjust footer margin for better layout consistency refactor: Remove old navbar component and integrate new layout structure feat: Enhance user profile page with user header component chore: Remove unused user profile component fix: Update posts per page configuration for better pagination feat: Extend device context to support system theme mode refactor: Remove unused device hook fix: Improve storage state hook for better error handling i18n: Add new translations for blog home page feat: Implement pagination component for better navigation feat: Create theme toggle component for improved user experience feat: Introduce responsive navbar or side layout with theme toggle feat: Develop custom select component for better UI consistency feat: Create user header component to display user information chore: Add query key constants for better code maintainability
⚡ implement user authentication and database initialization, add models for user, comment, label, and OIDC configuration
⚡ implement email verification feature, add captcha validation middleware, and enhance user authentication flow
⚡ implement email verification feature, add captcha validation middleware, and enhance user authentication flow
neo-blog
新的博客,前端由next驱动,后端由hertz驱动
功能列表
- 支持Markdown,HTML,Text格式的文章
- 支持文章分类和标签
- 页面管理
- 支持文章置顶
- 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
- 克隆仓库
git clone https://github.com/snowykami/neo-blog.git
cd neo-blog
- 构建后端
go build -o server ./cmd/server
- 构建前端
cd web
pnpm install
pnpm build
- 启动和前端
# 启动后端
./server
# 启动前端
pnpm start
可以通过环境变量或者.env.production文件配置后端API端点
开发
后端
# 启动后端服务器
go run ./cmd/server
前端
# 进入前端目录
cd web
# 安装依赖
pnpm install
# 启动前端开发服务器
pnpm dev
联合调试
默认情况下,本机启动后端和前端服务器无须额外配置即可互联,若后端在不同的主机上,需要在.env.development(自己创建)中配置BACKEND_URL
变量
环境变量配置
后端所有环境变量及其示例在.env.example
文件中
Languages
TypeScript
62.6%
Go
32.1%
CSS
4.5%
Smarty
0.4%
Dockerfile
0.2%
Other
0.2%