该Web应用主要实现以下功能:
mpstats端口的用户应用旨在为用户提供一站式端口查找平台,同时帮助维护者监控其端口并了解用户群体。生产环境实例运行于ports.macports.org。
更多信息参见docs/1-INFORMATION.md
Web应用基于Django框架开发,使用PostgreSQL数据库。
应用推荐部署在Docker容器中,通过nginx和uWSGI提供服务。
该应用是在Google Summer of Code 2019期间由MacPorts组织指导开发:
学生:Arjun Salyan
导师:Mojca Miklavec、Umesh Singla
mpstats端口的用户的系统配置和安装端口数据Docker镜像已预配置自动运行migrations和collectstatic命令,需手动执行初始数据填充和定时任务启动。
可直接拉取镜像或本地构建:
bash# 拉取镜像 docker pull arjunsalyan/macports-webapp # 或本地构建 docker build -t macports-webapp .
在项目根目录创建env文件,配置以下环境变量(参考项目根目录的env.sample文件):
DB_NAME=数据库名称 DB_USER=数据库用户名 DB_PASSWORD=数据库密码 DB_HOST=数据库主机地址(连接主机数据库时使用host.docker.internal代替localhost) DB_PORT=数据库端口(默认:5432) SECRET_KEY=Django应用密钥
bashdocker run -d -p 80:80 --env-file=env --name=macports-webapp macports-webapp
访问127.0.0.1:80验证启动状态(首次加载可能需10-15秒,后台执行迁移和静态文件收集)。
仅在空数据库上执行,从rsync服务器获取最新PortIndex.json并填充数据库:
bashdocker exec macports-webapp python3 /code/app/manage.py autoload-initial-data
注:该过程耗时较长(通常30分钟内,取决于数据库与应用的连接速度)。
数据填充完成后启动定时任务:
bashdocker exec macports-webapp supervisorctl start cron
启动后将自动执行以下任务:
python3 manage.py fetch-build-historypython3 manage.py update-portinfo应用支持的其他命令通过以下方式执行:
bashdocker exec macports-webapp [命令]
/app目录为独立Django应用,可按标准Django应用方式运行。
推荐通过环境变量配置数据库连接(避免直接修改配置文件),需设置以下环境变量:
DB_NAME=数据库名称 DB_USER=数据库用户名 DB_PASSWORD=数据库密码 DB_HOST=数据库主机地址 SECRET_KEY=Django应用密钥
不推荐方式:直接修改app/MacPorts/settings.py文件配置数据库凭据。
bash# 创建迁移文件 python3 manage.py makemigrations # 执行迁移 python3 manage.py migrate
portindex.json文件(通过portindex2json.tcl生成)bashpython3 manage.py load <文件名> # 不指定文件名则使用默认portindex.json
bashpython3 manage.py fetch-build-history
bash# 收集静态文件 python3 manage.py collectstatic # 启动开发服务器 python3 manage.py runserver
将新的JSON文件放置在项目根目录,执行更新命令:
bashpython3 manage.py update <文件名> # 不指定文件名则使用默认portindex.json
支持基于提供的JSON文件特性进行差异更新或全量更新。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429