ispserverfarm / unifi-meshviewer-generator
Meshviewer Generator生成了用于集成Unifi AccessPoints的必要JSON文件,这些AccessPoints通过Unifi Controller(例如Cloudkey)使用原版固件管理。该生成器通过API从Unifi Controller获取相应的数据。
1.1.0
2020-07-05 11:05 UTC
Requires
- php: >=5.6.0
- ext-curl: *
- art-of-wifi/unifi-api-client: ^1.1
- composer/composer: ^1.9
- ocramius/package-versions: ^1.4
- vlucas/phpdotenv: ^3.4
Requires (Dev)
- filp/whoops: ^2.5
- phpunit/phpunit: ^4.8.35 || ^5.0 || ^6.0 || ^7.0
This package is auto-updated.
Last update: 2024-09-16 05:06:34 UTC
README
Unifi Meshviewer Generator通过API连接到Unifi Controller(例如Cloudkey)并确定所有AccessPoints。从数据中生成meshviewer.json和nodelist.json。然后可以在Meshviewer和Nodelist中额外集成这些文件。因此,使用原版固件在Unifi Controller上运行的Unifi AccessPoints也将在Freifunk Map上显示。该项目基于Freifunk-Greifswald/UniFi.php的创意,非常感谢这种思路。
GitHub仓库只是我们GitLab的镜像。
需求
- 安装了PHP和cURL模块的Web服务器(在Apache 2.4 / NGINX、PHP版本5.6.26和cURL 7.42.1以及PHP 7.2.10和cURL 7.58.0上进行了测试)
- 此Web服务器与运行Unifi Controller的服务器和端口(通常是TCP端口8443)之间的网络连接。
- Git
- Composer
安装
您可以使用Git或简单地下载发行版来安装此webservice。
Git
首选方法是通过在项目目录中的shell中运行git命令。
git clone https://git.isp-serverfarm.de/freifunk-nordheide/unifi-meshviewer-generator.git .
- 当git完成克隆后,使用以下命令执行Composer
composer install
下载发行版
如果您不想使用git,可以直接下载包,解压zip文件。
配置
- 将.env.example复制到.env,不要重命名文件。
- 将您的规格添加到.env中的变量。
| 名称 | 描述 | 值 | 必需 |
|---|---|---|---|
| DEBUG | 启用/禁用调试模式 | TRUE/FALSE | X |
| TIMEZONE | 设置时区 | Europe/Berlin | X |
| OWNER_EMAIL | 设置节点所有者的电子邮件或电话号码 | user@emaildomain.net | X |
| UNIFI_USER | 设置Unifi Controller用户名 | UnifiStatUser | X |
| UNIFI_PASS | 设置Unifi Controller密码 | P@ssw0rd#1234 | X |
| UNIFI_URL | 设置包括端口的Unifi Controller URL | https://myuc.domain.de:8443 | X |
| UNIFI_ZONE | 设置Unifi Controller区域 | default | X |
| UNIFI_VERSION | 设置Unifi Controller版本 | 5.10.26 | |
| FREIFUNK_SSID | 通过此ssid过滤已连接的无线客户端 | nordheide.freifunk.net | X |
| GATEWAY_NEXTHOP | 使用卸载节点ID | 18e8295ccf02 | X |
- 将您的Web服务器的WWW根目录设置为项目的Public文件夹。这可以防止直接访问.env和文件夹/cache、/devices和/vendor。
- 将htaccess.txt文件复制到/public和/public/data文件夹中的/.htaccess,并在/public/.htaccess文件中设置您的IP地址。不要重命名文件。在这里,您必须设置允许定期调用index.php的客户端/服务器IP地址,例如作为cronjob。这是一个安全功能,以便在执行过程中发生错误时,Unifi Controller凭据不会以纯文本形式显示。
- 执行对 index.php 的首次手动调用(http://myunifiservice.domain.de/index.php)。注意:调用中不应包含“public”路径。否则,.env 文件可能会直接从互联网访问。
- 首次调用后,所有 AccessPoints 将被确定并存储在 /devices 文件夹中,以 JSON 文件的形式。AccessPoints 的公共名称必须存储在文件中。
- 创建一个 cronjob,每 5 分钟调用一次 index.php。通过这个调用,通过 API 从 Unifi 控制器检索信息,并以 JSON 格式处理。
- 现在将您的 webservice URL 分享给您的社区管理员团队。管理员可以将此 URL 集成到 Meshviewer 中。
致谢
此类基于以下开发者的初始工作
- domwo: http://community.ubnt.com/t5/UniFi-Wireless/little-php-class-for-unifi-api/m-p/603051
- fbagnol: https://github.com/fbagnol/class.unifi.php
- Art-of-Wifi: https://github.com/Art-of-WiFi/UniFi-API-client
- Freifunk-Greifswald: https://github.com/Freifunk-Greifswald/UniFi.php
以及 Ubiquiti 发布的 API
重要免责声明
此 API 客户端类中的许多功能没有得到 UBNT 的官方支持,因此可能不会在 UniFi 控制器 API 的未来版本中得到支持。
贡献
- 待办事项