首页
/ PushDeer自托管Docker Compose部署指南

PushDeer自托管Docker Compose部署指南

2025-07-08 04:58:47作者:齐添朝

概述

PushDeer是一个开源的推送服务解决方案,本文主要介绍如何使用Docker Compose文件进行PushDeer的自托管部署。通过容器化部署方式,可以快速搭建一套完整的PushDeer推送服务环境。

核心服务组件

PushDeer的自托管部署主要包含以下三个核心服务:

  1. MariaDB数据库服务:作为PushDeer的数据存储后端
  2. Redis服务:提供缓存和消息队列功能
  3. 应用服务:PushDeer的核心业务逻辑实现

详细配置解析

1. MariaDB数据库配置

mariadb:
  image: 'mariadb:10.5.8-focal'
  healthcheck:
    test: ["CMD", "mysqladmin", "ping", "--silent","--password=$$MYSQL_ROOT_PASSWORD"]
    timeout: 10s
    retries: 3
  volumes:
    - 'mariadb_data:/var/lib/mysql'
  environment:
    - MYSQL_ROOT_PASSWORD=theVeryp@ssw0rd
    - MYSQL_DATABASE=pushdeer

关键配置说明:

  • 使用MariaDB 10.5.8版本,基于Ubuntu Focal基础镜像
  • 配置了健康检查机制,确保数据库服务可用
  • 使用卷挂载持久化存储数据库文件
  • 预设了root密码和pushdeer数据库

安全建议:生产环境中应修改默认密码theVeryp@ssw0rd

2. Redis服务配置

redis: 
  image: 'bitnami/redis:6.0.16'
  healthcheck:
    test: ["CMD", "redis-cli","ping"]
  environment:
    - ALLOW_EMPTY_PASSWORD=yes

关键配置说明:

  • 使用Redis 6.0.16版本
  • 配置了基本的健康检查
  • 允许空密码访问(生产环境应配置密码)

3. PushDeer应用服务配置

app:
  build: './docker/web/'
  ports:
    - '8800:80'
  volumes:
    - './:/app'
  depends_on:
    mariadb:
      condition: service_healthy
    redis:
      condition: service_healthy
  environment:
    - DB_HOST=mariadb
    - DB_PORT=3306
    - DB_USERNAME=root
    - DB_DATABASE=pushdeer
    - DB_PASSWORD=theVeryp@ssw0rd
    - GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios
    - GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip
    - APP_DEBUG=false
    - MQTT_API_KEY=9LKo3
    - MQTT_ON=false

关键配置说明:

  • 使用自定义构建的PHP应用镜像
  • 将容器80端口映射到宿主机8800端口
  • 挂载当前目录到容器/app目录
  • 依赖数据库和Redis服务,并确保它们健康后才启动
  • 丰富的环境变量配置:
    • 数据库连接参数
    • iOS推送相关主题配置
    • 调试模式开关
    • MQTT配置(默认关闭)

可选MQTT服务配置

配置文件中包含了注释掉的MQTT服务配置,如需启用推送的MQTT功能,可以取消注释并配置相关参数:

# mqtt:
#   image: 'ccr.ccs.tencentyun.com/ftqq/pushdeeresp'
#   ports:
#     - '1883:1883'
#   environment:
#     - API_KEY=9LKo3
#     - MQTT_PORT=1883
#     - MQTT_USER=easy
#     - MQTT_PASSWORD=y0urp@ss
#     - MQTT_BASE_TOPIC=default

部署步骤

  1. 确保已安装Docker和Docker Compose
  2. 创建项目目录并保存上述docker-compose.yml文件
  3. 在项目目录下执行:docker-compose up -d
  4. 等待所有服务启动完成
  5. 访问http://localhost:8800验证服务是否正常运行

生产环境建议

  1. 修改所有默认密码和安全凭证
  2. 配置TLS/SSL加密通信
  3. 设置适当的资源限制(CPU/内存)
  4. 配置日志轮转和监控
  5. 考虑使用外部数据库服务而非容器内数据库
  6. 定期备份数据卷

常见问题

Q: 如何修改服务端口? A: 修改app服务下的ports配置,格式为'宿主机端口:容器端口'

Q: 如何查看服务日志? A: 使用docker-compose logs -f命令查看实时日志

Q: 如何更新服务? A: 修改配置后执行docker-compose up -d --build

通过以上配置和说明,您可以轻松部署一套自托管的PushDeer推送服务,根据实际需求调整配置参数即可。