Sign inSign up

ricwang/dengdeng-server

By ricwang

Updated about 1 month ago

噔噔推送的服务端,支持私有化部署。

Image
Developer tools
Web servers
0

4.3K

ricwang/dengdeng-server repository overview

噔噔推送服务 (Dengdeng Push Server)

GitHub release GitHub stars License Docker Pulls Go Version

📖 项目简介

噔噔推送服务是一个专为 HarmonyOS Next 设计的安全、隐私友好的推送服务解决方案。本项目完全开源,致力于为开发者提供一个可信赖、易部署的推送服务基础设施。

🎯 v1.0 正式发布:生产就绪,支持完整的推送功能和自动化部署

✨ 主要亮点
  • 🚀 一键部署:单个 Docker 容器即可运行,内置 PostgreSQL 数据库
  • 🔐 安全优先:配置编译时嵌入,支持 AES-256-GCM 加密
  • 📦 零依赖:无需外部配置文件,开箱即用
  • 🤖 CI/CD 自动化:GitHub Actions 自动构建和部署
🔒 安全与隐私承诺
  • 🔑 RSA 公钥支持:消息使用端到端消息加密,app端同步完即删除服务端加密数据
  • 🔐 端到端加密:Push Token 使用 AES-256-GCM 加密存储
  • 🎭 匿名化设计:使用随机生成的 Device Id,与真实设备无关联
  • 🔑 配置编译时嵌入:敏感配置在构建时嵌入二进制文件,无需配置文件
  • 🛡️ 开源透明:所有代码公开,接受社区审查

✨ 核心特性

🚀 部署与运维
  • 📦 单容器部署:包含 PostgreSQL + 推送服务,开箱即用
  • 🔧 配置嵌入:华为推送配置编译时嵌入,无需外部文件
  • 🤖 自动化 CI/CD:GitHub Actions 自动构建、测试和部署
  • 🏥 健康检查:内置健康检查接口,支持监控
  • 🐳 Docker 支持:官方镜像托管在 Docker Hub
  • 🔄 自动重启:容器崩溃自动恢复
📡 功能特性
  • 📬 通知推送:支持通知栏消息(带标题、内容、自定义数据)
  • 🏥 健康监控:内置健康检查和服务状态接口

🚀 快速开始

使用 Docker Hub 镜像

这是最简单快速的部署方式:

1. 生成加密密钥
# 生成 32 字节随机密钥(Base64 编码)
openssl rand -base64 32
2. 启动服务
# docker-compose.yml
services:
  push-server:
    image: ricwang/dengdeng-server:latest
    container_name: push-server
    environment:
      - GIN_MODE=release
      - SERVER_NAME=${SERVER_NAME}
      - PUSH_TOKEN_ENCRYPTION_KEY=${PUSH_TOKEN_ENCRYPTION_KEY}
    ports:
      - "8080:8080"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres && wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1"]
      interval: 30s
      timeout: 10s
      start_period: 40s
      retries: 3

volumes:
  postgres_data:
3. 验证服务
# 检查健康状态
curl http://localhost:8080/health

# 查看日志
docker logs -f push-server

Tag summary

Content type

Image

Digest

sha256:a39e27752

Size

132.1 MB

Last updated

about 1 month ago

docker pull ricwang/dengdeng-server