本项目是基于easychen/pushdeer项目的PHP的API,使用swoole重构,并移除了使用go编写的push服务。
- 基于
phpswoole/swoole重构容器- 开发环境、生产环境分离
- 简化构建文件基于
mlocati/docker-php-extension-installer脚本
- 基于
hhxsv5/laravel-s重构项目- 引入
jwt基于tymon/jwt-auth - 移除
go编写的push服务 - 移除
session - 升级
laravel框架 -
apple推送,apns,异步 -
android推送,fcm,异步 - 定时任务
- 拉取最新证书,转换格式
- 清理历史消息
-
优化推送,设定缓冲阈值,批量发送
- 引入
- 辅助工具
- 调试工具,
laravel/telescope -
日志浏览,rap2hpoutre/laravel-log-viewer - 日志浏览,
laravel-admin-ext/log-viewer
- 调试工具,
- 基于
z-song/laravel-admin后台- 日志浏览,基于
elasticsearch - 用户、设备、消息、秘钥管理
-
程序参数管理 - 数据可视化
- 日志浏览,基于
使用方式,参考下方
# 下载项目
wget -qO- "https://github.com/lscar/pushdeer/archive/refs/heads/main.zip" | tar -xzf - && mv pushdeer-main pushdeer
# 修改权限
chown www-data:www-data -R pushdeer
# 容器构建,可以省略
# docker-compose -f docker-compose-product.yml build
# 容器启动
docker-compose -f docker-compose-product.yml up -d可以不需要nginx可以运行,参考docker-compose-develop.ym修改docker-compose-product.yml的LARAVELS_HANDLE_STATIC环境变量为true即可。
不推荐单独使用,建议搭配nginx等web服务器联合使用。nginx的配置文件参考docker/nginx.conf,并启用ssl。
根据服务器性能以及用户的访问量,修改docker-compose-product.yml的LARAVELS_WORKER_NUM与LARAVELS_TASK_WORKER_NUM参数
LARAVELS_WORKER_NUM处理api的进程数,cpu核心的整数倍LARAVELS_TASK_WORKER_NUM处理异步任务进程数,cpu核心的整数倍(注:默认使用异步队列处理消息,忽略该参数)
-
laravel-admin
- 数据初始化
php artisan db:seed --class=AdminTablesSeeder
- 页面地址
http(s)://{host}/admin,默认用户名admin,默认密码admin,建议修改默认密码。
- 数据初始化
-
ELK日志(不建议使用)
- 开启
docker-composer中的elasticsearch,kibana - 修改
env中的LOG_CHANNEL的值为elasticsearch
- 开启
# 克隆项目
git clone [email protected]:lscar/pushdeer.git
# 容器构建,可以省略
# docker-compose -f docker-compose-product.yml build
# 容器启动
docker-compose -f docker-compose-develop.yml up -d逆向迁移
php artisan migrate:generate --tables="table1,table2,table3,table4,table5"帮助文件
php artisan ide-helper:generate
php artisan ide-helper:models
php artisan ide-helper:meta更新本地化
php artisan lang:updateadmin指令
php artisan admin:make UserController --model=App\\Userfunction pushdeer() {
case $1 {
(up)
docker-compose -f ${project_path}/docker-compose-develop.yml up -d
;;
(down)
docker-compose -f ${project_path}/docker-compose-develop.yml down
;;
(stop)
docker-compose -f ${project_path}/docker-compose-develop.yml stop
;;
(dump)
docker exec -it pushdeer-app-1 bash -c 'php /app/artisan dump-server'
;;
(app)
docker exec -it pushdeer-app-1 bash
;;
(*)
echo 'not support now'
;;
}
}语法参考:《ZshGuide》
brew install git-filter-repo
git filter-repo --invert-paths --path PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA