lscar / pushdeer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

项目介绍

本项目是基于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
    • 用户、设备、消息、秘钥管理
    • 程序参数管理
    • 数据可视化

项目使用

1. 生产环境

1.1. 默认方式

使用方式,参考下方

# 下载项目
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.ymlLARAVELS_HANDLE_STATIC环境变量为true即可。

不推荐单独使用,建议搭配nginx等web服务器联合使用。nginx的配置文件参考docker/nginx.conf,并启用ssl。

根据服务器性能以及用户的访问量,修改docker-compose-product.ymlLARAVELS_WORKER_NUMLARAVELS_TASK_WORKER_NUM参数

  • LARAVELS_WORKER_NUM 处理api的进程数,cpu核心的整数倍
  • LARAVELS_TASK_WORKER_NUM 处理异步任务进程数,cpu核心的整数倍(:默认使用异步队列处理消息,忽略该参数)

1.2. 进阶方式

  1. laravel-admin

    • 数据初始化
      php artisan db:seed --class=AdminTablesSeeder
    • 页面地址http(s)://{host}/admin,默认用户名admin,默认密码admin,建议修改默认密码。
  2. ELK日志(不建议使用)

    • 开启docker-composer中的elasticsearch,kibana
    • 修改env中的LOG_CHANNEL的值为elasticsearch

2. 开发环境

# 克隆项目
git clone git@github.com:lscar/pushdeer.git

# 容器构建,可以省略
# docker-compose -f docker-compose-product.yml build

# 容器启动
docker-compose -f docker-compose-develop.yml up -d

2.1. 辅助工具

逆向迁移

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

2.2. 简化指令

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》

2.3. 信息安全

brew install git-filter-repo

git filter-repo --invert-paths --path PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA

信息参考:《Removing sensitive data from a repository》

About


Languages

Language:PHP 92.7%Language:Blade 6.2%Language:Shell 0.9%Language:Dockerfile 0.3%