icemont / larawall
LaraWall - 服务器组服务端口访问的网页面板。
Requires
- php: ^7.3|^8.0
- doctrine/dbal: 2.*
- encore/laravel-admin: ^1.8
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.54
- laravel/sanctum: ^2.11
- laravel/tinker: ^2.5
- pragmarx/countries: ^0.7.2
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.10
- facade/ignition: ^2.5
- fakerphp/faker: ^1.9.1
- laravel/sail: ^1.0.1
- mockery/mockery: ^1.4.2
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.3.3
README
LaraWall - 服务器组服务端口访问的网页面板。
关于 LaraWall
LaraWall 是一个用于从单一位置管理大量服务器上服务端口访问的控制面板。LaraWall 基于 Laravel PHP 框架和 Z-song 管理面板生成器。
例如,可用于控制大量客户和一组服务器对不同服务(每个服务是不同服务器上的不同端口)的访问。服务端口可以组合成包,客户可以订阅这些包。订阅可以有到期日。您还可以单独更改每个实体的状态,例如,要禁用所有客户对某个包的订阅,无需单独禁用每个订阅,只需禁用该包即可。例如,您还可以一次性禁用单个服务端口或具有所有端口的服务器,而无需从所有包中单独删除。
实现实体
- 具有“服务端口”实体的“服务器”
- 包含“服务端口”实体的“包”
- 具有“用户 IP 地址”实体的“用户”
- “订阅” - 将“包”绑定到“用户”
关系在 图中 更详细地展示。
服务器和 API 处理器
可用的服务器处理器列表
- Linux netfilter 防火墙处理器(使用 iptables 和 ipset 工具)
📌 处理器使用的服务器数据的 API 端点(JSON):https://your_project_host/api/server/data
用于授权的是服务器的 IP 地址。例如,您在面板中创建了一个 IP 地址为 10.0.0.10 的服务器。当此服务器联系 API 端点 /api/server/data
时,系统将通过其 IP 地址(从发送请求到 API 的服务器的外部 IP 地址应与面板中的服务器相同)进行授权,并发送 JSON 数据以管理处理器的服务器上的防火墙规则。
安装
$ composer create-project icemont/larawall
安装和基本配置后,运行以下命令以发布“laravel-admin”资源:
$ php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
执行迁移以创建数据库表结构
$ php artisan migrate
然后导入到 DB 菜单结构数据
$ php artisan db:seed --class=AdminTablesSeeder
在下一步中,创建用于面板管理区域授权的用户
$ php artisan admin:create-user
要访问管理面板,请访问 https://your_project_host/admin
📌 您需要配置 Laravel 任务调度器以在订阅到期时更改其状态。有关说明,请参阅 官方文档。
📌 安装、配置和部署基本上与基于 Laravel 的典型项目相同,因此有关详细信息,您可以参考 Laravel 框架的官方文档 安装 和 部署。
演示
带有演示数据生成器的面板。要生成演示数据,请使用以下命令
$ php artisan db:seed
开发路线图
📌 There are no specific deadlines and guarantees for the implementation.
- 通过令牌授权的顾客API(Sanctum)
- 用户面板:登录/注册,获取和编辑数据,管理包订阅,API密钥管理
- 在单个服务器或服务器组上实现全面的防火墙管理
联系方式
如果您有任何问题或建议,请在GitHub上提交问题。
许可证
本仓库内容遵循MIT许可证发布。