lucatacconi / crunz-ui
为 lavary/crunz 提供的用户界面。集成 Crunz 库和功能:表格、月度或周度界面查看计划执行和已执行的作业。快速显示已执行作业的执行结果(指示图标轻松显示结果)。上传、下载、编辑或删除
Requires
- crunzphp/crunz: ^3
- guzzlehttp/guzzle: ^7
- laminas/laminas-diactoros: ^2
- lorisleiva/cron-translator: >=0.3.2
- monolog/monolog: ^2
- nyholm/psr7: ^1
- nyholm/psr7-server: >=0
- php-di/php-di: ^6
- slim/psr7: ^1
- slim/slim: ^4
- tuupola/base62: ^2
- tuupola/slim-basic-auth: ^3
- tuupola/slim-jwt-auth: ^3
- twig/twig: ^3
- vlucas/phpdotenv: ^5
This package is auto-updated.
Last update: 2024-09-05 22:32:26 UTC
README
Crunz-ui 从最著名的 GitHub Crunzphp/Crunz 项目开始,并提议成为其自然图形界面,旨在使其使用更易于访问和操作。设计得非常轻量级,它使用 lucatacconi/silly-vue-scaffolding,保证了项目的弹性动态结构。
目录(点击展开)
ℹ️ 如果您想跳过有关 Crunz 和 Crunz-ui 的信息,直接转到设置过程,请使用以下链接:
Crunz 是什么以及 Crunz-ui 如何连接到它
Crunz 是一个允许用户在 PHP 中原生编写任务的应用程序,可以编程任务的启动日期和时间、执行间隔和条件以及初始化。
您可以在以下地址找到有关 Crunz 的详细信息以及如何编写和安排任务:https://github.com/crunzphp/crunz
Crunz 作业示例
<?php // tasks/backupTasks.php use Crunz\Schedule; $schedule = new Schedule(); $task = $schedule->run('cp project project-bk'); $task->daily(); return $schedule;
Crunz-ui 原生使用 Crunz 库和功能来读取和解释配置的任务;然后以表格或图形显示形式呈现任务,在月度或日视图上显示它们。
Crunz-ui 还能做什么?
除了以表格或图形格式显示任务外,Crunz-ui 还允许您
- 通过易于使用的界面管理任务(创建、修改、存档、删除任务)
- 使用直观简单的文件管理系统上传或下载任务
- 快速显示已执行任务的执行结果(指示图标轻松显示任务是否执行出错或成功)
- 搜索并显示特定日期或通过各种搜索参数选择的任务执行结果
- 强制运行任务,即使在不计划的时间,也可以在执行完成后显示日志
浏览器支持
系统要求
- Linux 操作系统和 Bash shell
- 启用 ntp 服务
- Apache 和 PHP 7.4 或更高版本,启用 rewrite.load 模块
- Composer
- Sudo 权限
预安装安全警告
⚠️ 请注意,Crunz 和 Crunz-ui 需要操作员具有设置 crontab 条目的权限,以安排任务管理过程的定期执行。必须谨慎选择 crontab 条目的所有者:使用具有高权限级别(例如 root)的用户可能会允许任务访问敏感文件或在整个服务器文件系统上执行恶意操作。
⚠️ 尽快更改 Crunz-ui 管理员的默认密码非常重要。保留默认密码可能会允许恶意用户访问 Crunz-ui 任务管理器并加载具有访问敏感文件或在整个服务器文件系统上执行恶意操作能力的危险任务。
⚠️ 保持系统时钟同步很重要。在不同步时钟的情况下,可能会出现任务执行或用户会话管理中的错位。
⚠️ 对于浏览器安全配置,仅当 Crunz-ui 在 localhost 或 https 域发布时,才可用复制到剪贴板按钮。
⚠️ 在存在夏令时切换的国家,可能存在任务执行时间和时间切换日任务结果显示的差异。
安装和应用设置
安装 Crunz-ui 的两种最快方式是使用 Docker 容器或通过 Composer 安装。
Docker 设置
如果不需要与现有的 Crunz 安装一起安装 Crunz-ui,最简单的方法是通过 Docker 配置软件并启动它。Crunz-ui Docker 容器是快速运行并准备好使用的应用程序的最佳方式。
首先,将两个文件下载到 Github 服务器。
- Dockerfile - Docker 容器配置文件
- Crunz.yml - Crunz 标准配置文件
手动编辑 Crunz.yml 文件中存在的 Crunz 配置。在文件中,有关于各个配置参数的建议。有关配置的更多详细信息,请参阅 Crunzphp/Crunz。
初始化 Crunz-ui Docker 容器。在运行命令之前,请务必选择正确的时间区域。(例如:TIMEZONE=Europe/Rome)
sudo docker build -t crunz-ui --build-arg TIMEZONE=Europe/Rome:
启动 Crunz-ui Docker 容器,并指定通过哪个端口访问 Web 界面(例如:DEST_PORT:ORIG_PORT 80:80)
sudo docker run -dp 80:80 --name crunz-ui-app crunz-ui
通过浏览器访问应用程序(有关连接详情,请参阅首次登录部分)
http://LOCAL_IP/crunz-ui (Ex. http://192.168.1.127/crunz-ui)
请参阅 Ubuntu/Debian Docker 设置示例以获取建议。
Composer 设置
否则,建议您使用 Composer 安装 Crunz-ui。
从您的 Apache 服务器 的 Document Root 文件夹或由虚拟主机提供的目录开始,通过 Composer 命令开始应用程序设置
composer create-project lucatacconi/crunz-ui
这将安装 Crunz-ui 和所有必需的依赖项。
ℹ️ 在您的 php.ini 中不需要设置大的 max_execution_time 属性:Crunz 执行任务就像它们是从控制台运行一样。从命令行运行 PHP 时,默认设置是 0,因此没有时间限制。
通过 Composer 安装的 Cruz-ui 可以使用软件包中嵌入的 Crunz 工作或使用用户系统上先前安装的 Crunz 的任务和配置。
如果您之前从未使用过Crunz,或者想要使用集成到软件包中的Crunz,请参考之前从未使用过Crunz部分。如果您想在已安装在用户系统上的Crunz版本上使用Cruz-ui,请参考在Crunz的先前安装上使用部分。
ℹ️ 默认情况下,Crunz在考虑任务文件之前会检查PHP代码的正确性。对于计算能力较弱的服务器,检查任务语法会显著减慢表格和统计信息的显示速度。您可以将.env参数CHECK_PHP_TASKS_SYNTAX设置为false来禁止语法检查。如果任务中存在语法错误,将CHECK_PHP_TASKS_SYNTAX参数设置为false可能会导致Crunz-ui界面出现异常行为
Crunz-ui也可以与Xampp一起使用。但是,需要在您的系统可执行文件文件夹中创建Xampp的PHP的符号链接
sudo ln -s /opt/lampp/bin/php /usr/bin/
在Xampp上使用已存在于服务器上的Crunz-ui(与XAMPP的单独安装不同)时,任务表部分菜单中存在的“执行并等待日志”功能将失败,并出现以下错误:无法加载动态库'curl.so'。请参考常见问题解答以解决问题。
以前从未使用过 Crunz
Cruz-ui在其库中嵌入Crunz软件包。一旦配置完成,应用程序就可以开始查看、管理和执行任务。
要以这种方式配置应用程序,一旦安装了Crunz-ui,请按照以下步骤操作
通过访问项目文件夹,您可以使用Crunz的特定功能生成Crunz本身的基本配置文件
./vendor/bin/crunz publish:config
该过程将要求用户提供任务运行日期计算的时间默认时区;执行将生成带有默认设置的Crunz配置文件。有关更高级的配置,请参阅Crunz手册。
在此阶段,需要配置所有必须能够访问应用程序的用户。请参考账户配置部分来配置用户。默认情况下,在基本配置中,已配置admin用户,并带有临时密码password。
然后设置一个普通的cron作业(一个crontab条目),每分钟运行一次,并将责任委托给Crunz-ui事件运行器
* * * * * cd /[BASE_CRUNZUI_PATH] && ./crunz-ui.sh
默认情况下,配置的日志文件夹是Crunz-ui文件夹内的./var/logs。要使用自定义日志文件夹,请使用新日志文件夹的路径配置.env文件。文件夹必须可由Apache用户访问和写入。
如果您已配置自定义日志文件夹,则必须更改crontab配置,如下所示
* * * * * cd /[BASE_CRUNZUI_PATH] && ./crunz-ui.sh -l [LOGS_PATH]
请参考Ubuntu/Debian设置示例以获取建议。
在 Crunz 的先前安装上使用
首先,您需要告诉Crunz-ui Crunz的确切安装位置。为此,通过取消注释主文件夹内的.env文件中的条目CRUNZ_BASE_DIR并指示该条目中Crunz安装的绝对路径来编辑它。为了能够插入、修改和删除任务,Apache用户必须具有对任务文件夹的访问和写入权限。
然后将crunz-ui.sh文件和TasksTreeReader.php文件复制到Crunz基本文件夹中
cp /[BASE_CRUNZUI_PATH]/crunz-ui.sh /[BASE_CRUNZ_PATH]
cp /[BASE_CRUNZUI_PATH]/TasksTreeReader.php /[BASE_CRUNZ_PATH]
默认情况下,crunz.ui.sh批处理程序将在主Crunz文件夹内搜索标准日志文件夹./var/logs。因此,如果您想使用标准配置,您需要创建默认的日志文件夹。文件夹必须可由Apache用户访问和写入。
cd /[BASE_CRUNZ_PATH]
mkdir ./var ./var/logs
修改Crunz在Crunz安装期间在Crontab中配置的过程,用Crunz-ui过程替换它
* * * * * cd /[BASE_CRUNZ_PATH] && ./crunz-ui.sh
如有必要,使用自定义日志文件夹配置Crunz-ui .env文件。在这种情况下,同样重要的是文件夹可由Apache用户访问和写入。如果您已配置自定义日志文件夹,则必须按如下方式更改crontab配置
* * * * * cd /[BASE_CRUNZ_PATH] && ./crunz-ui.sh -l [LOGS_PATH]
在此阶段,需要配置所有必须能够访问应用程序的用户。请参考账户配置部分来配置用户。默认情况下,在基本配置中,已配置admin用户,并带有临时密码password。
自定义日志目录配置
默认情况下,配置的日志文件夹位于 Crunz / Crunz-ui 文件夹内的 ./var/logs。该文件夹必须可由 Apache 用户访问和写入。
要配置自定义文件夹,请使用新日志文件夹的路径设置 .env 文件。
如果您已配置自定义日志文件夹,则必须更改crontab配置,如下所示
* * * * * cd /[BASE_CRUNZ_PATH / BASE_CRUNZUI_PATH] && ./crunz-ui.sh -l [LOGS_PATH]
账户配置
所有被允许访问应用程序的用户都在配置文件 /config/accounts.json 中进行配置。
accounts.json 配置文件具有以下格式
[
{
"username":"admin",
"name":"Admin User",
"userType":"admin",
"email":"admin@nomail.com",
"password":"password",
"active":"Y",
"expireDate":"2020-10-10",
"customSessionDuration":""
},
{
"username":"j.doe",
"name":"Jhon Doe",
"userType":"user",
"email":"j.doe@nomail.com",
"password":"password",
"active":"Y",
"expireDate":"2020-10-10",
"customSessionDuration":""
},
...
]
在列出的各种信息中,用户的类型也被推断出来,然后使用这些信息来过滤用户启用的菜单项。为了简单起见,访问配置被插入到一个文件中。然而,这并不妨碍基于数据库读取的用户管理实现。
首次登录
应用程序预配置了一个访问用户,用于验证登录流程并访问仪表板和主菜单。
要测试访问,请使用登录名 admin 和密码 password。
贡献
此项目由一群优秀的贡献者维护。贡献非常受欢迎 ❤️。有关详细信息,请参阅贡献信息。
路线图
有关详细信息,请参阅路线图。
常见问题解答和故障排除
有关帮助、常见问题解答或故障排除,请参阅常见问题解答和故障排除。
致谢
许可证
Crunz-ui 采用 MIT 许可证授权。有关更多信息,请参阅许可证文件。