
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/openwisp/docker-openwisp/workflows/Automation%20Tests/badge.svg](https://github.com/openwisp/docker-openwisp/actions?query=workflow%3A%22Automation+Tests%22) 和Let's Encrypt(由 certbot 用于通过此地址签发HTTPS证书)。
开始使用,请运行以下命令:
bashcurl -L https://tiny.cc/autoinstall-ow-docker -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=https://github.com/<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:如果使用独立数据库实例:
openvpn、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 --versionhttps://chromedriver.chromium.org/downloads$PATH 中的某个目录(例如:/usr/bin/)。设置geckodriver
sudo apt --yes install firefoxfirefox --versionhttps://github.com/mozilla/geckodriver/releases$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,运行测试用例,但测试后不停止容器,这可能便于调试和分析失败容器的日志。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务