本项目是基于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:update
admin指令
php artisan admin:make UserController --model=App\\User
function 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