openwisp/openwisp-websocket和Let's Encrypt(由 certbot 用于通过此地址签发HTTPS证书)。
开始使用,请运行以下命令:
bashcurl -L [***] -o setup.sh sudo bash setup.sh
注意:安装时遇到错误?请 阅读FAQ。
Docker Compose设置 适用于单服务器部署需求。它更快捷,且不需要太多关于OpenWISP和网络的预先知识。
Kubernetes部署较为复杂,需要具备Linux系统、Kubernetes、Docker和OpenWISP的相关知识。但它为超大型网络提供了可扩展性。
make develop,容器准备就绪后,您可以通过访问模块的域名进行测试。admin。dashboard.openwisp.org、api.openwisp.org 和 radius.openwisp.org。.env 中设置的OpenWISP域名添加到 hosts 文件中,例如:bash -c 'echo "127.0.0.1 dashboard.openwisp.org api.openwisp.org radius.openwisp.org" >> /etc/hosts'docker-openwisp 生成的所有内容的操作,请使用 Makefile选项。您可以通过在仓库根目录创建名为 .build.env 的文件,使用自己的Python包进行构建,然后在 .build.env 文件中以 <variable>=<value> 格式设置变量。多个变量应换行分隔。可更改的变量如下:
OPENWISP_FIRMWARE_SOURCEOPENWISP_CONTROLLER_SOURCEOPENWISP_NOTIFICATION_SOURCEOPENWISP_TOPOLOGY_SOURCEOPENWISP_RADIUS_SOURCEOPENWISP_USERS_SOURCEOPENWISP_UTILS_SOURCEDJANGO_SOURCEDJANGO_NETJSONCONFIG_SOURCEDJANGO_X509_SOURCE例如,如果您想提供自己的Django和openwisp-controller源,您的 .build.env 应如下所示:
DJANGO_SOURCE=django==2.1 OPENWISP_CONTROLLER_SOURCE=[***]<username>/openwisp-api/tarball/master
目前,这只是暂定指南。可能存在错误。请在 Gitter频道 报告错误。
openwisp-dashboard:无法禁用openwisp-dashboard。它是OpenWISP的核心,执行核心功能。openwisp-api:无法禁用openwisp-api。它是与设备交互所必需的。openwisp-websocket:移除此容器会导致系统无法更新移动设备的实时位置。如果要禁用某个服务,只需移除该服务的容器即可,但某些镜像需要额外步骤:
openwisp-network-topology:将 USE_OPENWISP_TOPOLOGY 变量设置为 False。openwisp-firmware-upgrader:将 USE_OPENWISP_FIRMWARE 变量设置为 False。openwisp-radius:将 USE_OPENWISP_RADIUS 变量设置为 False。openwisp-postgres:如果使用独立数据库实例:
open***、freeradius、celerybeat、celery、websocket、radius、api、dashboard。DB_SSLMODE、DB_SSLKEY、DB_SSLCERT、DB_SSLROOTCERT。600 且所有者为 root:root。<DB_NAME> 的数据库。openwisp-postfix:
您可以使用 geckodriver(Firefox)或 chromedriver(Chromium)运行测试。Chromium是首选,因为它还会检查控制台日志错误。
为Selenium设置驱动:
设置chromedriver
sudo apt --yes install chromiumchromium --version[***]$PATH 中的某个目录(例如:/usr/bin/)。设置geckodriver
sudo apt --yes install firefoxfirefox --version[***]$PATH 中的某个目录(例如:/usr/bin/)。安装Selenium:python3 -m pip install selenium
(可选)配置:打开 tests/config.json 并根据需要配置变量,选项如下:
yamldriver : 用于测试的驱动名称,"chromium" 或 "firefox" logs : 如果发生错误,打印容器日志 logs_file : 用于保存测试生成日志的文件位置 headless : 以无头模式运行Selenium Chrome驱动 load_init_data : 运行tests/data.py的标志,仅需在数据库创建后执行一次 app_url : 管理员仪表板的访问URL username : 管理员仪表板登录用户名 password : 管理员仪表板登录密码 services_max_retries : 检查服务是否运行的最大重试次数 services_delay_retries : 检查服务是否运行的每次重试延迟时间(秒)
运行测试:make runtests
最常用:
start<USER=docker-username> <TAG=image-tag>:在服务器上启动OpenWISP容器。pull<USER=docker-username> <TAG=image-tag>:从仓库拉取镜像。stop:停止服务器上的Make容器。develop:捆绑构建镜像和运行容器所需的所有命令。runtests:运行测试用例以确保所有服务正常工作。clean:彻底清除与 docker-openwisp 相关的所有容器、镜像、卷和网络。其他选项:
publish <USER=docker-username> <TAG=image-tag>:构建、测试并发布镜像。python-build:生成随机Django密钥并设置到 .env 文件中。nfs-build:构建openwisp-nfs服务器镜像。base-build:构建openwisp-base镜像。基础镜像用于其他OpenWISP镜像。compose-build:(默认)构建用于开发的OpenWISP镜像。develop-runtests:类似于 runtests,运行测试用例,但测试后不停止容器,这可能便于调试和分析失败容器的日志。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务